[genius] Rerun the help stuff



commit eb6f5fb1dc79a95ff90e14c51e11e4a5fc257294
Author: Jiri (George) Lebl <jiri lebl gmail com>
Date:   Mon May 14 16:42:43 2018 -0500

    Rerun the help stuff

 help/C/html/index.html     |    2 +-
 help/cs/genius.xml         | 6430 ++++++++++++++++++++++++++++
 help/cs/html/ch03s02.html  |    2 +-
 help/cs/html/ch05s07.html  |   53 +-
 help/cs/html/ch06s05.html  |   10 +-
 help/cs/html/ch07s02.html  |   29 +-
 help/cs/html/ch11s04.html  |   29 +-
 help/cs/html/ch11s05.html  |   40 +-
 help/cs/html/ch11s06.html  |   36 +-
 help/cs/html/ch11s07.html  |   69 +-
 help/cs/html/ch11s08.html  |   24 +-
 help/cs/html/ch11s09.html  |   64 +-
 help/cs/html/ch11s10.html  |   53 +-
 help/cs/html/ch11s11.html  |   30 +-
 help/cs/html/ch11s12.html  |   60 +-
 help/cs/html/ch11s13.html  |   72 +-
 help/cs/html/ch11s14.html  |   27 +-
 help/cs/html/ch11s15.html  |    5 +-
 help/cs/html/ch11s18.html  |   42 +-
 help/cs/html/ch11s20.html  |   18 +-
 help/cs/html/index.html    |    2 +-
 help/de/genius.xml         | 9762 +++++++++++++++++++++++++++++++++++++++++++
 help/de/html/index.html    |    2 +-
 help/el/genius.xml         | 7950 +++++++++++++++++++++++++++++++++++
 help/el/html/ch11s02.html  |    4 +-
 help/el/html/index.html    |    2 +-
 help/es/genius.xml         | 6999 +++++++++++++++++++++++++++++++
 help/es/html/ch11s20.html  |    2 +-
 help/es/html/index.html    |    2 +-
 help/fr/genius.xml         | 8530 +++++++++++++++++++++++++++++++++++++
 help/fr/html/index.html    |    2 +-
 help/pt_BR/genius.xml      | 9968 ++++++++++++++++++++++++++++++++++++++++++++
 help/pt_BR/html/index.html |    2 +-
 help/ru/genius.xml         | 9669 ++++++++++++++++++++++++++++++++++++++++++
 help/ru/html/index.html    |    2 +-
 help/sv/genius.xml         | 6489 ++++++++++++++++++++++++++++
 help/sv/html/index.html    |    2 +-
 37 files changed, 65853 insertions(+), 631 deletions(-)
---
diff --git a/help/C/html/index.html b/help/C/html/index.html
index f258a1e..9ce6265 100644
--- a/help/C/html/index.html
+++ b/help/C/html/index.html
@@ -58,7 +58,7 @@
                        EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
                        THE POSSIBILITY OF SUCH DAMAGES.
                  </p></li></ol></div><p>
-       </p></div></div><div><div class="legalnotice"><a name="idm45584227695040"></a><p 
class="legalnotice-title"><b>Feedback</b></p><p>
+       </p></div></div><div><div class="legalnotice"><a name="idm48"></a><p 
class="legalnotice-title"><b>Feedback</b></p><p>
              To report a bug or make a suggestion regarding the <span class="application">Genius Mathematics 
Tool</span>
              application or this manual, please visit the
              <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">Genius
diff --git a/help/cs/genius.xml b/help/cs/genius.xml
new file mode 100644
index 0000000..4722917
--- /dev/null
+++ b/help/cs/genius.xml
@@ -0,0 +1,6430 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY app "<application>Genius Mathematics Tool</application>">
+<!ENTITY appname "Genius">
+<!ENTITY appversion "1.0.22">
+<!ENTITY date "September 2016">
+<!ENTITY legal SYSTEM "legal.xml">
+<!ENTITY manrevision "0.2">
+<!ENTITY lt "&#60;">
+<!ENTITY gt "&#62;">
+<!ENTITY le "&#8804;">
+<!ENTITY ge "&#8805;">
+<!ENTITY lsquo "&#8216;">
+<!ENTITY rsquo "&#8217;">
+<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
+<!-- 
+      (Do not remove this comment block.)
+  Maintained by the GNOME Documentation Project
+  http://developer.gnome.org/projects/gdp
+  Template version: 2.0 beta
+  Template last modified Apr 11, 2002
+-->
+<!-- =============Document Header ============================= -->
+<book id="index" lang="cs">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <bookinfo>
+         <abstract role="description"><para>Příručka k matematickému nástroji Genius.</para></abstract>
+    <title>Příručka k aplikaci Genius</title>       
+
+    <copyright>
+      <year>1997 – 2016</year>
+      <holder>Jiří (George) Lebl</holder>
+    </copyright>
+    <copyright>
+      <year>2004</year>
+      <holder>Kai Willadsen</holder>
+    </copyright>
+<!-- translators: uncomment this:
+  <copyright>
+   <year>2002</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+-->
+
+    <publisher> 
+      <publishername/> 
+    </publisher> 
+
+     <legalnotice id="legalnotice">
+       <para>Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU Free Documentation 
License (GFDL) ve verzi 1.1 nebo v jakékoli další verzi vydané nadací Free Software Foundation; bez neměnných 
oddílů, bez textů předních desek a bez textů zadních desek. Kopii licence GFDL naleznete pod <ulink 
type="help" url="ghelp:fdl">tímto odkazem</ulink> nebo v souboru COPYING-DOCS dodávaném s touto 
příručkou.</para>
+         <para>Tato příručka je součástí sbírky příruček GNOME šířených za podmínek licence GFDL. Pokud 
chcete tento dokument šířit odděleně od sbírky, musíte přiložit kopii licence dle popisu v oddílu 6 dané 
licence.</para>
+
+       <para>Mnoho názvů použitých firmami k zviditelnění produktů nebo služeb jsou ochranné známky. Na 
místech, kde jsou tyto názvy v dokumentaci použity a členové Dokumentačního projektu GNOME jsou si vědomi 
skutečnosti, že se jedná o ochrannou známku, je takovýto název psán velkými písmeny celý nebo s velkým 
písmenem na začátku.</para>
+
+       <para>DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU FREE DOCUMENTATION 
LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: <orderedlist>
+               <listitem>
+                 <para>DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“, BEZ ZÁRUKY JAKÉHOKOLIV DRUHU, NEPOSKYTUJÍ 
SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ VERZE, JE BEZCHYBNÝ, NEBO ZÁRUKY PRODEJNOSTI, 
VHODNOSTI PRO URČITÝ ÚČEL, NEBO NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, 
NEBO JEHO UPRAVENÉ VERZE, NESETE VY. POKUD JE TENTO DOKUMENT NEBO JEHO UPRAVENÁ VERZE VADNÁ V JAKÉMKOLIV 
SMYSLU, VY (NIKOLIV PŮVODCE, AUTOR NEBO JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE ODPOVĚDNOST ZA JAKÉKOLIV NÁKLADY NA 
NUTNÉ ÚPRAVY, OPRAVY ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST TÉTO LICENCE. BEZ 
TOHOTO PROHLÁŠENÍ NENÍ PODLE TÉTO DOHODY POVOLENO UŽÍVÁNÍ ANI ÚPRAVY TOHOTO DOKUMENTU; DÁLE</para>
+               </listitem>
+               <listitem>
+                 <para>ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN (VČETNĚ 
NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV 
DISTRIBUTOR TOHOTO DOKUMENTU NEBO UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN 
ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ ŠKODY JAKÉHOKOLIV CHARAKTERU, 
VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE 
POČÍTAČE NEBO JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE K POUŽÍVÁNÍ TOHOTO 
DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO 
POŠKOZENÍ.</para>
+               </listitem>
+         </orderedlist></para>
+  </legalnotice>
+
+
+   <!-- This file  contains link to license for the documentation (GNU FDL), and 
+        other legal stuff such as "NO WARRANTY" statement. Please do not change 
+       any of this. -->
+
+    <authorgroup> 
+      <author role="maintainer"> 
+               <firstname>Jiří</firstname> 
+               <surname>Lebl</surname> 
+               <affiliation> 
+                       <orgname>Státní oklahamská univerzita</orgname> 
+                       <address> <email>jirka 5z com</email> </address> 
+               </affiliation> 
+      </author> 
+      <author> 
+               <firstname>Kai</firstname> 
+               <surname>Willadsen</surname> 
+               <affiliation> 
+                       <orgname>Univerzita Queensland, Austrálie</orgname> 
+                       <address> <email>kaiw itee uq edu au</email> </address> 
+               </affiliation> 
+      </author> 
+      
+<!-- This is appropriate place for other contributors: translators,
+     maintainers,  etc. Commented out by default.
+     
+      <othercredit role="translator">
+               <firstname>Latin</firstname> 
+               <surname>Translator 1</surname> 
+               <affiliation> 
+                       <orgname>Latin Translation Team</orgname> 
+                       <address> <email>translator gnome org</email> </address> 
+               </affiliation>
+               <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+    </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+-->
+<!-- than the current revision. -->
+<!-- The revision numbering system for GNOME manuals is as follows: -->
+<!-- * the revision number consists of two components -->
+<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
+<!-- * the second component of the revision number is a decimal unit that is incremented with each revision 
of the manual. -->
+<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
+<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
+<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
+<!-- to V3.0, and so on. -->  
+<!--  This is unmaintained quite a bit so screw this it just makes things
+      ugly and we don't update the manrevision stuff anyway
+    <revhistory>
+      <revision> 
+               <revnumber>&manrevision;</revnumber> 
+               <date>&date;</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>0.1</revnumber> 
+               <date>September 2004</date> 
+               <revdescription> 
+                       <para role="author">Kai Willadsen
+               <email>kaiw itee uq edu au</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>Genius Calculator Manual</revnumber> 
+               <date>August 2004</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+    </revhistory> 
+-->
+
+    <revhistory>
+      <revision> 
+               <revnumber>0.2</revnumber> 
+               <date>Září 2016</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl <email>jirka 5z com</email></para>
+               </revdescription> 
+      </revision> 
+    </revhistory>
+    <releaseinfo>Tato příručka popisuje aplikaci Genius ve verzi 1.0.22.</releaseinfo> 
+    <legalnotice> 
+      <title>Ohlasy</title> 
+      <para>Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k aplikaci 
<application>matematický nástroj Genius</application> nebo této příručce, navštivte prosím <ulink 
url="http://www.jirka.org/genius.html"; type="http">webovou stránku aplikace Genius</ulink> nebo napište 
autorovi na e-mail <email>jirka 5z com</email>.</para>
+<!-- Translators may also add here feedback address for translations -->
+    </legalnotice> 
+  </bookinfo> 
+
+<!-- ============= Introduction =============================== -->
+  <chapter id="genius-introduction"> 
+    <title>Úvod</title> 
+    <para>Aplikace <application>matematický nástroj Genius</application> je obecný kalkulátor pro potřeby 
jako pracovní kalkulátor, výukový nástroj v matematice a rovněž je použitelný ve vědeckých oborech. Jazyk, 
který <application>matematický nástroj Genius</application> používá, je navržen jako „matematický“ v tom 
smyslu, že by mělo platit „dostanete to, co si myslíte“. To ale samozřejmě není zcela dosažitelný cíl. 
<application>Matematický nástroj Genius</application> zahrnuje racionální čísla, celá čísla s libovolnou 
přesností a desetinná čísla s vícenásobnou přesností díky knihovně GMP. Pracuje s komplexními čísly v 
kartézské notaci. Umí dobře zpracovávat vektory a matice a umí základy lineární algebry. Programovací jazyk 
dovoluje definovat uživatelské funkce, proměnné a upravovat parametry.</para> 
+
+    <para><application>Matematický nástroj Genius</application> je šířen ve dvou verzích. Jedna verze je 
grafická verze GNOME, ve stylu rozhraní IDE a schopností vykreslovat funkce jedné nebo dvou proměnných. Verze 
pro příkazový řádek nevyžaduje GNOME, ale samozřejmě neimplementuje funkce, které vyžadují grafické 
rozhraní.</para> 
+
+    <para>Některé části této příručky popisují grafickou verzi kalkulátoru, ale jazyk je samozřejmě tentýž. 
Verze pouze pro příkazový řádek postrádá grafické funkce a všechnu další funkčnost vyžadující grafické 
uživatelské rozhraní.</para>
+
+    <para>Obecně, pokud se jedná o vlastnost jazyka (funkci, operátor apod.) jako novinku od verze 1.0.5, je 
to zmíněno, ale ohledně starších verzí než 1.0.5 byste se měli podívat do souboru NEWS.</para>
+
+  </chapter>
+
+<!-- =========== Getting Started ============================== -->
+  <chapter id="genius-getting-started"> 
+    <title>Začínáme</title> 
+
+    <sect1 id="genius-to-start">
+      <title>Jak spustit <application>matematický nástroj Genius</application></title>
+      <para><application>Matematický nástroj Genius</application> můžete spustit následujícími 
způsoby:</para> 
+      <variablelist>
+        <varlistentry>
+          <term>Nabídka <guimenu>Aplikace</guimenu></term>
+          <listitem>
+           <para>V závislosti na vašem operačním systému a jeho verzi se může položka nabídky 
<application>Matematický nástroj Genius</application> vyskytovat na různých místech. Může být v podnabídkách 
<guisubmenu>Vzdělávání</guisubmenu>, <guisubmenu>Příslušenství</guisubmenu>, 
<guisubmenu>Kancelář</guisubmenu>, <guisubmenu>Věda</guisubmenu> nebo podobných, záleží na vašem konkrétním 
nastavení. Název položky, kterou hledáte je <application>Matematický nástroj Genius</application>. Až položku 
v nabídce naleznete, klikněte na ni a tím <application>matematický nástroj Genius</application> 
spustíte.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Dialogové okno <guilabel>Spustit aplikaci</guilabel></term>
+          <listitem>
+           <para>Položka nabídky nemusí být v závislosti na instalaci vašeho systému dostupná. Pokud se tak 
stane, můžete otevřít dialogové okno Spustit aplikaci a spustit <command>gnome-genius</command>.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>Příkazový řádek</term>
+         <listitem>
+           <para>Pro spuštění <application>Matematického nástroje Genius</application> ve verzi pro GNOME 
spusťte z příkazového řádku <command>gnome-genius</command>.</para>
+           <para>Pokud chcete spustit jen verzi pro příkazový řádek, spusťte následující příkaz: 
<command>genius</command>. Tato verze nezahrnuje grafické prostředí a některá funkcionalita, jako kreslení, 
nebude dostupná.</para> 
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-when-start">
+    <title>Když spustíte aplikaci Genius</title>
+      <para>Když spustíte <application>matematický nástroj Genius</application> ve vydání GNOME, zobrazí se 
okno jako je na obrázku <xref linkend="mainwindow-fig"/>.</para>
+
+      <figure id="mainwindow-fig"> 
+        <title>Okno <application>Matematického nástroje Genius</application></title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+             <phrase>Ukazuje hlavní okno aplikace <application>Matematický nástroj Genius</application>. 
Obsahuje záhlaví, nabídkovou lištu, nástrojovou lištu a pracovní oblast. Nabídková lišta obsahuje nabídky 
<guilabel>Soubor</guilabel>, <guilabel>Upravit</guilabel>, <guilabel>Kalkulátor</guilabel>, 
<guilabel>Příklady</guilabel>, <guilabel>Programy</guilabel>, <guilabel>Nastavení</guilabel> a 
<guilabel>Nápověda</guilabel>.</phrase> 
+            </textobject> 
+          </mediaobject>
+        </screenshot> 
+      </figure>
+
+      <para>Okno <application>Matematického nástroje Genius</application> obsahuje následující prvky:</para>
+      <variablelist>
+        <varlistentry>
+          <term>Lišta nabídek</term>
+          <listitem>
+            <para>Nabídky v liště nabídek obsahují všechny příkazy, které potřebujete pro práci se soubory v 
<application>Matematickém nástroji Genius</application>. Nabídka <guilabel>Soubor</guilabel> obsahuje položky 
pro načítání a ukládání položek a vytváření nových programů. Příkaz <guilabel>Načíst a spustit…</guilabel> 
neotevírá nové okno pro program, ale program jen přímo spustí. To je to stejné, co dělá příkaz 
<command>load</command>.</para>
+           <para>Nabídka <guilabel>Kalkulátor</guilabel> ovládá výpočetní jádro. Umožňuje vám spustit právě 
vybraný program nebo přerušit právě probíhající výpočet. Můžete také hledat v úplných výrazech poslední 
odpovědi (to je užitečné, když je poslední odpověď delší, než se vloze do jedné obrazovky konzoly) nebo si 
zobrazovat seznam hodnot všech uživatelem definovaných proměnných. Rovněž můžete sledovat uživatelské 
proměnné, což se hodí hlavně, když běží dlouhý výpočet nebo některý program ladíte. A nakonec poskytuje 
kreslící funkce přes uživatelsky přívětivé dialogové okno.</para>
+          <para>Pod nabídkou <guilabel>Příklady</guilabel> je seznam příkladů a ukázkových programů. Když 
nabídku otevřete, načte se příklad jako nový program, který můžete spouštět, upravovat, měnit a ukládat. Tyto 
programy by měly být dobře zdokumentované a obecně předvádět některé z vlastností <application>matematického 
nástroje Genius</application> nebo nějaký matematický koncept.</para>
+          <para>Pod nabídkou <guilabel>Programy</guilabel> je seznam právě otevřených programů a umožňuje 
mezi nimi přepínat.</para>
+          <para>Ostatní nabídky mají funkce podobné jako v jiných aplikacích.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Lišta nástrojů</term>
+          <listitem>
+            <para>Lišta nástrojů obsahuje podmnožinu příkazů, které jsou dostupné z lišty nabídek.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Pracovní oblast</term>
+          <listitem>
+            <para>Pracovní oblast je hlavní způsob, jak s aplikací komunikovat.</para>
+           <para>Na začátku má pracovní oblast jedinou kartu <guilabel>Konzola</guilabel>, která je hlavním 
způsobem, jak komunikovat s kalkulátorem. V ní zapisujete výrazy a po zmáčknutí klávesy Enter jsou v ní hned 
vraceny výsledky.</para>
+           <para>Případně můžete psát delší programy a ty se pak mohou objevit v samostatných kartách. 
Programy jsou sady příkazů nebo funkcí, které mohou být spuštěny naráz jako jeden celek, aniž byste je museli 
postupně zadávat do příkazkového řádku. Programy mohou být uloženy do souborů pro pozdější opětovné 
použití.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+<!-- ================ Usage =================================== -->
+  <chapter id="genius-usage"> 
+    <title>Základy používání</title> 
+
+    <sect1 id="genius-usage-workarea"> 
+      <title>Používání pracovní oblasti</title> 
+
+      <para>Normálně s kalkulátorem komunikujete na kartě <guilabel>Konzola</guilabel> v pracovní oblasti. 
Pokud spustíte pouze textovou verzi, je konzola jediná dostupná věc. Jestli chcete používat 
<application>matematický nástroj Genius</application> pouze jako kalkulačku, jednoduše napište výraz do 
konzoly. Bude vyhodnocen a vrácený výsledek vypsán.</para>
+
+      <para>Když chcete vyhodnotit výraz, zapište jej do <guilabel>Konzoly</guilabel> v pracovní oblasti a 
zmáčkněte Enter. Výrazy se zapisují v jazyce nazývaném GEL. Většina jednoduchých výrazů v jazyce GEL vypadá 
podobně, jak je zvykem v matematice (respektive programovacích jazycích). Například: 
<screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
+</screen> nebo <screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
+</screen> nebo <screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
+</screen> nebo <screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
+</screen> (Poslední je součet harmonické řady od 1 do 70)</para>
+<para>Seznam funkcí a příkazů získáte zadáním: <screen><prompt>genius&gt; 
</prompt><userinput>help</userinput></screen>
+Když chcete získat podrobnější nápovědu ke konkrétní funkci, zadejte: <screen><prompt>genius&gt; 
</prompt><userinput>help NázevFunkce</userinput></screen>
+Pro zobrazení této příručky zadejte: <screen><prompt>genius&gt; 
</prompt><userinput>manual</userinput></screen></para>
+<para>Předpokládejme, že jste si již dříve uložili nějaké příkazy GEL jako program do souboru a teď je 
chcete spustit. Program ze souboru <filename>cesta/k/programu.gel</filename> spustíte tak, že napíšete: 
<screen><prompt>genius&gt; </prompt><userinput>load cesta/k/programu.gel</userinput></screen>
+<application>Matematický nástroj Genius</application> sleduje, která složka je aktuální. Soubory v této 
aktuální složce vypíšete příkazem <command>ls</command>, aktuální složku změníte pomocí <userinput>cd 
složka</userinput>, stejně jako v UNIXovém příkazovém řádku.</para>
+    </sect1>
+
+    <sect1 id="genius-usage-create-program"> 
+      <title>Jak vytvořit nový program</title> 
+      <para>Když si přejete zadat několik komplikovaných příkazů nebo napsat složitou funkci pomocí jazyka 
<link linkend="genius-gel">GEL</link>, můžete vytvořit nový program.</para>
+      <para>Když chcete začít psát nový program, zvolte 
<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Nový program</guimenuitem></menuchoice> a v pracovní 
oblasti se objeví nová karta. V té můžete nový program v jazyce <link linkend="genius-gel">GEL</link> psát. 
Až jej dopíšete, můžete jej spustit pomocí 
<menuchoice><guimenu>Kalkulátor</guimenu><guimenuitem>Spustit</guimenuitem></menuchoice> (nebo tlačítkem 
<guilabel>Spustit</guilabel> na nástrojové liště). Tím se váš program provede a na kartě 
<guilabel>Konzola</guilabel> zobrazí výstup. Ve výsledku je to stejné, jako byste vzali text celého programu 
a napsali jej do konzoly. Jediný rozdíl je v tom, že vstup je proveden nezávisle na konzole, zatímco výstup 
jde na konzolu. <menuchoice><guimenu>Kalkulátor</guimenu><guimenuitem>Spustit</guimenuitem></menuchoice> vždy 
spustí aktuálně vybraný program, i když jste zrovna na kartě <guilabel>Konzola</guilabel>. Aktuálně vybran
 ý program má svoji kartu označenou tučným písmem a vybere se tak, že na kartu prostě kliknete.</para>
+      <para>Abyste napsaný program uložili, zvolte <menuchoice><guimenu>Soubor</guimenu> <guimenuitem>Uložit 
jako…</guimenuitem></menuchoice> Podobně, jako v jiných aplikacích, můžete zvolit 
<menuchoice><guimenu>Soubor</guimenu> <guimenuitem>Uložit</guimenuitem></menuchoice> pro uložení programu, 
který již má přidělený název souboru. V případě, že máte otevřených hodně programů, které upravujete, a 
přejete si je uložit, můžete zvolit také <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Uložit 
neuložené</guimenuitem></menuchoice>.</para>
+      <para>Programy, ve kterých jsou neuložené změny, mají vedle svého názvu souboru „[+]“. Díky tomu 
můžete rychle poznat, jestli se soubor na disku a otevřený v kartě odlišují. Programy, které zatím nemají 
přidělený název souboru, jsou stále považovány za neuložené a „[+]“ se u nich nevypisuje.</para>
+    </sect1>
+
+    <sect1 id="genius-usage-open-program"> 
+      <title>Jak otevřít a spustit program</title> 
+      <para>Když chcete otevřít soubor, zvolte 
<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Otevřít</guimenuitem></menuchoice>. V pracovní oblasti se 
objeví nová karta obsahující daný soubor. Můžete ji využít k upravě souboru.</para>
+      <para>Pro spuštění programu ze souboru zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Načíst 
a spustit…</guimenuitem></menuchoice> Tím se program spustí, aniž by se otevírala zvláštní karta. To odpovídá 
chování příkazu <command>load</command>.</para>
+      <para>Pokud jste v souboru provedli úpravy, které si přejte zahodit a načíst znovu původní verzi z 
disku, můžete zvolit položku nabídky <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Znovu načíst z 
disku</guimenuitem></menuchoice>. To se hodí při experimentování s programem a při provádění dočasných změn, 
kdy chcete spustit upravený program, ale změny nechcete uchovat.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Plotting ============================== -->
+  <chapter id="genius-gel-plotting">
+    <title>Vykreslování</title>
+
+    <para>Vykreslování je podporováno pouze ve v grafické verzi GNOME. Veškeré vykreslování je přístupné z 
grafického rozhraní, ke kterému se dostanete z okna <guilabel>Vytvoření grafu</guilabel>. K tomuto oknu se 
dostanete kliknutím na tlačítko <guilabel>Graf</guilabel> na liště nástrojů nebo výběrem 
<guilabel>Vykrestlit</guilabel></para>
+
+    <sect1 id="genius-line-plots">
+      <title>Čárové grafy</title>
+      <para>Pro vykreslení grafu reálně vyjadřujícího funkce jedné proměnné otevřete okno 
<guilabel>Vytvoření grafu</guilabel>. Můžete také použít funkci <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> z příkazového řádku (viz její 
dokumentace).</para>
+      <para>Když kliknete na tlačítko <guilabel>Vykreslit</guilabel>, otevře se okno s několika kartami. 
Musíte být na kartě <guilabel>Čárový graf funkce</guilabel> a v ní na kartě 
<guilabel>Funkce/výrazy</guilabel>. Viz <xref linkend="lineplot-fig"/>.</para>
+
+      <figure id="lineplot-fig"> 
+        <title>Okno Vytváření grafu</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Ukazuje okno vytváření čárového grafu.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Do textových polí zapište výrazy, ve kterých je <userinput>x</userinput> nezávislou proměnnou. 
Stačí i napsat jen název funkce, jako <userinput>cos</userinput>, namísto vypisování 
<userinput>cos(x)</userinput>. Naráz můžete vykreslit grafy až deseti funkcí. Pokud uděláte chybu a Genius 
nemůže výstup zpracovat, naznačí to varovnou ikonou napravo od textového pole, ve kterém se chyba vyskytla a 
zároveň se objeví dialogové okno s chybovým hlášením. V dolní části dialogového okna můžete měnit rozsah 
závislé a nezávislé proměnné. Rozsah proměnné <varname>y</varname> (závislé) můžete nechat nastavit aumoticky 
tím, že zaškrtnete políčko <guilabel>Přizpůsobit závislou osu</guilabel>. Měnit můžete také názvy proměnných. 
Zmáčknutím tlačítka <guilabel>Vykreslit</guilabel> se graf zobrazí, podobně jako na obrázku <xref 
linkend="lineplot2-fig"/>.</para>
+      <para>Proměnné lze přejmenovat kliknutím na tlačítko <guilabel>Změnit názvy proměnných…</guilabel>, 
což se hodí, když chcete vytisknout nebo uložit obrázek a nechcete použít standardní názvy. Nakonec můžete 
také úplně zakázat tisk legendy a popisů os, což se opět hodí při tisku nebo ukládání, když by tyto texty 
způsobovaly nepřehlednost.</para>
+
+      <figure id="lineplot2-fig"> 
+        <title>Okno s grafem</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Výsledný graf.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Z tohoto místa můžete graf vytisknout, vytvořit z něj dokument ve formátu uzavřený postskript 
nebo PNG a nebo změnit zvětšení. Pokud není závislá osa správně nastavena, můžete Genius přimět, aby ji 
přizpůsobil pomocí nalezení extrému vykreslené funkce.</para>
+
+      <para>Ohledně kreslení pomocí příkazového řádku se podívejte do dokumentace na funkci <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+    </sect1>
+
+    <sect1 id="genius-parametric-plots">
+      <title>Parametrické grafy</title>
+      <para>Na kartě vytváření grafu můžete zvolit také kartu <guilabel>Parametrické</guilabel>, pomocí 
které můžete vytvářet dvourozměrné parametrické grafy. Jde o způsob, jak vykreslit jednoduchou parametrickou 
funkci. Můžete zadat také body jako <varname>x</varname> a <varname>y</varname> nebo poskytnout jedno 
komplexní číslo jako funkci proměnné <varname>t</varname>. Rozsah proměnné <varname>t</varname> je dán 
explicitně a funkce je vzorkována v zadaných krocích. Rozsah <varname>x</varname> a <varname>y</varname> může 
být zvolen automaticky zaškrtnutím políčka <guilabel>Přizpůsobit závislou osu</guilabel> nebo může být určen 
explicitně. Viz <xref linkend="paramplot-fig"/>.</para>
+
+      <figure id="paramplot-fig"> 
+        <title>Karta parametrických grafů</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Parametrický graf v okně <guilabel>Vytváření grafu</guilabel>.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Příklad parametrického grafu je uveden na obrázku <xref linkend="paramplot2-fig"/>. Dělat můžete 
podobné operace jako u jiných čárových grafů. Na to, jak vykreslení provést z příkazového řádku, se podívejte 
do dokumentace na funkci <link 
linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> nebo <link 
linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link>.</para>
+
+      <figure id="paramplot2-fig"> 
+        <title>Parametrické grafy</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Výslední parametrický graf.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+    </sect1>
+
+    <sect1 id="genius-slopefield-plots">
+      <title>Grafy směrových polí</title>
+      <para>Na kartě vytváření grafu můžete zvolit také kartu <guilabel>Směrové pole</guilabel>, pomocí 
které můžete vytvářet dvourozměrný graf směrového pole. Dělat můžete podobné operace jako u jiných čárových 
grafů. Na to, jak vykreslení provést z příkazového řádku, se podívejte do dokumentace na funkci <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>.</para>
+
+      <para>Když je aktivováno směrové pole, je přístupná dodatečná nabídka <guilabel>Řešitel</guilabel>, 
přes kterou můžete zobrazit dialogové okno řešitele. Zde můžete Genius přimět vykreslit konkrétní řešení pro 
zadané počáteční podmínky. Buď můžete počáteční podmínky zadat v dialogovém okně nebo kliknout přímo do grafu 
a tím určit počáteční bod. Dokud je dialogové okno řešitele aktivní, nefunguje zvětšování/zmenšování 
kliknutím a tažením. Pokud chcete měnit velikost pomocí myši, musíte dialogové okno nejdříve zavřít.</para>
+
+      <para>Řešitel používá standardní Rungeho-Kuttovu metodu. Grafy na obrazovce zůstávají, dokud nejsou 
vymazány. Řešitel se zastaví vždy, když dosáhne hranice okna s grafem. Změnou velikosti omezení nebo 
parametru se řešení nemění, musíte graf vymazat a znovu vykreslit se správnými parametry. Můžete také využít 
funkci <link linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link> 
k vykreslení řešení z příkazového řádku nebo programu.</para>
+
+    </sect1>
+
+    <sect1 id="genius-vectorfield-plots">
+      <title>Grafy vektorových polí</title>
+      <para>Na kartě vytváření grafu můžete zvolit také kartu <guilabel>Vektorové pole</guilabel>, pomocí 
které můžete vytvářet dvourozměrný graf vektorového pole. Dělat můžete podobné operace jako u jiných čárových 
grafů. Na to, jak vykreslení provést z příkazového řádku, se podívejte do dokumentace na funkci <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>.</para>
+
+      <para>Standardně je zobrazen směr a velikost vektorového pole. Pokud chcete zobrazovat jen směr a 
velikost ne, zaškrtněte příslušné políčko a délka šipek se sjednotí.</para>
+
+      <para>Když je aktivováno vektorové pole, je přístupná dodatečná nabídka <guilabel>Řešitel</guilabel>, 
přes kterou můžete zobrazit dialogové okno řešitele. Zde můžete Genius přimět vykreslit konkrétní řešení pro 
zadané počáteční podmínky. Buď můžete počáteční podmínky zadat v dialogovém okně nebo kliknout přímo do grafu 
a tím určit počáteční bod. Dokud je dialogové okno řešitele aktivní, nefunguje zvětšování/zmenšování 
kliknutím a tažením. Pokud chcete měnit velikost pomocí myši, musíte dialogové okno nejdříve zavřít.</para>
+
+      <para>Řešitel používá standardní Rungeho-Kuttovu metodu. Grafy na obrazovce zůstávají, dokud nejsou 
vymazány. Změnou velikosti omezení nebo parametru se řešení nemění, musíte graf vymazat a znovu vykreslit se 
správnými parametry. Můžete také využít funkci <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link> k 
vykreslení řešení z příkazového řádku nebo programu.</para>
+
+    </sect1>
+
+    <sect1 id="genius-surface-plots">
+      <title>Plošné grafy</title>
+      <para>Genius umí vykreslovat i plochy. Vyberte kartu <guilabel>Plošný graf</guilabel> v hlavním sešitu 
okna <guilabel>Vytváření grafu</guilabel>. Zde můžete zadat jeden výraz, který by měl používat buď 
<varname>x</varname> a <varname>y</varname> jako reálné nezávislé proměnné nebo <varname>z</varname> jako 
komplexní proměnnou (kde <varname>x</varname> je reálné část <varname>z</varname> a <varname>y</varname> jeho 
imaginární část). Například pro vykreslení absolutní hodnoty funkce kosinus pro komplexní parametry, můžete 
zadat <userinput>|cos(z)|</userinput>. To je ekvivalentní k <userinput>|cos(x+1i*y)|</userinput>. Viz <xref 
linkend="surfaceplot-fig"/>. Na to, jak vykreslení provést z příkazového řádku, se podívejte do dokumentace 
na funkci <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
+      <para>Rozsah <varname>z</varname> může být nastaven automaticky zapnutím zaškrtávacího políčka 
<guilabel>Přizpůsobit závislou osu</guilabel>. Proměnné mohou být přejmenovány kliknutím na tlačítko 
<guilabel>Změnit názvy proměnných…</guilabel>, což se hodí, když chcete vytisknout nebo uložit obrázek a 
nechcete na něm použít standardní názvy. Nakonec můžete zakázat tisk legendy, což se opět hodí při tisku a 
ukládání, když by legenda způsobovala nepřehlednost.</para>
+
+      <figure id="surfaceplot-fig"> 
+        <title>Plošný graf</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Modul (absolutní hodnota) komplexní funkce kosinus.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>V režimu plošných grafů levá a pravá šipka na klávesnici otáčí zobrazení okolo osy z. Případně 
můžete otáčet kolem libovolné osy pomocí <guilabel>Otočit osu…</guilabel> v nabídce 
<guilabel>Zobrazit</guilabel>. Nabídka <guilabel>Zobrazit</guilabel> obsahuje také režim pohledu shora, který 
otáčí graf tak, že osa z směřuje ven, tj. díváte se na graf shora a dostanete základní barvy, které definují 
hodnoty funkce získávající teplotní graf funkce. Nakonec byste také měli zkusit <guilabel>Spustit animované 
otáčení…</guilabel>, které spustí plynulé pomalé otáčení. To je dobré hlavně na předvádění 
<application>matematického nástroje Genius</application> publiku.</para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL ====================================== -->
+  <chapter id="genius-gel"> 
+    <title>Základy jazyka GEL</title> 
+
+       <para>GEL znamená Genius Extension Language (rozšiřující jazyk Genius). Jedná se o jazyk, ve kterém 
píšete programy v kalkulátoru Genius. Program v jazyce GEL je jednoduše výraz, který je vyhodnocen jako 
číslo, matice nebo nějaký jiný objekt v GEL. <application>Matematický nástroj Genius</application> tak může 
sloužit jako jednoduchý kalkulátor a nebo jako mocný nástroj pro teoretický vědecký výzkum. Cílem syntaxe je, 
aby byla snadná na naučení, jak jen to jde, zejména pro používání aplikace jako kalkulačky.</para>
+
+    <sect1 id="genius-gel-values">
+      <title>Hodnoty</title>
+
+      <para>Hodnotami v jazyce GEL mohou být <link linkend="genius-gel-values-numbers">čísla</link>, <link 
linkend="genius-gel-values-booleans">pravdivostní hodnoty</link> nebo <link 
linkend="genius-gel-values-strings">řetězce</link>. GEL zachází jako s hodnotami i s <link 
linkend="genius-gel-matrices">maticemi</link>. Hodnoty mohou být mimo jiných věcí použity k výpočtům, 
přiřazovány do proměnných a vraceny z funkcí.</para>
+
+      <sect2 id="genius-gel-values-numbers">
+        <title>Čísla</title>
+        <para>Prvním typem čísel v GEL jsou celá čísla (integer). Celá čísla se zapisují normálním způsobem. 
<programlisting>1234
+</programlisting>V šestnáctkové a osmičkové soustavě mohou být zapsána pomoci notace jazyka C. Například: 
<programlisting>0x123ABC
+01234
+</programlisting> Nebo můžete čísla zapsat v libovolné soustavě pomocí 
<literal>&lt;základ&gt;\&lt;číslo&gt;</literal>. Číslice větší než 9 se zapisují pomocí písmen podobně jako u 
šestnáctkové soustavy. Například číslo v třiadvacítkové soustavě můžete zapsat: <programlisting>23\1234ABCD
+</programlisting></para>
+
+        <para>Druhým typem čísel v GEL jsou racionální čísla (rational). Racionální čísla vznikají podělením 
dvou celých čísel. Takže můžete zapsat: <programlisting>3/4
+</programlisting> abyste získali tři čtvrtiny. Racionální čísla rovněž akceptují smíšené zlomky. Takže 
abyste získali jedna a tři desetiny, můžete napsat: <programlisting>1 3/10
+</programlisting></para>
+
+        <para>Dalším typem čísel jsou desetinná čísla – čísla s plovoucí desetinnou čárkou (floating). 
Zadávají se ve formátu podobném notaci C. Jako oddělovač exponentu můžete použít <literal>E</literal>, 
<literal>e</literal> or <literal>@</literal>. Upozorňujeme, že když použijete oddělovač exponentu, bude číslo 
bráno jako desetinné, i když neobsahuje desetinnou tečku. Například: <programlisting>1.315
+7.887e77
+7.887e-77
+.3
+0.3
+77e5
+</programlisting> Když Genius vypisuje desetinné číslo, vždy u něj přidá 
<computeroutput>.0</computeroutput>, i když je celé. Tím se dává najevo, že desetinná čísla nemají dokonalou 
přesnost. Pokud je číslo zapsáno ve vědecké notaci, jedná se vždy o desetinné číslo a Genius tak nemusí 
vypisovat <computeroutput>.0</computeroutput>.</para>
+
+        <para>Posledním typem čísel v GEL jsou komplexní čísla (complex). Komplexní číslo můžete zadat jako 
součet reálné a imaginární části. Imaginární část přidáte doplněním <literal>i</literal>. Zde jsou příklady 
zápisu komplexních čísel: <programlisting>1+2i
+8.01i
+77*e^(1.3i)
+</programlisting></para>
+
+        <important>
+          <para>Při zadávání imaginárních čísel musí číslo vždy předcházet před <literal>i</literal>. Pokud 
byste použili samotné <literal>i</literal>, Genius by se k němu stavěl, jako k odkazu na proměnnou 
<varname>i</varname>. Pokud potřebujete použít právě <literal>i</literal>, použijte místo toho 
<literal>1i</literal>.</para>
+
+          <para>Pokud chcete u imaginárních čísel použít notaci složených zlomků, musíte složený zlomek 
uzavřít do závorek, např. <userinput>(1 2/5)i</userinput>.</para>
+        </important>
+
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-booleans">
+        <title>Pravdivostní hodnoty</title>
+        <para>Genius také nativně podporuje pravdivostní hodnoty (boolean). Jsou definovány dvě pravdivostní 
konstanty, <constant>true</constant> (pravda) a <constant>false</constant> (nepravda). Tyto identifikátory 
mohou být použity stejně jako jiné proměnné. Případně můžete použít i varianty <constant>True</constant>, 
<constant>TRUE</constant>, <constant>False</constant> a <constant>FALSE</constant>.</para>
+        <para>Všude, kde je očekáván pravdivostní výraz, můžete použít pravdivostní hodnotu nebo libovolný 
výraz, jehož výsledkem je číslo nebo pravdivostní hodnota. V případě, že má Genius vyhodnotit číslo jako 
pravdivostní hodnotu, pak je nula brána jako <constant>false</constant> a všechna ostatní čísla jako 
<constant>true</constant>.</para>
+        <para>Navíc můžete s pravdivostními hodnotami provádět aritmetické operace. Například: 
<programlisting>( (1 + true) - false ) * true
+</programlisting> je to stejné jako: <programlisting>( (true or true) or not false ) and true
+</programlisting> Podporovány jsou akorát sčítání, odčítání a násobení. Pokud mícháte ve výrazu dohromady 
čísla s pravdivostními hodnotami, jsou čísla nejprve převedena na pravdivostní hodnoty podle pravidel 
popsaných výše. To znamená, že například: <programlisting>1 == true
+</programlisting> je vždy vyhodnoceno jako <constant>true</constant>, protože 1 bude před porovnáním s 
<constant>true</constant> převedeno na <constant>true</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-strings">
+        <title>Řetězce</title>
+        <para>Stejně jako čísla a pravdivostní hodnoty, mohou být i řetězce (string) uloženy jako hodnoty v 
proměnných a předávány do funkcí. Můžete také spojit řetězec s jiným řetězcem pomocí operátoru plus. 
Například: <programlisting>a=2+3;"Výsledek je: "+a
+</programlisting> vytvoří řetězec: <programlisting>Výsledek je: 5
+</programlisting> Rovněž můžete používat escape sekvence ve stylu C, jako 
<literal>\n</literal>,<literal>\t</literal>,<literal>\b</literal>,<literal>\a</literal> a 
<literal>\r</literal>. Když potřebujete v řetězci <literal>\</literal> nebo <literal>"</literal>, musíte mu 
předřadit <literal>\</literal>. Například: <programlisting>"Lomítko: \\ Uvozovky: \" Tabulátory: \t1\t2\t3"
+</programlisting> vytvoří řetězec: <programlisting>Lomítko: \ Uvozovky: " Tabulátory:  1       2       3
+</programlisting> Je třeba ale poznamenat, že když je řetězec vrácen z funkce, jsou zpětná lomítka ošetřena, 
takže takovýto výstup může být použit jako vstup. Pokud chcete řetězec vypsat jak je (bez použití escape 
sekvencí), použijte funkci <link linkend="gel-function-print"><function>print</function></link> nebo <link 
linkend="gel-function-printn"><function>printn</function></link>.</para>
+        <para>Navíc můžete použít knihovní funkci <link 
linkend="gel-function-string"><function>string</function></link> k převodu čehokoliv na řetězec. Například: 
<programlisting>string(22)
+</programlisting> vrátí <programlisting>"22"
+</programlisting> Řetězce je také možné porovnávat pomocí operátorů <literal>==</literal> (rovno), 
<literal>!=</literal> (není rovno) a <literal>&lt;=&gt;</literal> (porovnání).</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-null">
+        <title>Null</title>
+        <para>Existuje speciální hodnota nazývaná <constant>null</constant>. Nelze s ní provádět žádné 
operace a když je vrácena, není nic vypsáno. Proto je hodnota <constant>null</constant> užitečná, když 
nechcete z výrazu získat žádný výstup. Hodnotu <constant>null</constant> získáte tak, že napíšete výraz 
<literal>.</literal>, konstantu <constant>null</constant> nebo nic. Tím se nemyslí nic jiného, než že když 
výraz zakončíte oddělovačem <literal>;</literal>, je to stejné, jako byste jej zakončili oddělovačem 
následovaným <constant>null</constant>.</para>
+        <para>Příklad: <programlisting>x=5;.
+x=5;
+</programlisting></para>
+<para>Některé funkce vrací <constant>null</constant> v případě, že nelze vrátit žádnou hodnotu nebo nastane 
chyba. <constant>null</constant> se rovněž používá jako prázdný vektor, prázdná matice nebo prázdná reference 
(odkaz).</para>
+      </sect2>
+
+    </sect1>
+
+    <sect1 id="genius-gel-variables">
+      <title>Používání proměnných</title>
+
+      <para>Syntaxe: <programlisting>NazevPromenne
+</programlisting> Příklad: <screen><prompt>genius&gt; </prompt><userinput>e</userinput>
+= 2.71828182846
+</screen></para>
+
+      <para>Pro vyhodnocení proměnné jako takové jednoduše napište její název. Bude vrácena hodnota 
proměnné. Proměnnou můžete použít kdekoliv, kde by se normálně použilo číslo nebo řetězec. Navíc jsou 
proměnné nutné při definici funkcí, které vyžadují argumenty (viz <xref 
linkend="genius-gel-functions-defining"/>).</para>
+
+      <tip>
+        <title>Dokončování pomocí Tab</title>
+        <para>Můžete používat klávesu Tab, aby vám Genius dokončoval názvy proměnných. Zkuste napsat prvních 
pár písmen názvu a zmáčknout <userinput>Tab</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Názvy proměnných rozlišují velikost písmen</title>
+        <para>U názvů proměnných se rozlišuje velikost písmen. To znamená, že proměnné 
<varname>ahoj</varname>, <varname>AHOJ</varname> a <varname>Ahoj</varname> jsou různé.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-variables-setting">
+        <title>Nastavování proměnných</title>
+        <para>Syntaxe: <programlisting><![CDATA[<identifier> = <value>
+<identifier> := <value>]]>
+</programlisting> Příklad: <programlisting>x = 3
+x := 3
+</programlisting></para>
+
+        <para>Pro přiřazení hodnoty do proměnné se používá operátor <literal>=</literal> nebo 
<literal>:=</literal>. Tyto operátory nastaví hodnotu proměnné a vrátí hodnotu, kterou jste nastavili, takže 
můžete dělat věci jako <programlisting>a = b = 5
+</programlisting> Tím se nastaví <varname>b</varname> na 5 a rovněž se nastaví <varname>a</varname> na 
5.</para>
+
+        <para>Pro nastavení proměnné lze použít jak operátor <literal>=</literal>, tak 
<literal>:=</literal>. Rozdíl mezi nimi je v tom, že operátor <literal>:=</literal> vždy vystupuje jako 
operátor přiřazení, zatímco operátor <literal>=</literal> může být interpretován jako test rovnosti, jestliže 
je použit v místě, kde je očekáván pravdivostní výraz.</para>
+
+       <para>Ohledně více informací o rozsahu působnosti proměnných, čímž je míněno, kdy je která proměnná 
viditelná, se podívejte na kapitolu <xref linkend="genius-gel-variables-global"/>.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-variables-built-in">
+        <title>Vestavěné proměnné</title>
+        <para>Jazyk GEL má několik vestavěných „proměnných“, jako třeba <varname>e</varname>, 
<varname>pi</varname> nebo <varname>GoldenRatio</varname>. Jedná se o široce používané konstanty s 
příslušnými hodnotami, do kterých nelze přiřadit nové hodnoty. Těchto vestavěných proměnných je celá řada, 
viz <xref linkend="genius-gel-function-list-constants"/> pro kompletní seznam. Upozorňujeme, že 
<varname>i</varname> není standardně definována jako druhá odmocnina z mínus jedné (imaginární číslo) a ve 
výchozím stavu je nedefinovaná, takže ji můžete používat jako počítadlo, jak je zvykem. Když chcete zapsat 
imaginární číslo, musíte použít <userinput>1i</userinput>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-previous-result">
+        <title>Proměnná s posledním výsledkem</title>
+        <para>Proměnné <varname>Ans</varname> a <varname>ans</varname> je možné použít k získání výsledku 
posledního výrazu. Například, když máte proveden nějaký výpočet a chcete k výsledku přičíst 389, můžete to 
udělat takto: <programlisting>Ans+389
+</programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-functions">
+      <title>Používání funkcí</title>
+
+      <para>Syntaxe: <programlisting>NazevFunkce (argument1,argument2,...)
+</programlisting> Příklad: <programlisting>Factorial(5)
+cos(2*pi)
+gcd(921,317)
+</programlisting> Když chcete vyhodnotit funkci, zadejte její název následovaný argumenty v závorkách (pokud 
nějaké má). Vrátí se výsledek vzniklý za použití argumentů. Počet argumentů se samozřejmě liší funkci od 
funkce.</para>
+
+      <para>Existuje množství zabudovaných funkcí, jako třeba <link 
linkend="gel-function-sin"><function>sin</function></link>, <link 
linkend="gel-function-cos"><function>cos</function></link> a <link 
linkend="gel-function-tan"><function>tan</function></link>. Můžete použít zabudovanou funkci <link 
linkend="gel-command-help"><function>help</function></link> k výpisu dostupných funkcí nebo si přečíst 
kapitolu <xref linkend="genius-gel-function-list"/>.</para>
+
+      <tip>
+        <title>Dokončování pomocí Tab</title>
+        <para>Můžete používat klávesu Tab, aby vám Genius dokončoval názvy funkcí. Zkuste napsat prvních pár 
písmen názvu a zmáčknout <userinput>Tab</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Názvy funkcí rozlišují velikost písmen</title>
+        <para>U názvů funkcí se rozlišuje velikost písmen. To znamená, že funkce pojmenované 
<function>necoudelat</function>, <function>NECOUDELAT</function> a <function>NecoUdelat</function> jsou 
rozdílné funkce.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-functions-defining">
+        <title>Definování funkcí</title>
+        <para>Syntaxe: <programlisting><![CDATA[function <identifier>(<comma separated arguments>) = 
<function body>
+<identifier> = (`() = <function body>)
+]]></programlisting> Znak <literal>`</literal> je zpětná uvozovka a je důležitý u anonymních funkcí. Jeho 
nastavením do názvu proměnné se účinně definuje funkce.</para>
+
+        <para>Funkce přebírá buď žádný nebo více argumentů oddělených čárkou a vrací výsledek podle těla 
funkce. Pro definování vašich vlastních funkcí je hlavním důvodem pohodlí. Jednou z možností je mít sady 
funkcí definovaných v souborech GEL, které může Genius načíst a ty pak budou k dispozici. Například: 
<programlisting>function addup(a,b,c) = a+b+c
+</programlisting> a <userinput>addup(1,4,9)</userinput> pak bude vracet 14.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-functions-variable-argument-lists">
+        <title>Proměnný seznam argumentů</title>
+        <para>Když za název posledního argumentu v deklaraci funkce vložíte <literal>...</literal>, dovolí 
Genius v místě tohoto argumentu zadat libovolný počet argumentů. Pokud není předán žádný argument, pak je 
tento argument nastaven na <constant>null</constant>. V jiných případech bude vektorem obsahujícím všechny 
argumenty. Například: <programlisting>function f(a,b...) = b
+</programlisting> Pak <userinput>f(1,2,3)</userinput> poskytne <computeroutput>[2,3]</computeroutput>, 
zatímco <userinput>f(1)</userinput> poskytne <constant>null</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-functions-passing-functions">
+        <title>Předávání funkcí funkcím</title>
+
+        <para>V aplikaci Genius je možné předat funkci jako argument jiné funkci. To lze udělat buď pomocí 
„uzlů funkcí“ nebo anonymních funkcí.</para>
+
+        <para>Když za název funkce nezadáte závorky, bude funkce vrácena jako „uzel funkce“, namísto toho, 
aby byla vyhodnocena. Uzel funkce je možné předat jiné funkci. Například: <programlisting>function f(a,b) = 
a(b)+1;
+function b(x) = x*x;
+f(b,2)
+</programlisting></para>
+        <para>Pro předání funkce, která není definována, můžete použít anonymní funkce (viz <xref 
linkend="genius-gel-functions-defining"/>). Tzn., že můžete předat funkci, aniž byste ji pojmenovali. 
Syntaxe: <programlisting><![CDATA[function(<comma separated arguments>) = <function body>
+`(<comma separated arguments>) = <function body>
+]]></programlisting> Příklad: <programlisting>function f(a,b) = a(b)+1;
+f(`(x) = x*x,2)
+</programlisting> Vrátí hodnotu 5.</para>
+      </sect2>
+
+
+    <sect2 id="genius-gel-functions-operations">
+      <title>Operace s funkcemi</title>
+      <para>Některé funkce dovolují aritmetické operace a některé funkce s jedním argumentem, jako <link 
linkend="gel-function-exp"><function>exp</function></link> nebo <link 
linkend="gel-function-ln"><function>ln</function></link>, operace s funkcemi. Například 
<programlisting>exp(sin*cos+4)
+</programlisting> vrátí funkci, která vezme <varname>x</varname> a vrátí 
<userinput>exp(sin(x)*cos(x)+4)</userinput>. To funkčně odpovídá tomu, jako byste napsali 
<programlisting>`(x) = exp(sin(x)*cos(x)+4)
+</programlisting> Takováto operace může být výhodná, kdy potřebujete rychle definovat funkci. Například k 
vytvoření funkce nazvané <varname>f</varname>, která bude provádět operaci jako výše, prostě napište: 
<programlisting>f = exp(sin*cos+4)
+</programlisting> Využít se to dá také při vykreslování grafů. Například k vykreslení druhé mocniny sinu 
zadejte: <programlisting>LinePlot(sin^2)
+</programlisting></para>
+
+      <warning>
+        <para>Ne všechny funkce je možné použít tímto způsobem. Například, pokud použijete binární operaci, 
musí funkce přebírat stejný počet argumentů.</para>
+      </warning>
+    </sect2>
+
+
+    </sect1>
+
+    <sect1 id="genius-gel-separator">
+      <title>Oddělovač</title>
+      <para>GEL je poněkud odlišný od jiných jazyků v tom, jak zachází s více příkazy a funkcemi. V GEL 
musíte příkazy řetězit dohromady pomocí oddělovacího operátoru. To znamená, že když chcete napsat více než 
jeden výraz, musíte mezi výrazy použít operátor <literal>;</literal>. Tímto způsobem se vyhodnotí oba výrazy 
a výsledek druhého (nebo posledního, pokud je výrazů více než dva) je vrácen. Předpokládejme, že jste napsali 
následující: <programlisting>3 ; 5
+</programlisting> Tento výraz vyplodí 5.</para>
+      <para>Občas to vyžaduje použití závorek, aby se předešlo nejednoznačnostem, zvláště když 
<literal>;</literal> není nejvyšším primitivem. Liší se to trochu od jiných programovacích jazyků, kde 
<literal>;</literal> je zakončovacím symbolem příkazů, zatímco v jazyce GEL je to v současnosti binární 
operátor. Pokud jste zběhlí v jazyce Pascal, mělo by to pro vás být přirozené. Nicméně Genius může do určité 
míry předstírat, že se jedná o zakončovací symbol. Když se <literal>;</literal> nachází na konci závorek nebo 
bloku, Genius za něj připojí prázdný uzel podobně, jako byste napsali <userinput>;null</userinput>. To je 
užitečné v případě, kdy chcete vrátit hodnotu, řekněme ze smyčky, nebo když pracujete s návratovými hodnotami 
odděleně. Upozorňujeme, že to mírně zpomaluje provádění kódu, pokud je spouštěn často, protože je v něm navíc 
další operátor.</para>
+      <para>Když v programu píšete výraz, nemusíte za něj přidávat středník. V takovém případě bude Genius 
prostě vypisovat vrácenou hodnotu, kdykoliv se výraz vyhodnotí. Nicméně vezměte na vědomí, že když definujete 
funkci, je celé tělo funkce jediný výraz.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-comments">
+      <title>Komentáře</title>
+      <para>V jazyce GEL, podobně jako v jiných skriptovacích jazycích, <literal>#</literal> označuje 
komentář, cože je text, který se nemá vyhodnocovat. Vše za znakem mřížky až po konec řádku je jednoduše 
ignorováno. Například <programlisting># Právě toto je komentář
+# každý řádek komentáře musí mít vlastní znak „mřížky“
+# na následujícím řádku se x nastaví na hodnotu 123
+x=123;
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-modular-evaluation">
+      <title>Modulární aritmetika</title>
+      <para>Genius má implementovánu modulární aritmetiku. Když ji chcete použít, stačí přidat „mod 
&lt;celé_číslo&gt;“ za výraz. Například: <userinput>2^(5!) * 3^(6!) mod 5</userinput> Pro modulární 
aritmetiku by bylo možné použít i počítání s celými čísly a následně určením zbytku na konci pomocí operátoru 
<literal>%</literal>, ale to je časově náročné, ne-li nemožné, při práci s většími čísly. Například 
<userinput>10^(10^10) % 6</userinput> jednoduše nebude pracovat (exponent bude příliš velký), zatímco 
<userinput>10^(10^10) mod 6</userinput> je spočteno v mžiku. V prvním příkladu se zkusí vypočítat 
<userinput>10^(10^10)</userinput> a pak najít zbytek po dělení 6, zatímco v druhém příkladu se vyhodnotí vše 
modulo 6 už na začátku.</para>
+      <para>Můžete počítat převrácenou hodnotu čísla mod nějaké celé číslo jednoduše pomocí racionálních 
čísel (samozřejmě musí převrácená hodnota existovat). Například: <programlisting>10^-1 mod 101
+1/10 mod 101</programlisting> Modulární aritmetiku můžete použít i pro výpočty s maticemi, včetně inverze, 
umocňování a dělení. Příklad: <programlisting>A = [1,2;3,4]
+B = A^-1 mod 5
+A*B mod 5</programlisting> Takto byste měli získat jednotkovou matici, protože B bude inverzní maticí A mod 
5.</para>
+      <para>Některé funkce, jako třeba <link linkend="gel-function-sqrt"><function>sqrt</function></link> 
nebo <link linkend="gel-function-log"><function>log</function></link> pracují v modulární aritmetice jiným 
způsobem. Budou pracovat jako jejich diskrétní verze pracující v okruhu vámi vybraných celých čísel. 
Například <programlisting>genius&gt; sqrt(4) mod 7
+=
+[2, 5]
+genius&gt; 2*2 mod 7
+= 4
+genius&gt; 5*5 mod 7
+= 4</programlisting><function>sqrt</function> bude ve skutečnosti vracet všechny možné odmocniny.</para>
+      <para>Nezřetězujte operátory mod, umístěte jen jeden na konce výpočtu a všechny početní operace ve 
výrazu nalevo budou ošetřeny v modulární aritmetice. Když umístíte mod do mod, obdržíte neočekávané výsledky. 
Pokud chcete použít modulo na jediné číslo a jen zjistit, zda zůstane zbytek, je lepší použít operátor 
<literal>%</literal>. Když potřebujete zřetězit několik výrazů v modulární aritmetice s různými děliteli, 
může být lepší rozdělit výraz na více výrazů a použít dočasné proměnné, aby se předešlo vložení mod do 
mod.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-operator-list">
+      <title>Seznam operátorů GEL</title>
+
+      <para>Vše v jazyce GEL jsou ve skutečnosti jen výrazy. Výrazy jsou dohromady řetězeny pomocí různých 
operátorů. Jak jste již viděli, i oddělovač je ve skutečnosti jen binární operátor jazyka. Zde je seznam 
operátorů jazyka GEL.</para>
+
+      <variablelist>
+        <varlistentry>
+         <term><userinput>a;b</userinput></term>
+         <listitem>
+           <para>Oddělovač, který vyhodnocuje jak <varname>a</varname>, tak <varname>b</varname>, ale vrací 
výsledek pouze z <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a=b</userinput></term>
+         <listitem>
+           <para>Operátor přiřazení. </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:=b</userinput></term>
+         <listitem>
+           <para>Operátor přiřazení. Přiřadí <varname>b</varname> do <varname>a</varname> 
(<varname>a</varname> musí být platná <link linkend="genius-gel-lvalues">l-hodnota</link>). Liší se od 
<literal>=</literal>, protože se nikdy nepřevádí na <literal>==</literal>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>|a|</userinput></term>
+         <listitem>
+           <para>Absolutní hodnota. V případě, že výraz je komplexní číslo, je vrácen modul (absolutní 
hodnota komplexního čísla, někdy také nazýván norma), což je vzdálenost od počátku. Například: <userinput>|3 
* e^(1i*pi)|</userinput> vrátí 3.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Absolutn%C3%AD_hodnota";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a^b</userinput></term>
+         <listitem>
+           <para>Umocnění, umocní <varname>a</varname> na <varname>b</varname>-tou.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.^b</userinput></term>
+         <listitem>
+           <para>Umocňování prvek po prvku. Umocní každý prvek matice <varname>a</varname> na 
<varname>b</varname>-tou. Nebo, když je <varname>b</varname> matice stejné velikosti jako 
<varname>a</varname>, umocňuje se prvek po prvku. Pokud je <varname>a</varname> číslo a <varname>b</varname> 
je matice, pak se vytvoří matice stejné velikosti jako <varname>b</varname> s <varname>a</varname> umocněným 
na všechny různé mocnitele v <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a+b</userinput></term>
+         <listitem>
+           <para>Sčítání. Sečte dvě čísla, matice, funkce nebo řetězce. Pokud přičtete řetězec k čemukoliv, 
výsledkem bude vždy řetězec. Pokud je jeden operand čtvercová matice a druhý číslo, je číslo vynásobeno 
jednotkovou maticí.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a-b</userinput></term>
+         <listitem>
+           <para>Odčítání. Odečte dvě čísla, matice nebo funkce.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a*b</userinput></term>
+         <listitem>
+           <para>Násobení. Jedná se o normální násobení matic.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.*b</userinput></term>
+         <listitem>
+           <para>Násobení prvek po prvku v situaci, kdy <varname>a</varname> a <varname>b</varname> jsou 
matice.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a/b</userinput></term>
+         <listitem>
+           <para>Dělení. Pokud jsou <varname>a</varname> a <varname>b</varname> čísla, jedná se o běžné 
dělení. Pokud to jsou matice, odpovídá to <userinput>a*b^-1</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a./b</userinput></term>
+         <listitem>
+           <para>Dělení prvek po prvku. Pro čísla je to stejné jako <userinput>a/b</userinput>, ale u matic 
to funguje prvek po prvku.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a\b</userinput></term>
+         <listitem>
+           <para>Zpětné dělení. Je to to stejné, jako <userinput>b/a</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.\b</userinput></term>
+         <listitem>
+           <para>Zpětné dělení prvků prvky.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a%b</userinput></term>
+         <listitem>
+           <para>Operátor zbytku. Nepřepíná do režimu <link 
linkend="genius-gel-modular-evaluation">modulární aritmetiky</link>, ale jen prostě vrátí zbytek 
celočíselného dělení <userinput>a/b</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.%b</userinput></term>
+         <listitem>
+           <para>Operátor zbytku dělení prvků prvky. Vrací zbytky po dělení celočíselných prvků 
celočíselnými prvky <userinput>a./b</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a mod b</userinput></term>
+         <listitem>
+           <para>Operátor modulární aritmetiky. Výraz <varname>a</varname> je vyhodnocen modulární 
aritmetikou vůči <varname>b</varname>. Viz <xref linkend="genius-gel-modular-evaluation"/>. Některé funkce a 
operátory se chovají odlišně při modulární aritmetice s celými čísly.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!</userinput></term>
+         <listitem>
+           <para>Operátor faktoriálu. Je to jako <userinput>1*…*(n-2)*(n-1)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!!</userinput></term>
+         <listitem>
+           <para>Operátor dvojitého faktoriálu. Je to jako <userinput>1*…*(n-4)*(n-2)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a==b</userinput></term>
+         <listitem>
+           <para>Operátor rovnosti, vrací <constant>true</constant> (pravda) nebo <constant>false</constant> 
(nepravda) podle toho, zda <varname>a</varname> je <varname>b</varname> rovno nebo není rovno.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!=b</userinput></term>
+         <listitem>
+           <para>Operátor nerovnosti, vrací <constant>true</constant> (pravda) v případě, že 
<varname>a</varname> se nerovná <varname>b</varname>, jinak vrací <constant>false</constant> 
(nepravda).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;&gt;b</userinput></term>
+         <listitem>
+           <para>Alternativní operátor nerovnosti, vrací <constant>true</constant> (pravda) v případě, že 
<varname>a</varname> se nerovná <varname>b</varname>, jinak vrací <constant>false</constant> 
(nepravda).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>Operátor menší než nebo rovno, vrací <constant>true</constant> (pravda) v případě, že 
<varname>a</varname> je menší než nebo se rovná <varname>b</varname>, jinak vrací <constant>false</constant> 
(nepravda). Je možné řetězit ve stylu <userinput>a &lt;= b &lt;= c</userinput> (a může se při tom kombinovat 
s operátorem menší než).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>Operátor větší než nebo rovno, vrací <constant>true</constant> (pravda) v případě, že 
<varname>a</varname> je větší než nebo se rovná <varname>b</varname>, jinak vrací <constant>false</constant> 
(nepravda). Je možné řetězit ve stylu <userinput>a &gt;= b &gt;= c</userinput> (a může se při tom kombinovat 
s operátorem větší než).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>Operátor menší než, vrací <constant>true</constant> (pravda) v případě, že 
<varname>a</varname> je menší než <varname>b</varname>, jinak vrací <constant>false</constant> (nepravda). Je 
možné řetězit ve stylu <userinput>a &lt; b &lt; c</userinput> (a může se při tom kombinovat s operátorem 
menší než nebo rovno).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>Operátor větší než, vrací <constant>true</constant> (pravda) v případě, že 
<varname>a</varname> je větší než <varname>b</varname>, jinak vrací <constant>false</constant> (nepravda). Je 
možné řetězit ve stylu <userinput>a &gt; b &gt; c</userinput> (a může se při tom kombinovat s operátorem 
větší než nebo rovno).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=&gt;b</userinput></term>
+         <listitem>
+           <para>Operátor porovnání. V případě, že <varname>a</varname> je rovno <varname>b</varname>, vrací 
0, pokud je <varname>a</varname> menší než <varname>b</varname> vrací -1 a pokud je <varname>a</varname> 
větší než <varname>b</varname>, vrací 1.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a and b</userinput></term>
+         <listitem>
+           <para>Logické A (AND). Vrací pravda, když <varname>a</varname> i <varname>b</varname> jsou 
pravda, ve všech ostatních případech nepravda. Pokud jsou předána čísla, je se všemi nenulovými zacházeno 
jako s pravdivostní hodnotou pravda.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a or b</userinput></term>
+         <listitem>
+           <para>Logické NEBO (OR). Vrací pravda, když je <varname>a</varname> nebo <varname>b</varname> 
(nebo oboje) pravda, jinak vrací nepravda. Pokud jsou předána čísla, je se všemi nenulovými zacházeno jako s 
pravdivostní hodnotou pravda.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a xor b</userinput></term>
+         <listitem>
+           <para>Logické vylučovací NEBO (XOR). Vrací pravda, když právě <varname>a</varname> nebo 
<varname>b</varname> je pravda, ve všech ostatních případech vrací nepravda. Pokud jsou předána čísla, je se 
všemi nenulovými zacházeno jako s pravdivostní hodnotou pravda.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>not a</userinput></term>
+         <listitem>
+           <para>Logická negace (NOT). Vrací logickou negaci <varname>a</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>-a</userinput></term>
+         <listitem>
+           <para>Operátor negace. Vrací opačné číslo nebo matici (u matice pracuje prvek po prvku).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>&amp;a</userinput></term>
+         <listitem>
+           <para>Reference proměnné (pro předání odkazu na proměnnou). Viz <xref 
linkend="genius-gel-references"/>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>*a</userinput></term>
+         <listitem>
+           <para>Dereference proměnné (pro přístup k odkazované proměnné). Viz <xref 
linkend="genius-gel-references"/>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a'</userinput></term>
+         <listitem>
+           <para>Transponovat matici komplexně sdruženou (Hermiteovsky sdružená matice). Tj. řádky a sloupce 
se prohodí a vezmou se komplexně sdružená čísla ke všem prvkům. To znamená, že když prvek i,j matice 
<varname>a</varname> je x+iy, pak prvek j,i matice <userinput>a'</userinput> je x-iy.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.'</userinput></term>
+         <listitem>
+           <para>Transponovat matici (bez komplexního sdružení). To znamená, že prvek i,j matice 
<varname>a</varname> se stane prvkem j,i matice <userinput>a.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,c)</userinput></term>
+         <listitem>
+           <para>Získat prvek matice v řádku <varname>b</varname> a sloupci <varname>c</varname>. Pokud jsou 
<varname>b</varname>, <varname>c</varname> vektory, získají se odpovídající řádky, sloupce nebo 
podmatice.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,)</userinput></term>
+         <listitem>
+           <para>Získat řádek matice (nebo více řádků, pokud je <varname>b</varname> vektor).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,:)</userinput></term>
+         <listitem>
+           <para>Stejné jako předchozí.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(,c)</userinput></term>
+         <listitem>
+           <para>Získat sloupec matice (nebo sloupce, pokud je <varname>c</varname> vektor).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(:,c)</userinput></term>
+         <listitem>
+           <para>Stejné jako předchozí.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b)</userinput></term>
+         <listitem>
+           <para>Získat prvek z matice, s kterou se zachází jako s vektorem. Matice se prochází řádek pro 
řádku.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b</userinput></term>
+         <listitem>
+           <para>Sestavit vektor od <varname>a</varname> do <varname>b</varname> (nebo zadané části řádku, 
sloupce pro operátor <literal>@</literal>). Například pro získání řádků 2 až 4 z matice <varname>A</varname> 
byste mohli použít <programlisting>A@(2:4,)
+            </programlisting>, kdy <userinput>2:4</userinput> vrátí vektor 
<userinput>[2,3,4]</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b:c</userinput></term>
+         <listitem>
+           <para>Sestavit vektor od <varname>a</varname> do <varname>c</varname> s krokem 
<varname>b</varname>. Tj. například <programlisting>genius&gt; 1:2:9
+=
+`[1, 3, 5, 7, 9]
+</programlisting></para>
+          <para>Když jsou použita desetinná čísla, například <userinput>1.0:0.4:3.0</userinput>, je výstupem 
to, co očekáváte, přestože se k 1,0 pětkrát přidá 0,4, je to jen o něco více než 3,0 z důvodu, jakým jsou 
desetinná čísla uchována ve dvojkové soustavě (není to přesně 0,4, ale uložené číslo je obvykle o trochu 
větší). Způsob, jakým je to zpracováváno, je stejný jako u cyklu a sčítacích a násobících smyček. Pokud je 
konec v rámci <userinput>2^-20</userinput>násobku velikosti kroku koncového bodu, je koncový bod použit a 
předpokládá se, že nastaly chyby zaokrouhlení. To sice není perfektní, ale řeší to většinu případů. Tato 
kontrola se provádí až ve verzi 1.0.18 a novějších, takže provádění vašeho kódu může být ve starších verzích 
odlišné. Pokud chcete této záležitosti předejít, používejte opravdová racionální čísla, případně použijte 
funkci <function>float</function>, k
 dyž si přejete na konci dostat desetinné číslo. Například <userinput>1:2/5:3</userinput> funguje správně a 
<userinput>float(1:2/5:3)</userinput> vám poskytne desetinné číslo a přitom to bude nepatrně přesnější než 
<userinput>1.0:0.4:3.0</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>(a)i</userinput></term>
+         <listitem>
+           <para>Udělat z <varname>a</varname> imaginární číslo (vynásobit <varname>a</varname> imaginární 
hodnotou <varname>i</varname>). Všimněte si, že normálně se <varname>i</varname> zapisuje jako 
<varname>1i</varname>. Takže předchozí je vlastně ekvivalentní k <programlisting>(a)*1i
+            </programlisting></para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>`a</userinput></term>
+         <listitem>
+           <para>Uvozovat identifikátor, kterýžto nebude vyhodnocen. Nebo uvozovat matici, takže nebude 
rozšířena.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a swapwith b</userinput></term>
+         <listitem>
+           <para>Přehodit hodnotu proměnné <varname>a</varname> s hodnotou proměnné <varname>b</varname>. V 
současnosti nepracuje s částmi prvků matice. Vrací <constant>null</constant>. Dostupné od verze 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a</userinput></term>
+         <listitem>
+           <para>Zvýšit hodnotu proměnné <varname>a</varname> o 1. V případě, že <varname>a</varname> je 
matice, je o 1 zvýšen každý prvek. Dělá to vlastně to stejné co <userinput>a=a+1</userinput>, akorát o něco 
rychleji. Vrací <constant>null</constant>. Dostupné od verze 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a by b</userinput></term>
+         <listitem>
+           <para>Zvýšit hodnotu proměnné <varname>a</varname> o <varname>b</varname>. V případě, že 
<varname>a</varname> je matice, je o zvýšen každý prvek. Dělá to vlastně to stejné co 
<userinput>a=a+b</userinput>, akorát o něco rychleji. Vrací <constant>null</constant>. Dostupné od verze 
1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+
+<note>
+<para>Operátor @() dává operátoru : více možností. S ním můžete určovat části matice. Takže a@(2:4,6) jsou 
řádky 2,3,4 sloupce 6. Nebo a@(,1:2) vám dá první dva sloupce matice. Do operátoru @() můžete i přiřazovat, 
stačí když je pravou hodnotou matice o stejném rozměru jako určená oblast nebo je to jiný typ hodnoty.</para>
+</note>
+
+<note>
+<para>Porovnávací operátory (vyjma operátoru &lt;=&gt;, který se chová normálně) nejsou striktně binární 
operátory, mohou být fakticky seskupovány běžným matematickým způsobem, např.: (1&lt;x&lt;=y&lt;5) je platný 
pravdivostní výraz a znamená přesně to, co by měl, tj. (1&lt;x a x≤y a y&lt;5)</para>
+</note>
+
+<note>
+<para>Unární operátor mínus funguje různými způsoby v závislosti na tom, kde se vyskytuje. Když se objeví 
před číslem, váže se přímo k němu. Když se objeví před výrazem, má slabší vazbu než mocnina a faktoriál. 
Například <userinput>-1^k</userinput> je ve skutečnosti <userinput>(-1)^k</userinput>, ale 
<userinput>-neco(1)^k</userinput> je ve skutečnosti <userinput>-(neco(1)^k)</userinput>. Takže věnujte 
pozornost tomu, jak je používáte a pokud máte pochybnosti, raději přidejte závorky.</para>
+</note>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL Programming ========================== -->
+  <chapter id="genius-gel-programming">
+    <title>Programování s jazykem GEL</title>
+
+    <sect1 id="genius-gel-conditionals">
+      <title>Podmínky</title>
+      <para>Syntaxe: <programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
+]]></programlisting> Pokud je vynecháno <literal>else</literal> a <literal>výraz1</literal> je vyhodnocen 
jako <constant>false</constant> nebo 0, je vráceno <literal>NULL</literal>.</para>
+      <para>Příklady: <programlisting><![CDATA[if(a==5)then(a=a-1)
+if b<a then b=a
+if c>0 then c=c-1 else c=0
+a = ( if b>0 then b else 1 )
+]]></programlisting> Všimněte si, že když je <literal>=</literal> použito uvnitř výrazu pro 
<literal>if</literal>, je změněno na <literal>==</literal>, takže <programlisting>if a=5 then a=a-1
+</programlisting> bude interpretováno jako: <programlisting>if a==5 then a:=a-1
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loops">
+      <title>Smyčky</title>
+
+      <sect2 id="genius-gel-loops-while">
+        <title>Smyčky while</title>
+        <para>Syntaxe: <programlisting><![CDATA[while <expression1> do <expression2>
+until <expression1> do <expression2>
+do <expression2> while <expression1>
+do <expression2> until <expression1>]]></programlisting> Je to podobné jako v jiných jazycích. Jelikož v 
jazyce GEL jde ve skutečnosti jen o výraz, musí vracet nějakou hodnotu a proto konstrukce vrací výsledek 
poslední iterace nebo <literal>NULL</literal>, pokud žádná iterace neproběhne. V pravdivostních výrazech se 
<literal>=</literal> převádí na <literal>==</literal>, stejně jako u příkazu <literal>if</literal>.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-for">
+        <title>Smyčky for</title>
+        <para>Syntaxe: <programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
+for <identifier> = <from> to <to> by <increment> do <body>]]></programlisting> Smyčka s identifikátorem, 
který je postupně nastaven na všechny hodnoty od <literal>&lt;from&gt;</literal> do 
<literal>&lt;to&gt;</literal>, volitelně se použije jiný krok než 1. Jedná se o rychlejší, hezčí a 
kompaktnější řešení, než je  normální smyčka uvedená výše, ale je méně flexibilní. Identifikátor musí být 
identifikátor a nemůže být dereferencí. Hodnota identifikátoru je poslední hodnotou identifikátoru nebo 
<literal>&lt;from&gt;</literal>, pokud tělo nebylo vůbec vyhodnoceno. Je zaručeno, že proměnná bude po smyčce 
inicializována, takže ji můžete bezpečně použít. <literal>&lt;from&gt;</literal>, 
<literal>&lt;to&gt;</literal> a <literal>&lt;increment&gt;</literal> nesmí být komplexní hodnoty. Není 
zaručeno, že bude dosaženo <literal>&lt;to&gt;</literal>, ale rozhodně nebude nikdy překročeno, například 
následující kód vy
 píše lichá čísla od 1 do 19: <programlisting>for i = 1 to 20 by 2 do print(i)
+</programlisting></para>
+        <para>Pokud je jedna z hodnot desetinné číslo, je závěrečná kontrola prováděna v rozmezí 2^-20 z 
velikosti kroku. To znamená, že i když se překročí 2^-20 krát více, stále ještě bude provedena poslední 
iterace. Tímto způsobem dá <programlisting>for x = 0 to 1 by 0.1 do print(x)
+</programlisting> očekávané výsledky, i když přičtením desetkrát 0,1 dostaneme o něco víc než 1,0 z důvodu, 
jakým jsou desetinná čísla uložena ve dvojkové soustavě (není to 0,1, skutečné uložené číslo je nepatrně 
větší). Není to sice perfektní řešení, ale stačí pro většinu případů. Jestli se chcete vyhnout tomuto 
problému, použijte racionální číslo, například: <programlisting>for x = 0 to 1 by 1/10 do print(x)
+</programlisting>. Tato kontrola se dělá až do verze 1.0.16, takže provádění kódu se u starších verzí může 
lišit.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-foreach">
+        <title>Smyčky foreach</title>
+        <para>Syntaxe: <programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting> 
Pro každý prvek matice, postupně řádek po řádku zleva doprava, se provede tělo s identifikátorem nastaveným 
na aktuální prvek. Když chcete vypsat čísla 1,2,3 a 4 právě v takovémto pořadí, můžete to udělat takto: 
<programlisting>for n in [1,2:3,4] do print(n)
+</programlisting> Jestli potřebujete projít řádky a sloupce matice, můžete použít funkce RowsOf a ColumnsOf, 
které vrací vektor řádků nebo sloupců matice. Takže <programlisting>for n in RowsOf ([1,2:3,4]) do print(n)
+</programlisting> vypíše [1,2] a pak [3,4].</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-break-continue">
+        <title>Break a continue</title>
+        <para>Ve smyčkách můžete použít také příkazy <literal>break</literal> a <literal>continue</literal>. 
Příkaz <literal>continue</literal> posune smyčku na začátek následující iterace, zatímco příkaz 
<literal>break</literal> aktuální smyčku ukončí. <programlisting><![CDATA[while(<expression1>) do (
+  if(<expression2>) break
+  else if(<expression3>) continue;
+  <expression4>
+)
+]]></programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-sums-products">
+      <title>Součty a součiny</title>
+      <para>Syntaxe: <programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
+sum <identifier> = <from> to <to> by <increment> do <body>
+sum <identifier> in <matrix> do <body>
+prod <identifier> = <from> to <to> do <body>
+prod <identifier> = <from> to <to> by <increment> do <body>
+prod <identifier> in <matrix> do <body>]]></programlisting> Když <literal>for</literal> nahradíte za 
<literal>sum</literal> nebo <literal>prod</literal>, pak místo smyčky <literal>for</literal> získáte součet 
nebo součin. Místo aby byla vrácena poslední hodnota, je vrácen součet nebo součin hodnot.</para>
+      <para>Pokud tělo není vůbec provedeno (například <userinput>sum i=1 to 0 do …</userinput>), vrátí 
<literal>sum</literal> hodnotu 0 a <literal>prod</literal> hodnotu 1, což je standardní konvence.</para>
+      <para>Pro desetinná čísla se dělá stejná ochrana proti chybám zaokrouhlování jako u smyčky for. Viz 
<xref linkend="genius-gel-loops-for"/>.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-comparison-operators">
+      <title>Porovnávací operátory</title>
+      <para>V jazyce GEL jsou podporovány následující porovnávací operátory a mají obvyklý význam: 
<literal>==</literal>, <literal>&gt;=</literal>, <literal>&lt;=</literal>, <literal>!=</literal>, 
<literal>&lt;&gt;</literal>, <literal>&lt;</literal>, <literal>&gt;</literal>. Vrací 
<constant>true</constant> nebo <constant>false</constant>. Operátory <literal>!=</literal> a 
<literal>&lt;&gt;</literal> jsou stejné a znamenají „není rovno“. GEL podporuje také operátor 
<literal>&lt;=&gt;</literal>, který vrací -1, když je levá strana menší, 0, když jsou si strany rovny, a 1, 
když je levá strana větší.</para>
+
+      <para>Pokud se <literal>=</literal> vyskytne někde, kde GEL očekává podmínku, jako v podmínce if, je 
převedeno na <literal>==</literal>. Například <programlisting>if a=b then c
+if a==b then c
+</programlisting> jsou v jazyce GEL totéž. Ale jestli chcete, aby váš kód byl dobře čitelný a abyste se 
vyvarovali chyb, měli byste ve skutečnosti používat jako operátor porovnání nebo přiřazení 
<literal>==</literal> nebo <literal>:=</literal>.</para>
+
+      <para>Všechny operátory porovnávání (vyjma operátoru <literal>&lt;=&gt;</literal>, který se chová 
normálně) nejsou striktně binární operátory, takže mohou být seskupovány běžným matematickým způsobem, např. 
(<literal>1&lt;x&lt;=y&lt;5</literal>) je platný pravdivostní výraz a znamená přesně to, co by měl, což je 
(1&lt;x a x≤y a y&lt;5)</para>
+      <para>Pro sestavení logických výrazů používejte slov <literal>not</literal>, <literal>and</literal>, 
<literal>or</literal> a <literal>xor</literal>. Operátory <literal>or</literal> a <literal>and</literal> jsou 
zrádné v tom, že vyhodnocují své argumenty jeden po druhém, takže zde funguje obvyklý trik pro podmíněné 
vyhodnocení. Například <literal>1 or a=1</literal> nikdy nenastaví <literal>a=1</literal>, protože první 
argument je pravdivý.</para>
+    </sect1>
+
+      <sect1 id="genius-gel-variables-global">
+        <title>Globální proměnné a působnost proměnných</title>
+       <para>GEL je <ulink url="https://en.wikipedia.org/wiki/Scope_%28programming%29";>jazyk s dynamickým 
rozsahem platnosti</ulink>. Co to znamená hned vysvětlíme. Je to to, že normální proměnné a funkce mají 
dynamicky vymezenou platnost. Výjimkou jsou <link linkend="genius-gel-parameters">proměnné parametrů</link>, 
kterou jsou vždy globální.</para>
+       <para>Podobně jako většina programovacích jazyků, i GEL má různé typy proměnných. Když je proměnná 
normálně definována ve funkci, je viditelná z této funkce a ze všech funkcí, které jsou z ní volány (všechny 
kontexty s vyšším číslem). Například předpokládejme, že funkce <function>f</function> definuje proměnnou 
<varname>a</varname> a pak volá funkci <function>g</function>. Potom se funkce <function>g</function> může 
odkazovat na proměnnou <varname>a</varname>. Ale jakmile dojde k návratu z funkce <function>f</function>, 
platnost <varname>a</varname> zaniká. Např. následují kód vypíše 5. Funkce <function>g</function> nemůže být 
volána z nejvyšší úrovně (mimo funkci <function>f</function>, protože proměnná <varname>a</varname> pak není 
definována). <programlisting>function f() = (a:=5; g());
+function g() = print(a);
+f();
+</programlisting></para>
+        <para>Pokud definujete proměnnou uvnitř funkce, přepíše jinou proměnnou definovanou ve volající 
funkci. Například upravíme předchozí kód a napíšeme: <programlisting>function f() = (a:=5; g());
+function g() = print(a);
+a:=10;
+f();
+</programlisting> Tento kód bude stále vypisovat 5. Ale když zavoláte <function>g</function> mimo funkci 
<function>f</function>, dostanete ve výpise 10. Všimněte si, že nastavení <varname>a</varname> na 5 uvnitř 
funkce <function>f</function> nemění hodnotu <varname>a</varname> ve nejvyšší (globální) úrovni, takže když 
si nyní ověříte hodnotu <varname>a</varname>, bude stále 10.</para>
+       <para>Argumenty funkce jsou úplně stejné jako proměnné definované uvnitř funkce vyjma toho, že jsou 
inicializovány na hodnotu, která je funkci předána. Kromě této jediné věci se s nimi zachází úplně stejně, 
jako se všemi ostatními proměnnými definovanými uvnitř funkce.</para>
+       <para>S funkcemi je zacházeno stejně jako s proměnnými. Proto také můžete lokálně předefinovávat 
funkce. Normálně (v nejvyšší úrovni) nemůžete předefinovávat chráněné proměnné a funkce. Ale lokálně to 
udělat můžete. Uvažujme následující situaci: <screen><prompt>genius&gt; </prompt><userinput>function f(x) = 
sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
+= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
+<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
+= 1e20
+</screen></para>
+       <para>Funkce a proměnné definované v nejvyšší úrovni jsou považovány za globální. Jsou viditelné 
odkudkoliv. Jak již bylo řečeno, následující funkce <function>f</function> nezmění hodnotu 
<varname>a</varname> na 5. <programlisting>a=6;
+function f() = (a:=5);
+f();
+</programlisting> Občas je ale nutné nastavit globální proměnnou uvnitř funkce. Když je takové chování 
zapotřebí, použijte funkci <link linkend="gel-function-set"><function>set</function></link>. Předáním řetězce 
nebo identifikátoru s uvozovkou do této funkce se nastaví globální proměnná (v nejvyšší úrovni). Například 
pro nastavení <varname>a</varname> na hodnotu 3 byste mohli zavolat: <programlisting>set(`a,3)
+</programlisting> nebo: <programlisting>set("a",3)
+</programlisting></para>
+        <para>Funkce <function>set</function> nastavuje vždy globální proměnné v nejvyšší úrovni. Neexistuje 
žádný způsob, jak nastavit lokální proměnnou v nějaké funkce z podřízené funkce. Pokud něco takového 
potřebujete, musíte jedině použít předání reference (odkazu).</para>
+       <para>Viz také funkce <link linkend="gel-function-SetElement"><function>SetElement</function></link> 
a <link linkend="gel-function-SetVElement"><function>SetVElement</function></link>.</para>
+       <para>Takže sesumírováno do technického jazyka: Genius pracuje s různými očíslovanými kontexty. 
Nejvyšší úroveň je kontext 0 (nula). Kdykoliv se vstoupí do funkce, je kontext zvýšen a když se funkce 
opouští, je kontext snížen. Funkce nebo proměnná je vždy viditelná ze všech kontextů, které mají vyšší číslo. 
Když byla proměnná definována v kontextu s nižším číslem, má nastavení této proměnné vliv na vytváření nové 
lokální proměnné v aktuálním čísle kontextu a tato proměnná bude nyní viditelná ze všech kontextů s vyšším 
číslem.</para>
+       <para>Existují i skutečně lokální proměnné, které nejsou vidět nikde jinde, než v aktuálním kontextu. 
Rovněž při vracení funkcí hodnotou je možné odkazovat na proměnnou, která není viditelná z vyššího kontextu a 
to může být problém. Viz oddíl <link linkend="genius-gel-true-local-variables">Skutečně lokální 
proměnné</link> a <link linkend="genius-gel-returning-functions">Vracení funkcí</link>.</para>
+      </sect1>
+
+      <sect1 id="genius-gel-parameters">
+        <title>Proměnné parametrů</title>
+       <para>Jak jsme uvedli již dříve, existují speciální proměnné nazývané parametry, které jsou platné 
všude. Pro deklaraci parametru nazvaného <varname>foo</varname> s počáteční hodnotou 1, napište 
<programlisting><![CDATA[parameter foo = 1
+]]></programlisting> Od toho okamžiku je <varname>foo</varname> striktně globální proměnnou. Nastavením 
proměnné <varname>foo</varname> uvnitř funkce se změní proměnná ve všech kontextech, což je tím, že funkce 
nemají privátní kopii parametrů.</para>
+        <para>Když zrušíte definici parametru pomocí funkce  <link 
linkend="gel-function-undefine"><function>undefine</function></link>, přestane být parametrem.</para>
+        <para>Některé parametry jsou vestavěné a mění chování kalkulátoru Genius.</para>
+      </sect1>
+
+    <sect1 id="genius-gel-returning">
+      <title>Návrat hodnot</title>
+       <para>Normálně je funkce tvořena jedním nebo několika výrazy oddělenými středníky a vrací se hodnota 
posledního výrazu. To je fajn pro jednoduché funkce, ale někdy nechcete, aby funkce vracela to, co vypočítala 
naposledy. Můžete se například chtít vrátit z prostředku funkce. V takovém případě můžete použít klíčové 
slovo <literal>return</literal>. <literal>return</literal> přebírá jeden argument, který je hodnotou, která 
bude vrácena.</para>
+      <para>Příklad: <programlisting><![CDATA[function f(x) = (
+  y=1;
+  while true do (
+    if x>50 then return y;
+    y=y+1;
+    x=x+1
+  )
+)
+]]></programlisting></para>
+    </sect1>
+
+
+    <sect1 id="genius-gel-references">
+      <title>Reference</title>
+      <para>Pro některé funkce je nutné, aby vracely více než jednu hodnotu. To lze zajistit vrácením 
vektoru hodnot, ale častokrát je praktičtější použít předávání reference (odkazu) na proměnnou. Předáte 
funkci referenci na proměnnou a funkce proměnnou nastaví pomocí dereference. Nemusíte se s používáním 
referencí omezovat jen na tento účel, ale tohle je jejich hlavní využití.</para>
+      <para>Když používáte funkce, které vracejí hodnoty skrze reference v seznamu argumentů, jednoduše 
předejte název proměnné s ampersandem. Například následující kód bude počítat vlastní čísla matice 
<varname>A</varname> s počátečním vlastním vektorem odhadů <varname>x</varname> a uloží vypočítaný vlastní 
vektor do proměnné pojmenované <varname>v</varname>: <programlisting><![CDATA[RayleighQuotientIteration 
(A,x,0.001,100,&v)
+]]></programlisting></para>
+      <para>V detailech fungování a syntaxi jsou reference podobné jako v jazyku C. Operátor 
<literal>&amp;</literal> odkazuje na proměnnou a <literal>*</literal> provádí dereferenci proměnné. Obojí lze 
uplatnit pouze na identifikátory, takže <literal>**a</literal> není v jazyce GEL platný výraz.</para>
+      <para>Reference je nejlépe vysvětlit na příkladu: <programlisting><![CDATA[a=1;
+b=&a;
+*b=2;
+]]></programlisting> <varname>a</varname> nyní obsahuje 2. Můžete používat i reference na funkce: 
<programlisting><![CDATA[function f(x) = x+1;
+t=&f;
+*t(3)
+]]></programlisting> vrátí 4.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-lvalues">
+      <title>L-hodnoty</title>
+      <para>L-hodnota je levou stranou v přiřazení. Jinými slovy, l-hodnota to, do čeho přiřazujete. Platné 
l-hodnoty jsou: <variablelist>
+  <varlistentry>
+    <term><userinput>a</userinput></term>
+    <listitem>
+      <para>Identifikátor. V tomto případě by se nastavila proměnná s názvem <varname>a</varname>.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>*a</userinput></term>
+    <listitem>
+      <para>Dereference identifikátoru. Nastaví to, na co proměnná <varname>a</varname> ukazuje.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>a@(&lt;část&gt;)</userinput></term>
+    <listitem>
+      <para>Část matice. Část je určena normálně jako u běžného operátoru @() a může být jedinou hodnotou 
nebo celou oblastí matice.</para>
+    </listitem>
+  </varlistentry>
+</variablelist></para>
+      <para>Příklady: <programlisting>a:=4
+*tmp := 89
+a@(1,1) := 5
+a@(4:8,3) := [1,2,3,4,5]'
+</programlisting> Poznamenejme, že oba operátory <literal>:=</literal> a <literal>=</literal> lze zaměňovat. 
Jedinou výjimkou je, když se objeví v podmínce. Proto je bezpečnější dodržovat pravidlo, že 
<literal>:=</literal> se použije, když myslíte přiřazení, a <literal>==</literal>, když máte na mysli 
porovnání.</para>
+    </sect1>
+
+  </chapter>
+
+  <chapter id="genius-gel-programming-advanced">
+    <title>Pokročilé programování v jazyce GEL</title>
+
+    <sect1 id="genius-gel-error-handling">
+      <title>Obsluha chyb</title>
+      <para>Pokud je zjištěna chyba ve vaší funkci, provádění funkce se přeruší. Pro normální chyby, jako 
jsou nesprávné typy argumentů, můžete vyvolat selhání funkce přidáním výrazu <literal>bailout</literal>. Když 
nastane něco opravdu špatného a vy chcete aktuální výpočet kompletně zabít, můžete použít 
<literal>exception</literal>.</para>
+      <para>Když například chcete ve své funkci kontrolovat argumenty, můžete použít následující kód. 
<programlisting>function f(M) = (
+  if not IsMatrix (M) then (
+    error ("M není matice!");
+    bailout
+  );
+  …
+)
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-toplevel-syntax">
+      <title>Syntaxe v nejvyšší úrovni</title>
+      <para>Syntaxe se lehce liší, když zadáváte příkazy v nejvyšší úrovni a když jsou uvnitř závorek nebo 
uvnitř funkce. Na nejvyšší úrovni zadání funguje stejně, jako když zmáčknete Enter na příkazovém řádku. Proto 
uvažujte o programu, jako o sekvenci řádků, které byste zadávali na příkazovém řádku. Především nepotřebujete 
zadávat oddělovač na konci řádku (ledaže se jedná o část několika příkazů v závorkách). Když výraz nekončí na 
nejvyšší úrovni oddělovačem, bude výsledek vypsán až po spuštění.</para>
+      <para>Například, <programlisting>function f(x)=x^2
+f(3)
+</programlisting> vypíše se jako první výsledek nastavení funkce (tj. reprezentaci funkce, v tomto případě 
<computeroutput>(`(x)=(x^2))</computeroutput>) a teprve pak očekávané číslo 9. Abyste tomu předešli, zadejte 
za definici funkce oddělovače. <programlisting>function f(x)=x^2;
+f(3)
+</programlisting> Když potřebujete oddělovač použít přímo ve své funkci, musíte ji uzavřít do závorek. 
Například: <programlisting>function f(x)=(
+  y=1;
+  for j=1 to x do
+    y = y+j;
+  y^2
+);
+</programlisting></para>
+      <para>Následující kód skončí chybou, pokud jej zadáte v nejvyšší úrovni programu, zatímco ve funkci 
bude pracovat bez problémů. <programlisting>if Neco() then
+  UdelatNeco()
+else
+  UdelatNecoJineho()
+</programlisting></para>
+      <para>Problémem je, že po té, co <application>matematický nástroj Genius</application> uvidí konec 
řádku po druhém řádku, usoudí, že příkaz už je celý a provede jej. Po té, co je provádění dokončeno, bude 
<application>matematický nástroj Genius</application> pokračovat na následujícím řádku, uvidí 
<literal>else</literal>, a vyvolá chybu zpracování. Řešením je použít závorek. <application>Matematický 
nástroj Genius</application> nebude spokojen, dokud nenalezne všechny závorky uzavřené. <programlisting>if 
Neco() then (
+  UdelatNeco()
+) else (
+  UdelatNecoJineho()
+)
+</programlisting></para>
+    </sect1>
+
+     <sect1 id="genius-gel-returning-functions">
+       <title>Vracení funkcí</title>
+       <para>Existuje možnost, jak vracet funkce jako hodnoty. Tímto způsobem můžete vytvářet funkce, které 
konstruují funkce pro speciální účely podle určitých parametrů. Trochu trik je, jak udělat proměnné, aby je 
funkce viděla. Způsob, který funguje v jazyce GEL je, že když funkce vrací jinou funkci, tak všechny 
identifikátory odkazované v těle funkce, které jdou mimo rozsah působnosti, mají předřazen privátní slovník 
vracené funkce. Takže funkce bude vidět všechny proměnné, které byly v rozsahu působnosti, když byla 
definována. Například nadefinujeme funkci, která vrací funkci, která přičítá 5 ke svému argumentu. 
<programlisting>function f() = (
+  k = 5;
+  `(x) = (x+k)
+)
+</programlisting> Všimněte si, že funkce přičítá <varname>k</varname> k <varname>x</varname>. Použili byste 
ji následovně: <programlisting>g = f();
+g(5)
+</programlisting> A <userinput>g(5)</userinput> by mělo vrátit 10.</para>
+       <para>Jedna věc, kterou je potřeba si uvědomit, je, že hodnota <varname>k</varname>, která je 
použita, je ve skutečnosti ta ve chvíli, kdy se vrací funkce <function>f</function>. Například 
<programlisting>function f() = (
+  k := 5;
+  function r(x) = (x+k);
+  k := 10;
+  r
+)
+</programlisting> bude vracet funkci, která ke svému argumentu přičítá 10 a ne 5. To proto, že je vytvořen 
dodatečný slovník, jen když kontext, ve kterém končí definice funkce, je ten jako když se funkce 
<function>f</function> vrací. Což je konzistentní s tím, jak byste očekávali, že bude funkce 
<function>r</function> pracovat uvnitř funkce <function>f</function> podle pravidel o rozsahu působnosti 
proměnných v jazyce GEL. Do dodatečného slovníku jsou přidány jen ty proměnné, které jsou v kontextu, který 
právě končí a nadále již neexistuje. Proměnné použité ve funkci, které jsou ve stále platném kontextu, budou 
pracovat obvykle s použitím aktuální hodnoty proměnné. Jediný rozdíl je v globálních proměnných a funkcích. 
Všechny identifikátory, které odkazovaly na globální proměnné ve chvíli, kdy definice funkce není přidána do 
privátního slovníku. To je kvůli tomu, aby se zabránilo nepotřebné práci
 , když se vrací funkce a zřídka by byly problémem. Například předpokládejme, že vymažete z funkce 
<function>f</function> výraz „n=5“ a v nejvyšší úrovni definujete <varname>k</varname>, které bude řekněme 5. 
Když pak spustíte funkci <function>f</function>, funkce <function>r</function> nebude proměnnou 
<varname>k</varname> vkládat do privátního slovníku, protože je v době definice <function>r</function> 
globální (v nejvyšší úrovni).</para>
+       <para>Někdy je lepší mít větší kontrolu na tím, jak jsou proměnné kopírovány do privátního slovníku. 
Od verze 1.0.7 můžete určovat, které proměnné jsou kopírovány do privátního slovníku tak, že za argumenty 
vložíte dodatečné hranaté závorky  se seznamem proměnných oddělených čárkou, které se mají kopírovat. Pokud 
tak učiníte, proměnné jsou zkopírovány do privátního slovníku v okamžiku definice funkce a dodatečně se již 
slovník nemění. Například <programlisting>function f() = (
+  k := 5;
+  function r(x) [k] = (x+k);
+  k := 10;
+  r
+)
+</programlisting> bude vracet funkci, která při zavolání přičte 5 ke svému argumentu. Lokální kopie 
<varname>k</varname> byla vytvořena ve chvíli, kdy byla funkce definována.</para>
+       <para>Když chcete, aby funkce neměla žádný privátní slovník, tak vložte za seznam argumentů prázdné 
hranaté závorky. V takovém případě nebude vytvořen vůbec žádný privátní slovník. To je dobré pro zvýšení 
efektivity v situacích, kdy žádný privátní slovník není zapotřebí nebo když chcete, aby funkce hledala 
všechny proměnné takové, jaké jsou v okamžiku volání. Například předpokládejme že chcete, aby funkce vracená 
funkcí <function>f</function> viděla hodnotu <varname>n</varname> z nejvyšší úrovně, přestože existuje 
lokální proměnná stejného jména během definování. Potom kód <programlisting>function f() = (
+  k := 5;
+  function r(x) [] = (x+k);
+  r
+);
+k := 10;
+g = f();
+g(10)
+</programlisting> bude vrace 20 a ne 15, což by nastalo v případě, že <varname>n</varname> s hodnotou 5 bylo 
přidáno do privátního slovníku.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-true-local-variables">
+      <title>Skutečně lokální proměnné</title>
+      <para>Když předáváte funkce do jiných funkcí, může být normální rozsah působnosti proměnných 
nežádoucí. Například u <programlisting>k := 10;
+function r(x) = (x+k);
+function f(g,x) = (
+  k := 5;
+  g(x)
+);
+f(r,1)
+</programlisting> budete pravděpodobně chtít, aby funkce <function>r</function> při předání jako 
<function>g</function> do <function>f</function> viděla v proměnné <varname>k</varname> hodnotu 10 a ne 5, a 
kód tak vracel 11 a ne 6. Ale tak, jak je to napsáno, funkce při spuštění bude vidět <varname>k</varname> 
rovno 5. Existují dva způsoby, jak to vyřešit. Jeden je přimět funkci <function>r</function>, aby dostala 
<varname>k</varname> v privátním slovníku pomocí notace s hranatými závorkami, jak je ukázáno v kapitole 
<link linkend="genius-gel-returning-functions">Vracení funkcí</link>.</para>
+      <para>Je zde ale i jiné řešení. Od verze 1.0.7 jsou k dispozici skutečně lokální proměnné. Jde o 
proměnné, které jsou viditelné pouze z aktuálního kontextu a ne z jakékoliv volané funkce. Mohli bychom 
definovat <varname>k</varname> jako lokální proměnnou ve funkci <function>f</function>. Uděláte to tak, že 
přidáte příkaz <command>local</command> jako první příkaz ve funkci (musí to být vždy první příkaz ve 
funkci). Lokální proměnnou můžete udělat také z kteréhokoliv argumentu. Pak to bude takto 
<programlisting>function f(g,x) = (
+  local g,x,k;
+  k := 5;
+  g(x)
+);
+</programlisting> a kód bude pracovat jak očekáváte a vypisovat 11. Upozorňujeme, že příkaz 
<command>local</command> inicializuje všechny odkazované proměnné (vyjma argumentů funkce) na 
<constant>null</constant>.</para>
+      <para>Pokud mají být jako lokální vytvořeny všechny proměnné, můžete místo seznamu proměnných prostě 
předat hvězdičku. V takovém případě nebudou proměnné inicializovány, dokud opravdu nejsou nastaveny. Takto 
bude i následující definice <function>f</function> pracovat: <programlisting>function f(g,x) = (
+  local *;
+  k := 5;
+  g(x)
+);
+</programlisting></para>
+      <para>Je dobrým zvykem, aby všechny funkce, které přebírají jiné funkce jako argumenty, používaly 
lokální proměnné. Je to způsob, jak zabránit, aby předávaná funkce neviděla implementační podrobnosti a 
nemátlo ji to.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-startup-procedure">
+      <title>Spouštěcí procedura GEL</title>
+      <para>Nejdříve program hledá soubor nainstalovaných knihoven (přeložená verze 
<filename>lib.cgel</filename>) v instalační složce, pak se dívá do aktuální složky a po té zkouší načíst 
nepřeložený soubor nazvaný <filename>~/.geniusinit</filename>.</para>
+      <para>Pokaždé, když změníte knihovnu v místě její instalace, musíte ji nejprve přeložit pomocí 
<command>genius --compile loader.gel &gt; lib.cgel</command></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loading-programs">
+      <title>Načítání programů</title>
+      <para>Někdy můžete mít delší program, který jste zapsali do souboru a chcete jej z tohoto souboru 
načíst do <application>matematického nástroje Genius</application>. V takové situaci máte dvě možnosti. 
Můžete mít funkce, které používáte nejčastěji, v souboru <filename>~/.geniusinit</filename>. Nebo, pokud 
chcete načíst soubor v průběhu sezení (nebo z jiného souboru), můžete napsat na příkazovém řádku 
<command>load &lt;seznam názvů souborů&gt;</command>. To musí být provedeno v nejvyšší úrovni a ne uvnitř 
nějaké funkce nebo něčeho a nesmí to být součástí výrazu. Má to také mírně odlišnou syntaxi než zbytek 
příkazů v kalkulátoru Genius, více se to podobá syntaxi shellu. Soubor můžete zadat v uvozovkách. Když 
použijete uvozovky '', dostanete řetězec přesně tak, jak jste jej zapsali, když uvozovky "", budou zpracovány 
escape sekvence pro speciální znaky. Například: <programlisting>load prog
 ram1.gel program2.gel
+load "Nezvyklý název souboru s MEZERAMI.gel"
+</programlisting> K dispozici jsou také vestavěné příkazy <command>cd</command>, <command>pwd</command> a 
<command>ls</command>. Příkaz <command>cd</command> přijímá jeden argument, <command>ls</command> přijímá 
argument, který je podobný jako u glob v UNIXovém shellu (např. můžete používat divoké znaky). 
<command>pwd</command> nepřijímá žádné argumenty. Například: <programlisting>cd 
složka_s_programemy_v_jazyce_gel
+ls *.gel
+</programlisting></para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Matrices ================================= -->
+  <chapter id="genius-gel-matrices">
+    <title>Matice v jazyce GEL</title>
+
+    <para>Genius podporuje vektory a matice a jeho součástí je rozsáhlá knihovna pro práci s maticemi a s 
funkcemi lineární algebry.</para>
+
+    <sect1 id="genius-gel-matrix-support">
+      <title>Zadávání matic</title>
+      <para>K zadávání matic můžete použít jednu z následujících dvou syntaxí. Buď můžete zadat matici na 
jednom řádku, kdy hodnoty oddělujete čárkami a řádky středníky. Nebo můžete zadávat každý řádek na jednom 
řádku, kdy hodnoty oddělujete čárkami. Můžete také jednoduše kombinovat obě metody. Takže zadání matice 3×3 z 
čísel 1 – 9 byste mohli zadat <programlisting>[1,2,3;4,5,6;7,8,9]
+</programlisting> nebo <programlisting>[1, 2, 3
+ 4, 5, 6
+ 7, 8, 9]
+</programlisting> Přesto nepoužívejte naráz „;“ a enter na stejném řádku.</para>
+
+      <para>Při vkládání matic můžete také použít funkci rozšíření matice. Například můžete udělat 
následující: <programlisting>a = [ 1, 2, 3
+      4, 5, 6
+      7, 8, 9]
+b = [ a,  10
+      11, 12]
+</programlisting> a měli byste získat <programlisting>[1,   2,  3, 10
+ 4,   5,  6, 10
+ 7,   8,  9, 10
+ 11, 11, 11, 12]
+</programlisting> Podobně můžete sestavit matice z vektorů a dalších podobných věcí.</para>
+
+      <para>Další věcí je, že nezadaná místa se inicializují na 0, takže <programlisting>[1, 2, 3
+ 4, 5
+ 6]
+</programlisting> bude ve výsledku <programlisting>
+[1, 2, 3
+ 4, 5, 0
+ 6, 0, 0]
+</programlisting></para>
+
+      <para>Když jsou matice vyhodnocovány, jsou vyhodnocovány a procházeny po řádcích. Je to úplně stejné 
jako operátor <literal>M@(j)</literal>, který prochází matice po řádcích.</para>
+
+      <note>
+        <para>Věnujte pozornost při vracení z výrazů uvnitř závorek <literal>[ ]</literal>, protože tam mají 
lehce odlišný význam. Začnete tím nový řádek.</para>
+      </note>
+
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-transpose">
+      <title>Operátor konjugované transpozice a transpozice</title>
+      <para>Konjugovanou transpozici matice můžete provádět pomocí operátoru <literal>'</literal>. Tj. prvek 
v <varname>i</varname>-tém sloupci a <varname>j</varname>-tém řádku bude komplexním konjugátem prvku v 
<varname>j</varname>-tém sloupci a <varname>i</varname>-tém řádku původní matice. Například: 
<programlisting>[1,2,3]*[4,5,6]'
+</programlisting> Transponujeme druhý vektor, aby bylo možné matici násobit. Pokud chcete matici jen 
transponovat bez konjugace, použijte operátor <literal>.'</literal>. Například: 
<programlisting>[1,2,3]*[4,5,6i].'
+</programlisting></para>
+       <para>Poznamenejme, že normální transpozice, tj. operátor <literal>.'</literal>, je mnohem rychlejší 
a nevytváří novou kopii matice v paměti. Konjugovaná transpozice bohužel novou kopii vytváří. Při práci se 
skutečnými maticemi a vektory je doporučováno vždy používat operátor <literal>.'</literal>.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-linalg">
+      <title>Lineární algebra</title>
+      <para>Genius implementuje velmi užitečné rutiny pro lineární algebru a práci s maticemi. Viz <link 
linkend="genius-gel-function-list-linear-algebra">Lineární algebra</link> a <link 
linkend="genius-gel-function-list-matrix">Práce s maticemi</link> v kapitole se seznamem funkcí GEL.</para>
+      <para>Rutiny lineární algebry implementované v jazyce GEL v současnosti nepochází s příliš testovaného 
balíku pro numeriku a proto by neměly být používány pro kritické numerické výpočty. Na druhou stranu Genius 
implementuje opravdu hodně operací lineární algebry s racionálními a celočíselnými koeficienty. Ty jsou 
přirozeně přesné a v praxi vám poskytnou mnohem lepší výsledky, než běžné rutiny pro lineární algebru s 
dvojitou přesností.</para>
+      <para>Například je pro praktické účely zbytečné počítat hodnost nebo nulový prostor matice desetinných 
čísel, musíme vzít v úvahu, že matice mají určité malé chyby. To může vést k tomu, že získáte jiné výsledky, 
než očekáváte. Problém je, že za malou odchylkou každé matice je plná hodnost a invertovatelnost. Avšak pokud 
je matice z racionálních čísel, pak hodnost a nulový prostor jsou vždy přesné.</para>
+      <para>Vzato obecně, když Genius počítá podle určitého prostoru vektorů (například s funkcí <link 
linkend="gel-function-NullSpace"><function>NullSpace</function></link>), získá báze jako matici, ve které 
jsou sloupce vektory báze. Když Genius mluví o lineárním podprostoru, míní tím matici, jejíž prostor sloupců 
je daný lineární podprostor.</para>
+      <para>Měli byste vzít na vědomí, že Genius si umí zapamatovat určité vlastnosti matice. Například si 
bude pamatovat, že je v řádkově redukované podobě. Když je prováděno hodně volání funkcí, které interně 
používají řádkově redukovanou matici, můžeme matici řádkově redukovat dopředu. Postupná volání <link 
linkend="gel-function-rref"><function>rref</function></link> budou velmi rychlá.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Polynomials ============================== -->
+  <chapter id="genius-gel-polynomials">
+    <title>Polynomy v jazyce GEL</title>
+
+    <para>V současnosti Genius umí pracovat s polynomy jedné proměnné zapsanými jako vektory a umí s nimi 
některé základní operace. Do budoucna se počítá s rozšířením této funkcionality.</para>
+
+    <sect1 id="genius-gel-polynomials-using">
+      <title>Používání polynomů</title>
+      <para>V současnosti jsou polynomy jedné proměnné prostě jen vodorovné vektory s hodnotami jednotlivých 
koeficientů. Podstatná je pozice ve vektoru, kdy první pozice je 0. Takže <programlisting>[1,2,3]
+</programlisting> se převede na polynom <programlisting>1 + 2*x + 3*x^2
+</programlisting></para>
+      <para>Polynomy můžete sčítat, odčítat a násobit pomocí funkcí <link 
linkend="gel-function-AddPoly"><function>AddPoly</function></link>, <link 
linkend="gel-function-SubtractPoly"><function>SubtractPoly</function></link> a <link 
linkend="gel-function-MultiplyPoly"><function>MultiplyPoly</function></link>. Vypisovat je můžete pomocí 
funkce <link linkend="gel-function-PolyToString"><function>PolyToString</function></link>. Například 
<programlisting>PolyToString([1,2,3],"y")
+</programlisting> vrátí <programlisting>3*y^2 + 2*y + 1
+</programlisting> Můžete také získat funkci představující polynom, takže jej můžete vyhodnotit. Udělá se to 
pomocí funkce <link linkend="gel-function-PolyToFunction"><function>PolyToFunction</function></link>, ktrá 
vrací anonymní funkce. <programlisting>f = PolyToFunction([0,1,1])
+f(2)
+</programlisting></para>
+      <para>Rovněž je možné hledat kořeny polynomů 1. až 4. stupně pomocí funkce <link 
linkend="gel-function-PolynomialRoots"><function>PolynomialRoots</function></link>, která volá funkce s 
příslušnými vzorci. Vyšší stupně polynomů musí být převedeny na funkce a řešeny numericky pomocí funkcí, jako 
je <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> nebo <link 
linkend="gel-function-FindRootSecant"><function>FindRootSecant</function></link>.</para>
+      <para>Ohledně ostatních funkcí týkajících se polynomů se podívejte se na <xref 
linkend="genius-gel-function-list-polynomials"/> v seznamu funkcí.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Set Theory ============================== -->
+  <chapter id="genius-gel-settheory">
+    <title>Teorie množin v jazyce GEL</title>
+
+    <para>Genius má vestavěnou základní funkcionalitu pro teorii množin. V současnosti je množina prostě jen 
vektor (nebo matice). S každým jednotlivým objektem je zacházeno jako s odlišným prvkem.</para>
+
+    <sect1 id="genius-gel-sets-using">
+      <title>Používání množin</title>
+      <para>Podobně jako u vektorů, i v množinách mohou být objekty čísla, řetězce, 
<constant>null</constant>, matice a vektory. Do budoucna je pro množiny plánován samostatný typ namísto 
vektorů. Upozorňujeme, že desetinná čísla (float) se odlišují od celých čísel (integer), i když vypadají 
stejně. Takže Genius bude s <constant>0</constant> a <constant>0.0</constant> zacházet jako s různými prvky. 
<constant>null</constant> je považováno za prázdnou množinu.</para>
+      <para>K sestavení množiny vektorů použijte funkci <link 
linkend="gel-function-MakeSet"><function>MakeSet</function></link>. V současnosti vrátí akorát nový vektor, 
ve kterém je každý prvek jedinečný. <screen><prompt>genius&gt; 
</prompt><userinput>MakeSet([1,2,2,3])</userinput>
+= [1, 2, 3]
+</screen></para>
+
+       <para>Podobně jsou k dispozici funkce <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>, které vrací sjednocení, průnik a rozdíl 
množin. Například: <screen><prompt>genius&gt; </prompt><userinput>Union([1,2,3], [1,2,4])</userinput>
+= [1, 2, 4, 3]
+</screen> Upozorňujeme, že u vracených hodnot není zaručeno žádné pořadí. Pokud chcete vektor seřadit, měli 
byste použít funkci <link linkend="gel-function-SortVector"><function>SortVector</function></link>.</para>
+
+       <para>Pro test, zda je prvkem množiny, slouží funkce <link 
linkend="gel-function-IsIn"><function>IsIn</function></link> a <link 
linkend="gel-function-IsSubset"><function>IsSubset</function></link>, které vrací pravdivostní hodnotu. 
Například: <screen><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
+= true
+</screen> Vstup <userinput>IsIn(x,X)</userinput> je samozřejmě shodný s 
<userinput>IsSubset([x],X)</userinput>. Uvědomte si, že vzhledem k tomu, že prázdná množina je podmnožinou 
kterékoliv množiny, volání <userinput>IsSubset(null,X)</userinput> vrátí vždy true (pravda).</para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL function list ======================== -->
+  <chapter id="genius-gel-function-list">
+    <title>Seznam funkcí GEL</title>
+
+    <!--&gel-function-list;-->
+
+    <para>Pro získání nápovědy ke konkrétní funkci napište v konzole: <programlisting>help NazevFunkce
+</programlisting></para>
+
+    <sect1 id="genius-gel-function-list-commands">
+      <title>Příkazy</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-command-help"/>help</term>
+         <listitem>
+          <synopsis>help</synopsis>
+          <synopsis>help NázevFunkce</synopsis>
+          <para>Vypsat nápovědu (nebo nápovědu k funkci/příkazu).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-load"/>load</term>
+         <listitem>
+          <synopsis>load "soubor.gel"</synopsis>
+          <para>Načíst soubor do interpretru. Obsah souboru bude proveden stejně, jako by byl napsán do 
příkazového řádku.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-cd"/>cd</term>
+         <listitem>
+          <synopsis>cd /název/složky</synopsis>
+          <para>Změnit pracovní složku na <filename>/název/složky</filename>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-pwd"/>pwd</term>
+         <listitem>
+          <synopsis>pwd</synopsis>
+          <para>Vypsat název aktuální pracovní složky.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-ls"/>ls</term>
+         <listitem>
+          <synopsis>ls</synopsis>
+          <para>Vypsat soubory v aktuální složce.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-plugin"/>plugin</term>
+         <listitem>
+          <synopsis>plugin název_zásuvného_modulu</synopsis>
+          <para>Načíst zásuvný modul. Zásuvný modul se zadaným názvem musí být v systému nainstalován ve 
správné složce.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-basic">
+      <title>Základy</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
+         <listitem>
+          <synopsis>AskButtons (otazka)</synopsis>
+          <synopsis>AskButtons (otazka, tlacitko1, ...)</synopsis>
+         <para>Položit uživateli otázku a poskytnout mu seznam tlačítek (nebo nabídku voleb v textovém 
režimu). Vrací index zmáčknutého tlačítka. Index začíná od jedné, tj. vrací 1, když je zmáčknuto první 
tlačítko, 2, když je zmáčknuto druhé tlačítko atd. Pokud uživatel zavře okno (nebo prostě zmáčkne Enter v 
textovém režimu), je vráceno <constant>null</constant>. Dokud uživatel nezareaguje, je další provádění 
programu blokováno.</para>
+         <para>Verze 1.0.10 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AskString"/>AskString</term>
+         <listitem>
+          <synopsis>AskString (otazka)</synopsis>
+          <synopsis>AskString (otazka, vychozi)</synopsis>
+          <para>Položit uživateli otázku a umožnit mu zadat řetězec, který pak bude vrácen. Pokud uživatel 
dotaz zruší nebo okno zavře, bude vráceno <constant>null</constant>. Provádění programu je blokováno, dokud 
uživatel neodpoví. Pokud je zadán argument <varname>vychozi</varname>, bude uživateli předvyplněn, takže mu 
bude stačit zmáčknout Enter (od verze 1.0.6).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Compose"/>Compose</term>
+         <listitem>
+          <synopsis>Compose (f,g)</synopsis>
+          <para>Složit dvě funkce a vrátit funkci, která je spojením <function>f</function> a 
<function>g</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
+         <listitem>
+          <synopsis>ComposePower (f,n,x)</synopsis>
+          <para>Složit a provést funkci samu se sebou <varname>n</varname> krát, přičemž jí předat argument 
<varname>x</varname>. Pokud se <varname>n</varname> rovná 0, vrací <varname>x</varname>. Příklad: 
<screen><prompt>genius&gt;</prompt> <userinput>function f(x) = x^2 ;</userinput>
+<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
+= 5764801
+<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
+= 5764801
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
+         <listitem>
+          <synopsis>Evaluate (retezec)</synopsis>
+          <para>Analyzovat a vyhodnotit řetězec.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
+         <listitem>
+          <synopsis>GetCurrentModulo</synopsis>
+          <para>Získat aktuální modulo z kontextu mimo funkci. To jest, pokud jste mimo funkci spuštěnou v 
modulární aritmetice (pomocí <literal>mod</literal>), bude vráceno to, co bylo tímto zbytkem. Normálně není 
tělo volané funkce prováděno v modulární aritmetice a díky této vestavěné funkci je možné, aby funkce GEL 
probíhaly v modulární aritmetice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Identity"/>Identity</term>
+         <listitem>
+          <synopsis>Identity (x)</synopsis>
+         <para>Funkce identity, která vrací svůj argument. Odpovídá to <userinput>function 
Identity(x)=x</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
+         <listitem>
+          <synopsis>IntegerFromBoolean (pravdhodnota)</synopsis>
+         <para>Udělat z pravdivostní hodnoty celé číslo (0 pro <constant>false</constant> nebo 1 pro 
<constant>true</constant>). <varname>pravdhodnota</varname> může být i číslo, v kterém tož případě bude 
nenulová hodnota brána jako <constant>true</constant> a nulová jako <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
+         <listitem>
+          <synopsis>IsBoolean (argument)</synopsis>
+          <para>Zkontrolovat, zda je argument pravdivostní hodnota (a ne číslo).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
+         <listitem>
+          <synopsis>IsDefined (id)</synopsis>
+          <para>Zkontrolovat, zda je id definováno. Měli byste předat řetězec nebo identifikátor. Pokud 
předáte matici, bude každá položka vyhodnocena samostatně a matice by měla obsahovat řetězce nebo 
identifikátory.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
+         <listitem>
+          <synopsis>IsFunction (argument)</synopsis>
+          <para>Zkontrolovat, zda je argument funkcí.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
+         <listitem>
+          <synopsis>IsFunctionOrIdentifier (argument)</synopsis>
+          <para>Zkontrolovat, zda je argument funkcí nebo identifikátorem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
+         <listitem>
+          <synopsis>IsFunctionRef (argument)</synopsis>
+          <para>Zkontrolovat, zda je argument odkazem na funkci. Zahrnuje to i odkazy na proměnné.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
+         <listitem>
+          <synopsis>IsMatrix (argument)</synopsis>
+          <para>Zkontrolovat, zda je argument maticí. Ačkoliv je <constant>null</constant> občas považováno 
za prázdnou matici, funkce <function>IsMatrix</function> hodnotu <constant>null</constant> za matici 
nepovažuje.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNull"/>IsNull</term>
+         <listitem>
+          <synopsis>IsNull (argument)</synopsis>
+         <para>Zkontrolovat, zda je argument <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsString"/>IsString</term>
+         <listitem>
+          <synopsis>IsString (argument)</synopsis>
+          <para>Zkontrolovat, zda je argument textovým řetězcem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValue"/>IsValue</term>
+         <listitem>
+          <synopsis>IsValue (argument)</synopsis>
+          <para>Zkontrolovat, zda je argument číslem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Parse"/>Parse</term>
+         <listitem>
+          <synopsis>Parse (retezec)</synopsis>
+          <para>Analyzovat, ale nevyhodnocovat řetězec. Berte ale na vědomí, že během fáze analýzy se 
provádí určité předvýpočty.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
+         <listitem>
+          <synopsis>SetFunctionFlags (id,priznaky...)</synopsis>
+          <para>Nastavit příznaky pro funkci, v současnosti jsou k dispozici 
<literal>"PropagateMod"</literal> a <literal>"NoModuloArguments"</literal>. Pokud je nastaveno 
<literal>"PropagateMod"</literal>, je vyhodnocování těla funkce prováděno v modulární aritmetice v situaci, 
kdy je funkce volána uvnitř bloku, který je vyhodnocován v modulární aritmetice (pomocí 
<literal>mod</literal>). Pokud je nastaveno <literal>"NoModuloArguments"</literal>, nejsou argumenty funkce 
nikdy vyhodnocovány pomocí modulární aritmetiky.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
+         <listitem>
+          <synopsis>SetHelp (id,kategorie,popis)</synopsis>
+          <para>Nastavit kategorii funkce a řádek jejího popisu v nápovědě.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
+         <listitem>
+          <synopsis>SetHelpAlias (id,altnazev)</synopsis>
+          <para>Nastavit alternativní název do nápovědy.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-chdir"/>chdir</term>
+         <listitem>
+          <synopsis>chdir (složka)</synopsis>
+          <para>Změnit aktuální složku, stejné jako <command>cd</command>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
+         <listitem>
+          <synopsis>CurrentTime</synopsis>
+          <para>Vrátit aktuální UNIXový čas s přesností na mikrovteřiny v podobě desetinného čísla. 
Prakticky se jedná o počet vteřin uplynulých od 1. ledna 1970.</para>
+         <para>Verze 1.0.15 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-display"/>display</term>
+         <listitem>
+          <synopsis>display (retezec,vyraz)</synopsis>
+          <para>Zobrazit retezec a vyraz navzájem oddělené dvojtečkou.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DisplayVariables"/>DisplayVariables</term>
+         <listitem>
+          <synopsis>DisplayVariables (prom1,prom2,...)</synopsis>
+         <para>Zobrazit sadu proměnných. Proměnné mohou být předány jako řetězce nebo jako identifikátory. 
Například: <programlisting>DisplayVariables (`x,`y,`z)
+           </programlisting></para>
+         <para>Pokud je zavoláno bez argumentů (musí být předán prázdný seznam argumentů) jako 
<programlisting>DisplayVariables ()
+           </programlisting>, budou vypsány všechny proměnné včetně stavu zásobníku, podobně jako u 
<guilabel>Zobrazit uživatelské proměnné</guilabel> v grafické verzi.</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-error"/>error</term>
+         <listitem>
+          <synopsis>error (retezec)</synopsis>
+          <para>Vypsat retezec do chybového proudu (na konzole).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exit"/>exit</term>
+         <listitem>
+          <synopsis>exit</synopsis>
+          <para>Alternativní názvy: <function>quit</function></para>
+          <para>Ukončit program.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-false"/>false</term>
+         <listitem>
+          <synopsis>false</synopsis>
+          <para>Alternativní názvy: <function>False</function> <function>FALSE</function></para>
+         <para>Pravdivostní hodnota <constant>false</constant> (nepravda).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-manual"/>manual</term>
+         <listitem>
+          <synopsis>manual</synopsis>
+          <para>Zobrazit uživatelskou příručku.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-print"/>print</term>
+         <listitem>
+          <synopsis>print (retezec)</synopsis>
+          <para>Vypsat výraz a poté odřádkovat. Argument <varname>retezec</varname> může být libovolný 
výraz. Před vypsáním je převeden na řetězec.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-printn"/>printn</term>
+         <listitem>
+          <synopsis>printn (retezec)</synopsis>
+          <para>Vypsat výraz bez odřádkování. Argument <varname>retezec</varname> může být libovolný výraz. 
Před vypsáním je převeden na řetězec.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrintTable"/>PrintTable</term>
+         <listitem>
+          <synopsis>PrintTable (f,v)</synopsis>
+         <para>Vypsat tabulku hodnot pro funkci. Hodnoty jsou ve vektoru <varname>v</varname>. Můžete použít 
vestavěnou notaci vektoru takto: <programlisting>PrintTable (f,[0:10])
+           </programlisting> Pokud je <varname>v</varname> celé kladné číslo, použije se tabulka celých 
čísel od 1 do v včetně.</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-protect"/>protect</term>
+         <listitem>
+          <synopsis>protect (id)</synopsis>
+          <para>Ochránit proměnnou proti změnám. Stejný postup je použit u interních funkcí GEL, aby se 
zabránilo nechtěnému přepsání.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
+         <listitem>
+          <synopsis>ProtectAll ()</synopsis>
+          <para>Ochránit všechny aktuálně definované proměnné, parametry a funkce proti změnám. Stejný 
postup je použit u interních funkcí GEL, aby se zabránilo nechtěnému přepsání. Normálně 
<application>matematický nástroj Genius</application> považuje nechráněné proměnné za definované 
uživatelem.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-set"/>set</term>
+         <listitem>
+          <synopsis>set (id,hodnota)</synopsis>
+          <para>Nastavit globální proměnnou. Argument <varname>id</varname> může být buď řetězec nebo 
identifikátor s uvozovkou. Například: <programlisting>set(`x,1)
+           </programlisting> nastaví globální proměnnou <varname>x</varname> na hodnotu 1.</para>
+         <para>Funkce vrací <varname>hodnotu</varname>, což je užitečné pro řetězení.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetElement"/>SetElement</term>
+         <listitem>
+          <synopsis>SetElement (id,radek,sloupec,hodnota)</synopsis>
+         <para>Nastavit prvek globální proměnné, která je maticí. Argument <varname>id</varname> může být 
buď řetězec nebo identifikátor s uvozovkou. Příklad: <programlisting>SetElement(`x,2,3,1)
+           </programlisting> nastaví prvek ve druhém řádku třetím sloupci globální proměnné 
<varname>x</varname> na hodnotu 1. V případě, že neexistuje globální proměnná s daným názvem nebo je 
nastavena na něco jiného než matici, vytvoří se nová nulová matice příslušné velikosti.</para>
+         <para>Argumenty <varname>row</varname> a <varname>col</varname> mohou být i rozsahy a sémanticky je 
to stejné, jako běžné nastavení prvků pomocí znaménka rovnosti.</para>
+         <para>Funkce vrací <varname>hodnotu</varname>, což je užitečné pro řetězení.</para>
+         <para>Dostupné ve verzi 1.0.18 a novějších.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetVElement"/>SetVElement</term>
+         <listitem>
+          <synopsis>SetElement (id,prvek,hodnota)</synopsis>
+         <para>Nastavit prvek globální proměnné, která je vektorem. Argument <varname>id</varname> může být 
buď řetězec nebo identifikátor s uvozovkou. Příklad: <programlisting>SetElement(`x,2,1)
+           </programlisting> nastaví druhý prvek globálního vektoru <varname>x</varname> na hodnotu 1. V 
případě, že neexistuje globální proměnná s daným názvem nebo je nastavena na něco jiného než vektor (matici), 
vytvoří se nový nulový vektor příslušné velikosti.</para>
+         <para>Argument <varname>prvek</varname> může být i rozsah a sémanticky je to stejné, jako běžné 
nastavení prvků pomocí znaménka rovnosti.</para>
+         <para>Funkce vrací <varname>hodnotu</varname>, což je užitečné pro řetězení.</para>
+         <para>Dostupné ve verzi 1.0.18 a novějších.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-string"/>string</term>
+         <listitem>
+          <synopsis>string (s)</synopsis>
+          <para>Vytvořit řetězec. Vytvoří řetězec podle libovolného argumentu.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-true"/>true</term>
+         <listitem>
+          <synopsis>true</synopsis>
+          <para>Alternativní názvy: <function>True</function> <function>TRUE</function></para>
+         <para>Pravdivostní hodnota <constant>true</constant> (pravda).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-undefine"/>undefine</term>
+         <listitem>
+          <synopsis>undefine (id)</synopsis>
+          <para>Alternativní názvy: <function>Undefine</function></para>
+          <para>Zrušit definici proměnné. Což zahrnuje lokální a globální, všechny hodnoty ve všech úrovních 
kontextu jsou vymazány. Tato funkce by opravdu neměla být používána na lokální proměnné. Je možné předat i 
vektor identifikátorů a v takovém případě bude zrušena definice několika proměnných.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
+         <listitem>
+          <synopsis>UndefineAll ()</synopsis>
+         <para>Zrušit definice všech nechráněných globálních proměnných (včetně funkcí a parametrů). 
Normálně <application>matematický nástroj Genius</application> považuje chráněné proměnné za funkce a 
proměnné definované systémem. Upozorňujeme, že funkce <function>UndefineAll</function> odstraní pouze 
globální definice symbolů, lokální ne, takže může být bezpečně spouštěna i z těla jiných funkcí.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-unprotect"/>unprotect</term>
+         <listitem>
+          <synopsis>unprotect (id)</synopsis>
+          <para>Zrušit ochranu proměnné proti změnám.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
+         <listitem>
+          <synopsis>UserVariables ()</synopsis>
+          <para>Vrátit vektor všech uživatelem definovaných (nechráněných) globálních proměnných.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-wait"/>wait</term>
+         <listitem>
+          <synopsis>wait (vteřiny)</synopsis>
+          <para>Čekat zadaný počet vteřin. Počet <varname>vteřiny</varname> musí být nezáporný. Nula se 
akceptuje a v takovém případě se nic neprovede, vyjma možnosti, že jsou zpracovány události uživatelského 
rozhraní.</para>
+         <para>Protože od verze 1.0.18 může být argument <varname>vteřiny</varname> neceločíselný, bude 
například <userinput>wait(0.1)</userinput> čekat jednu desetinu vteřiny.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-version"/>version</term>
+         <listitem>
+          <synopsis>version</synopsis>
+          <para>Vrátit verzi kalkulátoru Genius jako svislý 3prvkový vektor s hlavním číslem jako prvním, 
následuje vedlejší číslo a nakonec úroveň záplat.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-warranty"/>warranty</term>
+         <listitem>
+          <synopsis>warranty</synopsis>
+          <para>Poskytnout informace o licenci.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+
+    </sect1>
+
+    <sect1 id="genius-gel-function-parameters">
+      <title>Parametry</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
+         <listitem>
+          <synopsis>ChopTolerance = číslo</synopsis>
+          <para>Tolerance funkce <function>Chop</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
+         <listitem>
+          <synopsis>ContinuousNumberOfTries = číslo</synopsis>
+          <para>Kolik iterací zkusit pro nalezení limity pro spojitost a limit.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
+         <listitem>
+          <synopsis>ContinuousSFS = číslo</synopsis>
+          <para>Kolik postupných kroků, aby to bylo v rámci tolerance pro výpočet spojitosti.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
+         <listitem>
+          <synopsis>ContinuousTolerance = číslo</synopsis>
+          <para>Tolerance pro spojitost funkcí a výpočet limity.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
+         <listitem>
+          <synopsis>DerivativeNumberOfTries = číslo</synopsis>
+          <para>Kolik iterací zkusit pro nalezení limity pro derivaci.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
+         <listitem>
+          <synopsis>DerivativeSFS = číslo</synopsis>
+          <para>Kolik postupných kroků, aby to bylo v rámci tolerance pro výpočet derivace.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
+         <listitem>
+          <synopsis>DerivativeTolerance = číslo</synopsis>
+          <para>Tolerance pro výpočet derivací funkcí.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
+         <listitem>
+          <synopsis>ErrorFunctionTolerance = číslo</synopsis>
+         <para>Tolerance chybové funkce <link 
linkend="gel-function-ErrorFunction"><function>ErrorFunction</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
+         <listitem>
+          <synopsis>FloatPrecision = číslo</synopsis>
+          <para>Přesnost desetinných čísel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
+         <listitem>
+          <synopsis>FullExpressions = pravdivostní hodnota</synopsis>
+          <para>Vypisovat úplné výrazy, i když mají více než jeden řádek.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
+         <listitem>
+          <synopsis>GaussDistributionTolerance = číslo</synopsis>
+         <para>Tolerance funkce <link 
linkend="gel-function-GaussDistribution"><function>GaussDistribution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
+         <listitem>
+          <synopsis>IntegerOutputBase = číslo</synopsis>
+          <para>Číselná soustava vypisovaných celých čísel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
+         <listitem>
+          <synopsis>IsPrimeMillerRabinReps = číslo</synopsis>
+         <para>Počet Miller-Rabinových testů, které se mají spustit na číslo před prohlášením, že je to 
prvočíslo, ve funkci <link linkend="gel-function-IsPrime"><function>IsPrime</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
+         <listitem>
+          <synopsis>LinePlotDrawLegends = true</synopsis>
+          <para>Říká kalkulátoru genius, aby vykresloval legendy pro <link 
linkend="genius-gel-function-list-plotting">funkce čárových grafů</link>, jako třeba <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
+         <listitem>
+          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
+          <para>Říká kalkulátoru genius, aby vykresloval popisky os pro <link 
linkend="genius-gel-function-list-plotting">funkce čárových grafů</link>, jako třeba <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
+         <listitem>
+          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
+          <para>Říká kalkulátoru genius, které názvy proměnných jsou použity jako výchozí názvy pro <link 
linkend="genius-gel-function-list-plotting">funkce čárových grafů</link>, jako třeba <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> a spol.</para>
+         <para>Verze 1.0.10 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
+         <listitem>
+          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
+          <para>Nastavuje meze pro <link linkend="genius-gel-function-list-plotting">funkce čárových 
grafů</link>, jako třeba <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
+         <listitem>
+          <synopsis>MaxDigits = číslo</synopsis>
+          <para>Maximální počet číslic, který se má zobrazovat.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
+         <listitem>
+          <synopsis>MaxErrors = číslo</synopsis>
+          <para>Maximální počet chyb, které se mají zobrazovat.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
+         <listitem>
+          <synopsis>MixedFractions = pravdivostní hodnota</synopsis>
+          <para>Pokud je nastaveno na true, budou vypisovány složené zlomky.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
+         <listitem>
+          <synopsis>NumericalIntegralFunction = funkce</synopsis>
+         <para>Funkce používaná pro numerické integrování v <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
+         <listitem>
+          <synopsis>NumericalIntegralSteps = číslo</synopsis>
+         <para>Počet kroků, které se mají provést ve funkci <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
+         <listitem>
+          <synopsis>OutputChopExponent = číslo</synopsis>
+         <para>Když je jiné číslo ve vypisovaném objektu (matici nebo hodnotě) větší než 
10<superscript>-OutputChopWhenExponent</superscript> a vypisované číslo je menší než 
10<superscript>-OutputChopExponent</superscript>, pak se místo tohoto čísla zobrazí 
<computeroutput>0.0</computeroutput>.</para>
+<para>Výstup není nikdy osekán, pokud je <function>OutputChopExponent</function> nula. Vždy musí být 
nezáporné celé číslo.</para>
+<para>Jestliže chcete, aby byl výstup vždy osekáván podle <function>OutputChopExponent</function>, tak 
nastavte <function>OutputChopWhenExponent</function> na cokoliv většího nebo rovného 
<function>OutputChopExponent</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
+         <listitem>
+          <synopsis>OutputChopWhenExponent = číslo</synopsis>
+         <para>Kdy osekávat výstup. Viz <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
+         <listitem>
+          <synopsis>OutputStyle = řetězec</synopsis>
+          <para>Styl výstupu, může jít o jeden z <literal>normal</literal>, <literal>latex</literal>, 
<literal>mathml</literal> nebo <literal>troff</literal>.</para>
+         <para>Z větší části to ovlivňuje, jak se vypisují matice a zlomky a je to užitečné pro vkládání do 
dokumentů. Například to můžete nastavit na latex pomocí: <programlisting>OutputStyle = "latex"
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
+         <listitem>
+          <synopsis>ResultsAsFloats = pravdivostní hodnota</synopsis>
+          <para>Před vypsáním převést všechny výsledky na desetinná čísla.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
+         <listitem>
+          <synopsis>ScientificNotation = pravdivostní hodnota</synopsis>
+          <para>Používat vědeckou notaci.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
+         <listitem>
+          <synopsis>SlopefieldTicks = [svisle,vodorovne]</synopsis>
+          <para>Nastavuje počet svislých a vodorovných měřítkových značek v grafu směrového pole. (Viz <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>).</para>
+         <para>Verze 1.0.10 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
+         <listitem>
+          <synopsis>SumProductNumberOfTries = číslo</synopsis>
+         <para>Kolik iterací se má zkusit pro <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> a <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
+         <listitem>
+          <synopsis>SumProductSFS = číslo</synopsis>
+          <para>Kolik postupných kroků, aby to bylo v rámci tolerance pro <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> a <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
+         <listitem>
+          <synopsis>SumProductTolerance = číslo</synopsis>
+          <para>Tolerance pro funkce <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> a <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLegends = true</synopsis>
+          <para>Říká kalkulátoru genius, aby vykresloval legendy pro <link 
linkend="genius-gel-function-list-plotting">funkce grafů ploch</link>, jako třeba <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
+         <listitem>
+          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
+          <para>Říká kalkulátoru genius, které názvy proměnných jsou použity jako výchozí názvy pro <link 
linkend="genius-gel-function-list-plotting">funkce plošných grafů</link>, tj. <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>. Uvědomte si, že 
<varname>z</varname> neodkazuje na závislou (svislou) osu, ale na nezávislou komplexní proměnnou 
<userinput>z=x+iy</userinput>.</para>
+         <para>Verze 1.0.10 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
+         <listitem>
+          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
+          <para>Nastavuje meze pro vykreslování ploch. (Viz <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
+         <listitem>
+          <synopsis>VectorfieldNormalized = true</synopsis>
+          <para>Zda by měl mít graf vektorového pole normalizovanou délku šipek. Pokud je nastaveno na true, 
bude vektorové pole ukazovat pouze směr a ne velikost. (Viz <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
+         <listitem>
+          <synopsis>VectorfieldTicks = [svisle,vodorovne]</synopsis>
+          <para>Nastavuje počet svislých a vodorovných měřítkových značek v grafu vektorového pole. (Viz 
<link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
+         <para>Verze 1.0.10 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-constants">
+      <title>Konstanty</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
+         <listitem>
+          <synopsis>CatalanConstant</synopsis>
+          <para>Catalanova konstanta, přibližně 0,915… Je definována jako řada se členy 
<userinput>(-1^k)/((2*k+1)^2)</userinput>, kde <varname>k</varname> je z intervalu 0 až nekonečno.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/CatalansConstant.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://en.wikipedia.org/wiki/Catalan%27s_constant";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
+         <listitem>
+          <synopsis>EulerConstant</synopsis>
+          <para>Alternativní názvy: <function>gamma</function></para>
+          <para>Eulerova konstanta gama. Někdy nazývaná také Eulerova-Mascheroniho konstanta.</para>
+          <para>Více informací najdete v encyklopediíc <ulink 
url="http://planetmath.org/MascheroniConstant";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html";>Mathworld</ulink> (text je v angličtině) a 
<ulink url="https://cs.wikipedia.org/wiki/Eulerova_konstanta";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
+         <listitem>
+          <synopsis>GoldenRatio</synopsis>
+          <para>Zlatý řez.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/GoldenRatio";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/GoldenRatio.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Zlat%C3%BD_%C5%99ez";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Gravity"/>Gravity</term>
+         <listitem>
+          <synopsis>Gravity</synopsis>
+         <para>Tíhové zrychlení na úrovni moře v metrech za sekundu na druhou. Jedná se o standardní 
gravitační konstantu 9,80665. Gravitace v končinách vašeho lesa se může lišit, kvůli jiné nadmořské výšce a 
kvůli tomu, že Země není ideálně kulatá a jednolitá.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Standard_gravity";>Wikipedia</ulink>(text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-e"/>e</term>
+         <listitem>
+          <synopsis>e</synopsis>
+          <para>Základ přirozeného logaritmu. <userinput>e^x</userinput> je exponenciální funkce <link 
linkend="gel-function-exp"><function>exp</function></link>. Hodnota konstanty je přibližně 2,71828182846… 
Toto číslo bývá někdy nazýváno Eulerovo, ačkoliv existuje několik čísel rovněž nazývaných Eulerovo. Například 
konstanta gamma: <link linkend="gel-function-EulerConstant"><function>EulerConstant</function></link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/E";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/e.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Eulerovo_%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-pi"/>pi</term>
+         <listitem>
+          <synopsis>pi</synopsis>
+          <para>Číslo pí, což je poměr obvodu kružnice vůči jejímu průměru. Přibližně to je 
3,14159265359…</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/Pi";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/Pi.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/P%C3%AD_%28%C4%8D%C3%ADslo%29";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-numeric">
+      <title>Práce s čísly</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
+         <listitem>
+          <synopsis>AbsoluteValue (x)</synopsis>
+          <para>Alternativní názvy: <function>abs</function></para>
+          <para>Absolutní hodnota čísla <varname>x</varname>, případně modul v případě komplexního čísla 
<varname>x</varname>. U komplexního čísla to je vlastně vzdálenost <varname>x</varname> od počátku. Je to to 
stejné, jako <userinput>|x|</userinput>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Absolutn%C3%AD_hodnota";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/AbsoluteValue";>Planetmath (absolutní hodnota; text je v angličtině)</ulink>, 
<ulink url="http://planetmath.org/ModulusOfComplexNumber";>Planetmath (absolutní hodnota komplexního čísla; 
text je v angličtině)</ulink>, <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld 
(absolutní hodnota; text je v angličtině)</ulink> a <ulink 
url="http://mathworld.wolfram.com/ComplexModulus.html";>Mathworld (absolutní hodnota komplexního čísla; text 
je v angličtině)</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Chop"/>Chop</term>
+         <listitem>
+          <synopsis>Chop (x)</synopsis>
+          <para>Nahrazovat velmi malá čísla nulou.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
+         <listitem>
+          <synopsis>ComplexConjugate (z)</synopsis>
+          <para>Alternativní názvy: <function>conj</function> <function>Conj</function></para>
+          <para>Vypočítá komplexně sdružené číslo ke komplexnímu číslu <varname>z</varname>. Pokud je 
<varname>z</varname> vektor nebo matice, vypočítají se komplexně sdružená čísla pro všechny prvky.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Komplexn%C4%9B_sdru%C5%BEen%C3%A9_%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Denominator"/>Denominator</term>
+         <listitem>
+          <synopsis>Denominator (x)</synopsis>
+          <para>Získat jmenovatel racionálního čísla.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Jmenovatel";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
+         <listitem>
+          <synopsis>FractionalPart (x)</synopsis>
+          <para>Vrátit část čísla za desetinnou čárkou.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Fractional_part";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Im"/>Im</term>
+         <listitem>
+          <synopsis>Im (z)</synopsis>
+          <para>Alternativní názvy: <function>ImaginaryPart</function></para>
+          <para>Vrátit imaginární část komplexního čísla. Například <userinput>Re(3+4i)</userinput> vyplodí 
4.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Imagin%C3%A1rn%C3%AD_%C4%8D%C3%A1st#Z.C3.A1pis_a_souvisej.C3.ADc.C3.AD_pojmy";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
+         <listitem>
+          <synopsis>IntegerQuotient (m,n)</synopsis>
+          <para>Dělit beze zbytku.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
+         <listitem>
+          <synopsis>IsComplex (num)</synopsis>
+         <para>Zkontrolovat, jestli je argument komplexní (ne reálné) číslo. Tím se míní opravdu číslo, 
které není reálné. Takže <userinput>IsComplex(3)</userinput> vrátí <constant>false</constant>, zatímco 
<userinput>IsComplex(3-1i)</userinput> vrátí <constant>true</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
+         <listitem>
+          <synopsis>IsComplexRational (num)</synopsis>
+         <para>Zkontrolovat, zda je argument komplexní racionální číslo. Tzn., že jak reální, tak imaginární 
část jsou zadány jako racionální čísla. Racionálním se samozřejmě myslí, že „není uloženo jako desetinné 
číslo s plovoucí čárkou“.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
+         <listitem>
+          <synopsis>IsFloat (num)</synopsis>
+          <para>Zkontrolovat, zda je argument reálné desetinné číslo (ne komplexní).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
+         <listitem>
+          <synopsis>IsGaussInteger (num)</synopsis>
+          <para>Alternativní názvy: <function>IsComplexInteger</function></para>
+         <para>Zkontrolovat, jestli je argument celé komplexní číslo. Celé komplexní číslo je číslo ve tvaru 
<userinput>n+1i*m</userinput>, kde <varname>n</varname> a <varname>m</varname> jsou celá čísla.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
+         <listitem>
+          <synopsis>IsInteger (num)</synopsis>
+          <para>Zkontrolovat, zda je argument celé číslo (ne komplexní).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
+         <listitem>
+          <synopsis>IsNonNegativeInteger (num)</synopsis>
+          <para>Zkontrolovat, zda je argument nezáporné reálné celé číslo. Tj. buď kladné celé číslo nebo 
nula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
+         <listitem>
+          <synopsis>IsPositiveInteger (num)</synopsis>
+          <para>Alternativní názvy: <function>IsNaturalNumber</function></para>
+          <para>Zkontrolovat, zda je argument kladné reálné celé číslo. Upozorňujeme, že se řídíme konvencí, 
že 0 není přirozené číslo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsRational"/>IsRational</term>
+         <listitem>
+          <synopsis>IsRational (num)</synopsis>
+          <para>Zkontrolovat, zda je argument racionální (ne komplexní) číslo. Racionální samozřejmě prostě 
znamená „není uloženo jako desetinné číslo s plovoucí čárkou“.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsReal"/>IsReal</term>
+         <listitem>
+          <synopsis>IsReal (num)</synopsis>
+          <para>Zkontrolovat, zda je argument reálné číslo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Numerator"/>Numerator</term>
+         <listitem>
+          <synopsis>Numerator (x)</synopsis>
+          <para>Získat čitatel racionálního čísla.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/%C4%8Citatel";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Re"/>Re</term>
+         <listitem>
+          <synopsis>Re (z)</synopsis>
+          <para>Alternativní názvy: <function>RealPart</function></para>
+         <para>Vrátit reálnou část komplexního čísla. Například <userinput>Re(3+4i)</userinput> vyplodí 
3.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Re%C3%A1ln%C3%A1_%C4%8D%C3%A1st#Z.C3.A1pis_a_souvisej.C3.ADc.C3.AD_pojmy";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Sign"/>Sign</term>
+         <listitem>
+          <synopsis>Sign (x)</synopsis>
+          <para>Alternativní názvy: <function>sign</function></para>
+          <para>Vrátit znaménko čísla. Konkrétně vrací <literal>-1</literal> u záporných čísel, 
<literal>0</literal> pro nulu a  <literal>1</literal> u kladných čísel. Pokud je <varname>x</varname> 
komplexní hodnota, pak <function>Sign</function> vrací směr nebo 0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ceil"/>ceil</term>
+         <listitem>
+          <synopsis>ceil (x)</synopsis>
+          <para>Alternativní názvy: <function>Ceiling</function></para>
+         <para>Získat nejnižší celé číslo, které je větší nebo rovno <varname>n</varname>. Například: 
<screen><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
+= 2
+<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
+= -1
+</screen></para>
+          <para>Měli byste být obezřetní a uvědomit si, že desetinná čísla jsou uchovávána v binární podobě, 
takže nemusí mít naprosto přesně tu hodnotu, kterou očekáváte. Například <userinput>ceil(420/4.2)</userinput> 
vrací 101 a ne 100, jak byste asi očekávali. To je tím, že 4,2 je ve skutečnosti uloženo jako nepatrně méně 
než 4,2. Pokud chcete přesné výsledky, použijte racionální vyjádření <userinput>42/10</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exp"/>exp</term>
+         <listitem>
+          <synopsis>exp (x)</synopsis>
+          <para>Exponenciální funkce. Jedná se o funkci <userinput>e^x</userinput>, kde <varname>e</varname> 
je <link linkend="gel-function-e">základ přirozeného logaritmu</link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/ExponentialFunction.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Exponenci%C3%A1ln%C3%AD_funkce#Exponenci.C3.A1la_o_z.C3.A1kladu_e";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-float"/>float</term>
+         <listitem>
+          <synopsis>float (x)</synopsis>
+          <para>Udělá z čísla desetinné číslo. Tzn., že vrací hodnotu čísla <varname>x</varname> v podobě 
čísla s plovoucí desetinnou čárkou.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-floor"/>floor</term>
+         <listitem>
+          <synopsis>floor (x)</synopsis>
+          <para>Alternativní názvy: <function>Floor</function></para>
+          <para>Vrátit nejvyšší celé číslo, které je menší nebo rovno <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ln"/>ln</term>
+         <listitem>
+          <synopsis>ln (x)</synopsis>
+          <para>Přirozený logaritmus, logaritmus o základu <varname>e</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/NaturalLogarithm.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Logaritmus#P.C5.99irozen.C3.BD_logaritmus";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log"/>log</term>
+         <listitem>
+          <synopsis>log (x)</synopsis>
+          <synopsis>log (x,b)</synopsis>
+         <para>Logaritmus <varname>x</varname> o základu <varname>b</varname> (v režimu modulární aritmetiky 
nazýván <link linkend="gel-function-DiscreteLog"><function>DiscreteLog</function></link>), pokud není základ 
uveden, použije se <link linkend="gel-function-e"><varname>e</varname></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log10"/>log10</term>
+         <listitem>
+          <synopsis>log10 (x)</synopsis>
+          <para>Logaritmus čísla <varname>x</varname> o základu 10.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log2"/>log2</term>
+         <listitem>
+          <synopsis>log2 (x)</synopsis>
+          <para>Alternativní názvy: <function>lg</function></para>
+          <para>Logaritmus čísla <varname>x</varname> o základu 2.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-max"/>max</term>
+         <listitem>
+          <synopsis>max (a,argumenty...)</synopsis>
+          <para>Alternativní názvy: <function>Max</function> <function>Maximum</function></para>
+          <para>Vrací maximum z argumentů nebo matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-min"/>min</term>
+         <listitem>
+          <synopsis>min (a,argumenty...)</synopsis>
+          <para>Alternativní názvy: <function>Min</function> <function>Minimum</function></para>
+          <para>Vrátit minimum z argumentů nebo matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rand"/>rand</term>
+         <listitem>
+          <synopsis>rand (velikost...)</synopsis>
+          <para>Generovat náhodné desetinné číslo z intervalu <literal>[0,1)</literal>. Pokud je zadána 
velikost, pak se vygeneruje matice (zadána dvě čísla) nebo vektor (zadáno jedno číslo) této velikosti.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-randint"/>randint</term>
+         <listitem>
+          <synopsis>randint (max,velikost...)</synopsis>
+          <para>Generovat náhodné číslo z intervalu <literal>[0,max)</literal>. Pokud je zadána velikost, 
pak se vygeneruje matice (zadána dvě čísla) nebo vektor (zadáno jedno číslo) této velikosti. Například 
<screen><prompt>genius&gt;</prompt> <userinput>randint(4)</userinput>
+= 3
+<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
+=
+[0      1]
+<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
+=
+[2      2       1
+ 0      0       3]
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-round"/>round</term>
+         <listitem>
+          <synopsis>round (x)</synopsis>
+          <para>Alternativní názvy: <function>Round</function></para>
+          <para>Zaokrouhlit číslo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sqrt"/>sqrt</term>
+         <listitem>
+          <synopsis>sqrt (x)</synopsis>
+          <para>Alternativní názvy: <function>SquareRoot</function></para>
+          <para>Druhá odmocnina. Při práci v režimu modulární aritmetiky s celými čísly vrací buď 
<constant>null</constant> nebo vektor druhých odmocnin. Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>sqrt(2)</userinput>
+= 1.41421356237
+<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
+= 1i
+<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
+=
+[2      5]
+<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
+= 4
+<prompt>genius&gt;</prompt> <userinput>5*5 mod 7</userinput>
+= 4
+</screen></para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Druh%C3%A1_odmocnina";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/SquareRoot";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-trunc"/>trunc</term>
+         <listitem>
+          <synopsis>trunc (x)</synopsis>
+          <para>Alternativní názvy: <function>Truncate</function><function>IntegerPart</function></para>
+          <para>Oříznout číslo na celé číslo (vrátí celou část).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-trigonometry">
+      <title>Trigonometrie</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-acos"/>acos</term>
+         <listitem>
+          <synopsis>acos (x)</synopsis>
+          <para>Alternativní názvy: <function>arccos</function></para>
+          <para>Funkce arkus kosinus (inverzní kosinus).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acosh"/>acosh</term>
+         <listitem>
+          <synopsis>acosh (x)</synopsis>
+          <para>Alternativní názvy: <function>arccosh</function></para>
+          <para>Funkce arkus hyperbolický kosinus (inverzní cosh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acot"/>acot</term>
+         <listitem>
+          <synopsis>acot (x)</synopsis>
+          <para>Alternativní názvy: <function>arccot</function></para>
+          <para>Funkce arkus kotangens (inverzní kotangens).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acoth"/>acoth</term>
+         <listitem>
+          <synopsis>acoth (x)</synopsis>
+          <para>Alternativní názvy: <function>arccoth</function></para>
+          <para>Funkce arkus hyperbolický kotangens (inverzní coth).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsc"/>acsc</term>
+         <listitem>
+          <synopsis>acsc (x)</synopsis>
+          <para>Alternativní názvy: <function>arccsc</function></para>
+          <para>Funkce inverzní kosekans.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsch"/>acsch</term>
+         <listitem>
+          <synopsis>acsch (x)</synopsis>
+          <para>Alternativní názvy: <function>arccsch</function></para>
+          <para>Funkce inverzní hyperbolický kosekans.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asec"/>asec</term>
+         <listitem>
+          <synopsis>asec (x)</synopsis>
+          <para>Alternativní názvy: <function>arcsec</function></para>
+          <para>Funkce inverzní sekans.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asech"/>asech</term>
+         <listitem>
+          <synopsis>asech (x)</synopsis>
+          <para>Alternativní názvy: <function>arcsech</function></para>
+          <para>Funkce inverzní hyperbolický sekans.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asin"/>asin</term>
+         <listitem>
+          <synopsis>asin (x)</synopsis>
+          <para>Alternativní názvy: <function>arcsin</function></para>
+          <para>Funkce arkus sinus (inverzní sinus).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asinh"/>asinh</term>
+         <listitem>
+          <synopsis>asinh (x)</synopsis>
+          <para>Alternativní názvy: <function>arcsinh</function></para>
+          <para>Funkce arkus hyperbolický sinus (inverzní sinh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan"/>atan</term>
+         <listitem>
+          <synopsis>atan (x)</synopsis>
+          <para>Alternativní názvy: <function>arctan</function></para>
+          <para>Vypočítat funkce arkus tangens (inverzní tangens).</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Arkus_tangens";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atanh"/>atanh</term>
+         <listitem>
+          <synopsis>atanh (x)</synopsis>
+          <para>Alternativní názvy: <function>arctanh</function></para>
+          <para>Funkce arkus hyperbolický tangens (inverzní tanh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan2"/>atan2</term>
+         <listitem>
+          <synopsis>atan2 (y, x)</synopsis>
+          <para>Alternativní názvy: <function>arctan2</function></para>
+          <para>Vypočítat funkci arctan2. Jestliže je <userinput>x&gt;0</userinput>, pak vrací 
<userinput>atan(y/x)</userinput>. Jestliže je <userinput>x&lt;0</userinput>, vrací <userinput>sign(y) * (pi - 
atan(|y/x|)</userinput>. A při <userinput>x=0</userinput> vrací <userinput>sign(y) *
+         pi/2</userinput>. Volání <userinput>atan2(0,0)</userinput> vrací 0 namísto selhání.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Arctg2";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cos"/>cos</term>
+         <listitem>
+          <synopsis>cos (x)</synopsis>
+          <para>Vypočítat funkci kosinus.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cosh"/>cosh</term>
+         <listitem>
+          <synopsis>cosh (x)</synopsis>
+          <para>Vypočítat funkci hyperbolický kosinus.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cot"/>cot</term>
+         <listitem>
+          <synopsis>cot (x)</synopsis>
+          <para>Funkce kotangens.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-coth"/>coth</term>
+         <listitem>
+          <synopsis>coth (x)</synopsis>
+          <para>Funkce hyperbolický kotangens.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csc"/>csc</term>
+         <listitem>
+          <synopsis>csc (x)</synopsis>
+          <para>Funkce kosekans.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csch"/>csch</term>
+         <listitem>
+          <synopsis>csch (x)</synopsis>
+          <para>Funkce hyperbolický kosekans.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sec"/>sec</term>
+         <listitem>
+          <synopsis>sec (x)</synopsis>
+          <para>Funkce sekans.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sech"/>sech</term>
+         <listitem>
+          <synopsis>sech (x)</synopsis>
+          <para>Funkce hyperbolický sekans.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sin"/>sin</term>
+         <listitem>
+          <synopsis>sin (x)</synopsis>
+          <para>Vypočítat funkci sinus.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinh"/>sinh</term>
+         <listitem>
+          <synopsis>sinh (x)</synopsis>
+          <para>Vypočítat funkci hyperbolický sinus.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tan"/>tan</term>
+         <listitem>
+          <synopsis>tan (x)</synopsis>
+          <para>Vypočítat funkci tangens.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tanh"/>tanh</term>
+         <listitem>
+          <synopsis>tanh (x)</synopsis>
+          <para>Funkce hyperbolický tangens.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-number-theory">
+      <title>Teorie čísel</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
+         <listitem>
+          <synopsis>AreRelativelyPrime (a,b)</synopsis>
+          <para>Jsou reálná celá čísla <varname>a</varname> a <varname>b</varname> nesoudělná? Vrací 
<constant>true</constant> nebo <constant>false</constant>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/RelativelyPrime";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/RelativelyPrime.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Nesoud%C4%9Bln%C3%A1_%C4%8D%C3%ADsla";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
+         <listitem>
+          <synopsis>BernoulliNumber (n)</synopsis>
+          <para>Vrátit <varname>n</varname>-té Bernoulliho číslo.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Bernoulli_number";>Wikipedia</ulink> (text je v angličtině) a <ulink 
url="http://mathworld.wolfram.com/BernoulliNumber.html";>Mathworld</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
+         <listitem>
+          <synopsis>ChineseRemainder (a,m)</synopsis>
+          <para>Alternativní názvy: <function>CRT</function></para>
+         <para>Najít pomocí čínské věty o zbytcích <varname>x</varname>, které řeší systém zadaný vektorem 
<varname>a</varname>, a zbytky prvků <varname>m</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/ChineseRemainderTheorem";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html";>Mathworld</ulink> (text je v angličtině) a 
<ulink 
url="https://cs.wikipedia.org/wiki/%C4%8C%C3%ADnsk%C3%A1_v%C4%9Bta_o_zbytc%C3%ADch";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
+         <listitem>
+          <synopsis>CombineFactorizations (a,b)</synopsis>
+         <para>Jsou-li dány dva rozklady, vrátit rozklad (faktorizaci) součinu.</para>
+         <para>Viz <link linkend="gel-function-Factorize">Factorize</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
+         <listitem>
+          <synopsis>ConvertFromBase (v,b)</synopsis>
+          <para>Převést vektor hodnot udávajících mocniny <varname>b</varname> na číslo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
+         <listitem>
+          <synopsis>ConvertToBase (n,b)</synopsis>
+          <para>Převést číslo na vektor mocnin prvků o základu <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
+         <listitem>
+          <synopsis>DiscreteLog (n,b,q)</synopsis>
+          <para>Najít diskrétní logaritmus <varname>n</varname> o základu <varname>b</varname> v 
F<subscript>q</subscript>, konečné grupě řádu <varname>q</varname>, kde <varname>q</varname> je prvočíslo, 
pomocí Silverova-Pohligova-Hellmanova algoritmu.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/DiscreteLogarithm";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/DiscreteLogarithm.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Diskr%C3%A9tn%C3%AD_logaritmus";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Divides"/>Divides</term>
+         <listitem>
+          <synopsis>Divides (m,n)</synopsis>
+          <para>Zkontrolovat dělitelnost (zda <varname>m</varname> dělí <varname>n</varname>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
+         <listitem>
+          <synopsis>EulerPhi (n)</synopsis>
+          <para>Spočítat Eulerovu funkci fí pro <varname>n</varname>, to je počet celých čísel mezi 1 a 
<varname>n</varname>, relativně prvočíselných vůči <varname>n</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/EulerPhifunction";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/TotientFunction.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Eulerova_funkce";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
+         <listitem>
+          <synopsis>ExactDivision (n,d)</synopsis>
+          <para>Vrátit <userinput>n/d</userinput>, ale jen pokud <varname>d</varname> dělí 
<varname>n</varname>. Pokud <varname>d</varname> nedělí <varname>n</varname>, vrací funkce nesmysly. Pro 
velmi velká čísla je to rychlejší než operace <userinput>n/d</userinput>, ale je to samozřejmě použitelné jen 
v případě, kdy přesně víte, co dělíte.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorize"/>Factorize</term>
+         <listitem>
+          <synopsis>Factorize (n)</synopsis>
+          <para>Vrátit rozklad (faktorizaci) čísla jako matici. První řádek jsou prvočísla v rozkladu 
(včetně 1) a druhý řádek jsou mocnitelé. Takže například <screen><prompt>genius&gt;</prompt> 
<userinput>Factorize(11*11*13)</userinput>
+=
+[1      11      13
+ 1      2       1]</screen></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Faktorizace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factors"/>Factors</term>
+         <listitem>
+          <synopsis>Factors (n)</synopsis>
+          <para>Vrátit všechny činitele čísla <varname>n</varname> jako vektor. Součástí jsou i 
neprvočíselní činitelé, což zahrnuje také 1 a přímo ono číslo. Takže například pro výpis všech dokonalých 
čísel (to jsou taková, která jsou součtem všech svých činitelů) až do 1000 můžete udělat toto (je to však 
značně neefektivní) <programlisting>for n=1 to 1000 do (
+    if MatrixSum (Factors(n)) == 2*n then
+        print(n)
+)
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
+         <listitem>
+          <synopsis>FermatFactorization (n,pokusy)</synopsis>
+          <para>Zkusit Fermatův rozklad <varname>n</varname> na <userinput>(t-s)*(t+s)</userinput>. Pokud to 
je možné, vrací <varname>t</varname> a <varname>s</varname> jako vektor, jinak vrací 
<constant>null</constant>. Argument <varname>pokusy</varname> určuje počet pokusu, než se výpočet vzdá.</para>
+          <para>Jedná se o docela dobrý rozklad za předpokladu, že je vaše číslo součinem dvou přibližně 
stejně velkých čísel.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Fermat_factorization";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindPrimitiveElementMod (q)</synopsis>
+          <para>Najít první primitivní prvek v F<subscript>q</subscript>, konečné grupě řádu 
<varname>q</varname>. Je samozřejmé, že <varname>q</varname> musí být prvočíslo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
+          <para>Najít náhodný primitivní prvek v F<subscript>q</subscript>, konečné grupě řádu 
<varname>q</varname>. Je samozřejmé, že <varname>q</varname> musí být prvočíslo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
+         <listitem>
+          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
+          <para>Spočítat diskrétní logaritmus <varname>n</varname> o základu <varname>b</varname> v 
F<subscript>q</subscript>, konečné grupě řádu <varname>q</varname> (<varname>q</varname> prvočíslo) pomocí 
faktorizační báze <varname>S</varname>. <varname>S</varname> by měl být sloupec prvočísel, pokud možno s 
druhým sloupcem předpočítaným pomocí <link 
linkend="gel-function-IndexCalculusPrecalculation"><function>IndexCalculusPrecalculation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
+         <listitem>
+          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
+         <para>Provést přípravný krok výpočtu funkce <link 
linkend="gel-function-IndexCalculus"><function>IndexCalculus</function></link> pro logaritmy o základu 
<varname>b</varname> v F<subscript>q</subscript>, konečné grupě řádu <varname>q</varname> 
(<varname>q</varname> prvočíslo), pro faktorizační bázi <varname>S</varname> (kde <varname>S</varname> je 
sloupcový vektor prvočísel). Logaritmy budou předpočítány a vráceny v druhém sloupci.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsEven"/>IsEven</term>
+         <listitem>
+          <synopsis>IsEven (n)</synopsis>
+          <para>Otestovat, zda je celé číslo sudé.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
+         <listitem>
+          <synopsis>IsMersennePrimeExponent (p)</synopsis>
+          <para>Zjistit, jestli je kladné celé číslo <varname>p</varname> Mersennovo prvočíslo. Tj. zda 
2<superscript>p</superscript>-1 je prvočíslo. Provádí se to hledáním v tabulce známých hodnot, která je 
relativně krátká. Viz také <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> 
a <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> (text je v angličtině), <ulink 
url="http://www.mersenne.org/";>GIMPS</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Mersennovo_prvo%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
+         <listitem>
+          <synopsis>IsNthPower (m,n)</synopsis>
+          <para>Zjistit, jestli je racionální číslo <varname>m</varname> perfektní <varname>n</varname>-tou 
mocninou . Viz také <link linkend="gel-function-IsPerfectPower">IsPerfectPower</link> a <link 
linkend="gel-function-IsPerfectSquare">IsPerfectSquare</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
+         <listitem>
+          <synopsis>IsOdd (n)</synopsis>
+          <para>Otestovat, zda je celé číslo liché.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
+         <listitem>
+          <synopsis>IsPerfectPower (n)</synopsis>
+          <para>Zkontrolovat, zda je celé číslo perfekntí mocninou a<superscript>b</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
+         <listitem>
+          <synopsis>IsPerfectSquare (n)</synopsis>
+          <para>Zkontrolovat, zda je celé číslo perfektní druhou mocninou celého čísla. Číslo musí být celé 
číslo. Záporná celá čísla samozřejmě perfektními druhými mocninami celých čísel být nemohou.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
+         <listitem>
+          <synopsis>IsPrime (n)</synopsis>
+          <para>Testuje prvočíselnost celých čísel, pro čísla menší než 2.5e10 je odpověď deterministická 
(tedy pokud je Riemannova hypotéza platná). Pro větší čísla závisí falešné kladné odpovědi na <link 
linkend="gel-function-IsPrimeMillerRabinReps"><function>IsPrimeMillerRabinReps</function></link>. Což 
znamená, že pravděpodobnost nesprávné kladné odpovědi je ¼ umocněná na 
<function>IsPrimeMillerRabinReps</function>. Výchozí hodnota 22 dává pravděpodobnost zhruba 5.7e-14.</para>
+          <para>Když je vráceno <constant>false</constant>, můžete si být jisti, že se jedná o složené 
číslo. Jestliže si potřebujete být absolutně jistí, že máte prvočíslo, můžete použít funkci <link 
linkend="gel-function-MillerRabinTestSure"><function>MillerRabinTestSure</function></link>, ale může to trvat 
trochu déle.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
+         <listitem>
+          <synopsis>IsPrimitiveMod (g,q)</synopsis>
+          <para>Zkontrolovat, zda je <varname>g</varname> primitivní v F<subscript>q</subscript>, konečné 
grupě řádu <varname>q</varname>, kde <varname>q</varname> je prvočíslo. Pokud <varname>q</varname> není 
prvočíslo, jsou výsledky nesmyslné.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
+         <listitem>
+          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
+          <para>Zkontrolovat, zda je <varname>g</varname> primitivní v F<subscript>q</subscript>, konečné 
grupě řádu <varname>q</varname>, kde <varname>q</varname> je prvočíslo a <varname>f</varname> je vektor 
prvočíselných činitelů <varname>q</varname>-1. Pokud <varname>q</varname> není prvočíslo, jsou výsledky 
nesmyslné.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
+         <listitem>
+          <synopsis>IsPseudoprime (n,b)</synopsis>
+          <para>Zda je <varname>n</varname> pseudoprvočíslo o základu <varname>b</varname>, ale ne 
prvočíslo, tj. jestli <userinput>b^(n-1) == 1 mod n</userinput>. Volá se funkce <link 
linkend="gel-function-PseudoprimeTest"><function>PseudoprimeTest</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
+         <listitem>
+          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
+          <para>Zjistit, zda je <varname>n</varname> silné pseudoprvočíslo o základu <varname>b</varname>, 
ale ne prvočíslo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
+         <listitem>
+          <synopsis>Jacobi (a,b)</synopsis>
+          <para>Alternativní názvy: <function>JacobiSymbol</function></para>
+          <para>Spočítat Jacobiho symbol (a/b) (b by mělo být liché).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
+         <listitem>
+          <synopsis>JacobiKronecker (a,b)</synopsis>
+          <para>Alternativní názvy: <function>JacobiKroneckerSymbol</function></para>
+          <para>Spočítat Jacobiho symbol (a/b) s Kroneckerovým rozšířením (a/2)=(2/a), když 
<varname>a</varname> je liché, nebo (a/2)=0, když <varname>a</varname> je sudé.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
+         <listitem>
+          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
+          <para>Vrátit zbytek <varname>a</varname> mod <varname>n</varname> s nejmenší absolutní hodnotou (v 
intervalu -n/2 až n/2).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Legendre"/>Legendre</term>
+         <listitem>
+          <synopsis>Legendre (a,p)</synopsis>
+          <para>Alternativní názvy: <function>LegendreSymbol</function></para>
+          <para>Spočítat Legendrův symbol (a/p).</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/LegendreSymbol";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/LegendreSymbol.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Legendre%C5%AFv_symbol";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
+         <listitem>
+          <synopsis>LucasLehmer (p)</synopsis>
+          <para>Zjistit pomocí Lucasova-Lehmerova testu, zda je 2<superscript>p</superscript>-1 Mersennovo 
prvočíslo. Viz také <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> a <link 
linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test";>Wikipedia</ulink> (text je v 
angličtině), <ulink url="http://planetmath.org/LucasLhemer";>Planetmath</ulink> (text je v angličtině) a 
<ulink url="http://mathworld.wolfram.com/Lucas-LehmerTest.html";>Mathworld</ulink> (text je v 
agličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
+         <listitem>
+          <synopsis>LucasNumber (n)</synopsis>
+          <para>Vrátit <varname>n</varname>-té Lucasovo číslo.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Lucas_number";>Wikipedia</ulink> (text je v angličtině), <ulink 
url="http://planetmath.org/LucasNumbers";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="http://mathworld.wolfram.com/LucasNumber.html";>Mathworld</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
+         <listitem>
+          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
+          <para>Vrátit všechny maximální mocniny prvočísel v rozkladu čísla.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
+         <listitem>
+          <synopsis>MersennePrimeExponents</synopsis>
+          <para>Vektor se známými exponenty Mersennových prvočísel, což je seznam kladných celých čísel 
<varname>p</varname> takových, že 2<superscript>p</superscript>-1 je prvočíslo. Viz také <link 
linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link> a <link 
linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> (text je v angličtině), <ulink 
url="http://www.mersenne.org/";>GIMPS</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Mersennovo_prvo%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
+         <listitem>
+          <synopsis>MillerRabinTest (n,opak)</synopsis>
+          <para>Použít Millerův-Rabinův test prvočíselnosti na <varname>n</varname>, <varname>opak</varname> 
udává kolikrát. Pravděpodobnost falešné kladné odpovědi je <userinput>(1/4)^opak</userinput>. Pravděpodobně 
je obvykle lepší použít funkci <link linkend="gel-function-IsPrime"><function>IsPrime</function></link>, 
protože je rychlejší a lepší u menších celých čísel.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> (text je v 
angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Miller%C5%AFv-Rabin%C5%AFv_test_prvo%C4%8D%C3%ADselnosti";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
+         <listitem>
+          <synopsis>MillerRabinTestSure (n)</synopsis>
+          <para>Použít Millerův-Rabinův test prvočíselnosti na <varname>n</varname> s tolika bázemi, že za 
předpokladu zobecněné Riemannovy hypotézy je výsledek deterministický.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> (text je v 
angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Miller%C5%AFv-Rabin%C5%AFv_test_prvo%C4%8D%C3%ADselnosti";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
+         <listitem>
+          <synopsis>ModInvert (n,m)</synopsis>
+          <para>Vrátit převrácenou hodnotu n mod m.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://mathworld.wolfram.com/ModularInverse.html";>Mathworld</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
+         <listitem>
+          <synopsis>MoebiusMu (n)</synopsis>
+          <para>Vrátit Möbiovu funkci μ vyhodnocenu na <varname>n</varname>. Což znamená, že vrátí 0 v 
případě, že <varname>n</varname> není součin různých prvočísel, a <userinput>(-1)^k</userinput> v případě, že 
je součin <varname>k</varname> různých prvočísel.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/MoebiusFunction";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/MoebiusFunction.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/M%C3%B6biova_funkce";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
+         <listitem>
+          <synopsis>NextPrime (n)</synopsis>
+          <para>Vrátit nejmenší prvočíslo větší než <varname>n</varname>. Záporná prvočísla jsou považována 
za prvočísla, takže předchozí prvočíslo můžete získat jako <userinput>-NextPrime(-n)</userinput>.</para>
+          <para>Tato funkce používá funkci <function>mpz_nextprime</function> z knihovny GMP, která zase 
používá pravděpodobnostní Millerův-Rabinův test (viz také <link 
linkend="gel-function-MillerRabinTest"><function>MillerRabinTest</function></link>). Pravděpodobnost falešné 
kladné odpovědi není nastavitelná, ale je dostatečně malá pro praktické účely.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
+         <listitem>
+          <synopsis>PadicValuation (n,p)</synopsis>
+          <para>Vrátit p-adické ohodnocení (počet koncových nul v základu <varname>p</varname>).</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/P-adic_order";>Wikipedia</ulink> (text je v angličtině) a <ulink 
url="http://planetmath.org/PAdicValuation";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
+         <listitem>
+          <synopsis>PowerMod (a,b,m)</synopsis>
+          <para>Spočítat <userinput>a^b mod m</userinput>. <varname>b</varname>-tá mocnina čísla 
<varname>a</varname> modulo <varname>m</varname>. Tuto funkci není nutné používat, protože se automaticky 
použije v režimu modulární aritmetiky. Z tohoto důvodu je <userinput>a^b mod m</userinput> stejně 
rychlé.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Prime"/>Prime</term>
+         <listitem>
+          <synopsis>Prime (n)</synopsis>
+          <para>Alternativní názvy: <function>prime</function></para>
+          <para>Vrátit <varname>n</varname>-té prvočíslo (až do limitu).</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
+         <listitem>
+          <synopsis>PrimeFactors (n)</synopsis>
+          <para>Vrátit v podobě vektoru všechny prvočinitele čísla.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/PrimeFactor.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://en.wikipedia.org/wiki/Prime_factor";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
+         <listitem>
+          <synopsis>PseudoprimeTest (n,b)</synopsis>
+         <para>Test pseudoprvočíselnosti, vrací <constant>true</constant> když a jen když <userinput>b^(n-1) 
== 1  mod n</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/Pseudoprime";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/Pseudoprime.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Pseudoprvo%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
+         <listitem>
+          <synopsis>RemoveFactor (n,m)</synopsis>
+          <para>Odstranit všechny instance činitele <varname>m</varname> z čísla <varname>n</varname>. 
Prakticky to znamená, že je poděleno nejvyšší mocninou čísla <varname>m</varname>, která je dělitelem 
<varname>n</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/Divisibility";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/Factor.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/D%C4%9Blitelnost";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
+         <listitem>
+          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
+          <para>Najít diskrétní logaritmus <varname>n</varname> o základu <varname>b</varname> v 
F<subscript>q</subscript>, konečné grupě řádu <varname>q</varname>, kde <varname>q</varname> je prvočíslo, 
pomocí Silverova-Pohligova-Hellmanova algoritmu, dané <varname>f</varname> je rozkladem 
<varname>q</varname>-1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
+         <listitem>
+          <synopsis>SqrtModPrime (n,p)</synopsis>
+          <para>Najít druhou odmocninu z <varname>n</varname> modulo <varname>p</varname> (kde 
<varname>p</varname> je prvočíslo). Pokud není kvadratickým zbytkem, je vráceno null.</para>
+          <para>Více informací najdete v encyklopedicíh <ulink 
url="http://planetmath.org/QuadraticResidue";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="http://mathworld.wolfram.com/QuadraticResidue.html";>Mathworld</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
+         <listitem>
+          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
+          <para>Spustit silný test pseudoprvočíselnosti o základu <varname>b</varname> na 
<varname>n</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/StrongPseudoprime";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/StrongPseudoprime.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://en.wikipedia.org/wiki/Strong_pseudoprime";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-gcd"/>gcd</term>
+         <listitem>
+          <synopsis>gcd (a,argumenty...)</synopsis>
+          <para>Alternativní názvy: <function>GCD</function></para>
+          <para>Největší společný dělitel celých čísel. V seznamu argumentů můžete uvést libovolný počet 
celých čísel, nebo je můžete zadat jako vektor nebo matici celých čísel. Pokud zadáte více než jednu matici 
stejné velikosti, bude největší společný dělitel určen prvek po prvku.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/GreatestCommonDivisor";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/GreatestCommonDivisor.html";>Mathworld</ulink> (text je v angličtině) a 
<ulink 
url="https://cs.wikipedia.org/wiki/Nejv%C4%9Bt%C5%A1%C3%AD_spole%C4%8Dn%C3%BD_d%C4%9Blitel";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-lcm"/>lcm</term>
+         <listitem>
+          <synopsis>lcm (a,argumenty...)</synopsis>
+          <para>Alternativní názvy: <function>LCM</function></para>
+          <para>Nejmenší společný násobek celých čísel. V seznamu argumentů můžete uvést libovolný počet 
celých čísel, nebo je můžete zadat jako vektor nebo matici celých čísel. Pokud zadáte více než jednu matici 
stejné velikosti, bude nejmenší společný násobek určen prvek po prvku.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/LeastCommonMultiple";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/LeastCommonMultiple.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Nejmen%C5%A1%C3%AD_spole%C4%8Dn%C3%BD_n%C3%A1sobek";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-matrix">
+      <title>Práce s maticemi</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix (a,fce)</synopsis>
+          <para>Použít funkci na všechny prvky matice a vrátit matici výsledků.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix2 (a,b,fce)</synopsis>
+          <para>Použít funkci na všechny prvky 2 matic (nebo 1 hodnoty a 1 matice) a vrátit matici 
výsledků.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
+         <listitem>
+          <synopsis>ColumnsOf (M)</synopsis>
+          <para>Vrátit sloupce matice jako vodorovný vektor.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
+         <listitem>
+          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
+          <para>Odstranit sloupec (či slupce) a řádek (či řádky) z matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
+         <listitem>
+          <synopsis>CompoundMatrix (k,A)</synopsis>
+          <para>Spočítat <varname>k</varname>-tou složenou matici matice A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
+         <listitem>
+          <synopsis>CountZeroColumns (M)</synopsis>
+          <para>Spočítat počet nulových sloupců v matici. Například, jakmile zredukujete sloupce matice, 
můžete to využít k nalezení nulovosti. Viz <link linkend="gel-function-cref"><function>cref</function></link> 
a <link linkend="gel-function-Nullity"><function>Nullity</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
+         <listitem>
+          <synopsis>DeleteColumn (M,sloupec)</synopsis>
+          <para>Smazat sloupec matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
+         <listitem>
+          <synopsis>DeleteRow (M,radek)</synopsis>
+          <para>Smazat řádek matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
+         <listitem>
+          <synopsis>DiagonalOf (M)</synopsis>
+          <para>Získat diagonální prvky matice jako sloupcový vektor.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Diagon%C3%A1ln%C3%AD_matice";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
+         <listitem>
+          <synopsis>DotProduct (u,v)</synopsis>
+         <para>Získat skalární součin dvou vektorů. Vektory musí mít stejnou velikost. Nepřijímají se 
konjugované vektory, protože jde o bilineární formu, i když pracuje i s komplexními čísly. Jedná se o 
bilineární skalární součin, ne půldruhý lineární (seskvilineární). Pro ten slouží funkce <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link></para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/DotProduct";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Skal%C3%A1rn%C3%AD_sou%C4%8Din";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
+         <listitem>
+          <synopsis>ExpandMatrix (M)</synopsis>
+          <para>Rozšířit matici, stejně když zadáte matici bez uvozovky. Takto se rozbalí do bloku libovolná 
interní matice. Je to způsob, jak sestrojit matice z jiných menších a normálně je to prováděno na vstupu 
automaticky, s výjimkou kdy je matice zadána s uvozovkou.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
+         <listitem>
+          <synopsis>HermitianProduct (u,v)</synopsis>
+          <para>Alternativní názvy: <function>InnerProduct</function></para>
+          <para>Získat hermitovský součin dvou vektorů. Vektory musí mít stejnou velikost. Jedná se o 
polybilineární formu používající jednotkovou matici.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/HermitianInnerProduct.html";>Mathworld</ulink> (text je v angličtině) a 
<ulink url="https://en.wikipedia.org/wiki/Sesquilinear_form";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-I"/>I</term>
+         <listitem>
+          <synopsis>I (n)</synopsis>
+          <para>Alternativní názvy: <function>eye</function></para>
+         <para>Vrátit jednotkovou matici zadané velikosti, tj. <varname>n</varname> krát 
<varname>n</varname>. Pokud je <varname>n</varname> rovno 0, vrátí <constant>null</constant>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/IdentityMatrix";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Jednotkov%C3%A1_matice";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
+         <listitem>
+          <synopsis>IndexComplement (vektor,mvelikost)</synopsis>
+          <para>Vrátit doplňkový index vektoru indexů. Vše je s jednou bází. Například pro vektor 
<userinput>[2,3]</userinput> a velikost <userinput>5</userinput> dostaneme <userinput>[1,4,5]</userinput>. 
Pokud je <varname>mvelikost</varname> rovna 0, vrací vždy <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
+         <listitem>
+          <synopsis>IsDiagonal (M)</synopsis>
+          <para>Je matice diagonální?</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> (text je v angličtině) nebo <ulink 
url="https://cs.wikipedia.org/wiki/Diagon%C3%A1ln%C3%AD_matice";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
+         <listitem>
+          <synopsis>IsIdentity (x)</synopsis>
+          <para>Zkontrolovat, zda je matice jednotková. Pokud matice není čtvercová, tak automaticky vrátí 
<varname>false</varname>. Funguje i pro čísla, v kterémžto případě je to stejné jako 
<userinput>x==1</userinput>. Pokud je argument <varname>x</varname> roven <constant>null</constant> (což 
můžeme považovat za matici 0 krát 0), nezpůsobí to chybu a vrátí <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
+         <listitem>
+          <synopsis>IsLowerTriangular (M)</synopsis>
+          <para>Jde o dolní trojúhelníkovou matici? To je taková, která má všechny prvky nad diagonálou 
nulové.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
+         <listitem>
+          <synopsis>IsMatrixInteger (M)</synopsis>
+          <para>Zkontrolovat, zda je matice maticí celých (nekomplexních) čísel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
+         <listitem>
+          <synopsis>IsMatrixNonnegative (M)</synopsis>
+          <para>Zkontrolovat, zda je matice nezáporná, tj. zda je každý z prvků nezáporný. Nepleťte si 
pozitivní matice s pozitivně definitními maticemi.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
+         <listitem>
+          <synopsis>IsMatrixPositive (M)</synopsis>
+         <para>Zkontrolovat, zda je matice pozitivní, tj. zda je každý z prvků kladný (a tudíž reálný). 
Především není žádný prvek 0. Nepleťte si positivní matice s pozitivně definitními maticemi.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
+         <listitem>
+          <synopsis>IsMatrixRational (M)</synopsis>
+          <para>Zkontrolovat, zda je matice maticí z racionálních (nekomplexních) čísel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
+         <listitem>
+          <synopsis>IsMatrixReal (M)</synopsis>
+          <para>Zkontrolovat, zda je matice složená z reálných (na komplexních) čísel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
+         <listitem>
+          <synopsis>IsMatrixSquare (M)</synopsis>
+          <para>Zkontrolovat, zda je matice čtvercová, tj. šířka je stejná jako výška.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
+         <listitem>
+          <synopsis>IsUpperTriangular (M)</synopsis>
+          <para>Jde o horní trojúhelníkovou matici? To je taková, která má všechny prvky pod diagonálou 
nulové.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
+         <listitem>
+          <synopsis>IsValueOnly (M)</synopsis>
+          <para>Zkontrolovat, zda se matice skládá pouze z čísel. Mnoho interních funkcí provádí tuto 
kontrolu. Hodnoty mohou být libovolná čísla včetně komplexních.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsVector"/>IsVector</term>
+         <listitem>
+          <synopsis>IsVector (v)</synopsis>
+          <para>Je argument vodorovný nebo svislý vektor? Genius nerozlišuje mezi maticí a vektorem, vektor 
je prostě jen matice 1 krát <varname>n</varname> nebo <varname>n</varname> krát 1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsZero"/>IsZero</term>
+         <listitem>
+          <synopsis>IsZero (x)</synopsis>
+          <para>Zkontrolovat, zda se matice skládá jen z nul. Funguje to i pro čísla, kdy je to ekvivalentní 
výrazu <userinput>x==0</userinput>. Když je <varname>x</varname> rovno <constant>null</constant> (můžeme to 
považovat za matici 0 krát 0), nezpůsobí to žádnou chybu, ale vrátí se <constant>true</constant>, protože 
podmínka je prázdná.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
+         <listitem>
+          <synopsis>LowerTriangular (M)</synopsis>
+          <para>Vrátit kopii matice <varname>M</varname> se všemi prvky nad diagonálou nastavenými na 
nulu.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
+         <listitem>
+          <synopsis>MakeDiagonal (v,argument...)</synopsis>
+          <para>Alternativní názvy: <function>diag</function></para>
+         <para>Vytvořit diagonální matici z vektoru. Případně můžete hodnoty, které se mají umístit na 
diagonálu, zadat jako jednotlivé parametry. Takže <userinput>MakeDiagonal([1,2,3])</userinput> je to stejné 
jako <userinput>MakeDiagonal(1,2,3)</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> (text je v angličtině) nebo <ulink 
url="https://cs.wikipedia.org/wiki/Diagon%C3%A1ln%C3%AD_matice";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
+         <listitem>
+          <synopsis>MakeVector (A)</synopsis>
+          <para>Vytvořit sloupcový vektor z matice poskládáním sloupců na sebe. Pokud je předáno 
<constant>null</constant>, vrátí <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
+         <listitem>
+          <synopsis>MatrixProduct (A)</synopsis>
+          <para>Spočítat součin všech prvků matice nebo vektoru. To znamená, že se vynásobí všechny prvky a 
vrátí se číslo, které je násobkem všech těchto prvků.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
+         <listitem>
+          <synopsis>MatrixSum (A)</synopsis>
+          <para>Spočítat součet všech prvků matice nebo vektoru. To znamená, že se sečtou všechny prvky a 
vrátí se číslo, které je součtem všech těchto prvků.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
+         <listitem>
+          <synopsis>MatrixSumSquares (A)</synopsis>
+          <para>Spočítat součet druhých mocnin všech prvků matice nebo vektoru.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroColumns"/>NonzeroColumns</term>
+         <listitem>
+          <synopsis>NonzeroColumns (M)</synopsis>
+          <para>Vrátit řádkový vektor s indexy nenulových sloupců v matici <varname>M</varname>.</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroElements"/>NonzeroElements</term>
+         <listitem>
+          <synopsis>NonzeroElements (v)</synopsis>
+          <para>Vrátit řádkový vektor s indexy nenulových prvků ve vektoru <varname>v</varname>.</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
+         <listitem>
+          <synopsis>OuterProduct (u,v)</synopsis>
+          <para>Získat vnější součin dvou vektorů. Takže, když dejme tomu jsou <varname>u</varname> a 
<varname>v</varname> svislé vektory, pak vnější součin je <userinput>v * u.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
+         <listitem>
+          <synopsis>ReverseVector (v)</synopsis>
+         <para>Převrátit pořadí prvků ve vektoru. Pokud je předáno <constant>null</constant>, tak vrací 
<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSum"/>RowSum</term>
+         <listitem>
+          <synopsis>RowSum (m)</synopsis>
+          <para>Vypočítat součet každého řádku v matici a vrátit svislý vektor s výsledkem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
+         <listitem>
+          <synopsis>RowSumSquares (m)</synopsis>
+          <para>Vypočítat součet druhých mocnin každého řádku v matici a vrátit svislý vektor s 
výsledkem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
+         <listitem>
+          <synopsis>RowsOf (M)</synopsis>
+         <para>Získat řádky matice jako svislý vektor. Každý z prvků vektoru je vodorovný vektor, který 
odpovídá řádku matice <varname>M</varname>. Tato funkce je užitečná, když chcete ve smyčce procházet řádky 
matice. Například takto: <userinput>for r in RowsOf(M) do
+neco(r)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
+         <listitem>
+          <synopsis>SetMatrixSize (M,radku,sloupcu)</synopsis>
+          <para>Vytvořit novou matici zadané velikosti z jiné staré. To znamená, že nová matice bude vrácena 
jako kopie té staré. Prvky, které přebývají, jsou odříznuty a volné místo je vyplněno nulami. Pokud je 
argument <varname>radku</varname> nebo <varname>sloupcu</varname> roven nule, je vráceno 
<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
+         <listitem>
+          <synopsis>ShuffleVector (v)</synopsis>
+         <para>Zamíchat pořadí prvků ve vektoru. Pokud je předáno <constant>null</constant>, tak vrací 
<constant>null</constant>.</para>
+         <para>Verze 1.0.13 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SortVector"/>SortVector</term>
+         <listitem>
+          <synopsis>SortVector (v)</synopsis>
+          <para>Seřadit prvky vektoru ve vzestupném pořadí.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
+         <listitem>
+          <synopsis>StripZeroColumns (M)</synopsis>
+          <para>Odstranit všechny čistě nulové sloupce matice <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
+         <listitem>
+          <synopsis>StripZeroRows (M)</synopsis>
+          <para>Odstranit všechny čistě nulové řádky matice <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
+         <listitem>
+          <synopsis>Submatrix (m,r,s)</synopsis>
+          <para>Vrátit sloupec (či sloupce) a řádek (či řádky) z matice. Je to stejné jako 
<userinput>m@(r,s)</userinput>. Argumenty <varname>r</varname> a <varname>s</varname> by měly být vektory se 
seznamy řádků a sloupců (nebo samostatná čísla, pokud požadujete jen jeden řádek nebo sloupec).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
+         <listitem>
+          <synopsis>SwapRows (m,radek1,radek2)</synopsis>
+          <para>Prohodit dva řádky v matici.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
+         <listitem>
+          <synopsis>UpperTriangular (M)</synopsis>
+          <para>Vrátit kopii matice <varname>M</varname> se všemi prvky pod diagonálou nastavenými na 
nulu.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-columns"/>columns</term>
+         <listitem>
+          <synopsis>columns (M)</synopsis>
+          <para>Vrátit počet sloupců matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-elements"/>elements</term>
+         <listitem>
+          <synopsis>elements (M)</synopsis>
+          <para>Vrátit celkový počet prvků matice. Tj. počet sloupců krát počet řádků.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ones"/>ones</term>
+         <listitem>
+          <synopsis>ones (radku,sloupcu...)</synopsis>
+         <para>Vytvořit matici ze samých jedniček (nebo řádkový vektor, pokud je zadán jen jeden argument). 
Když je <varname>radku</varname> nebo <varname>sloupcu</varname> rovno nule, vrátí 
<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rows"/>rows</term>
+         <listitem>
+          <synopsis>rows (M)</synopsis>
+          <para>Vrátit počet řádků matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-zeros"/>zeros</term>
+         <listitem>
+          <synopsis>zeros (radku,sloupcu...)</synopsis>
+         <para>Vytvořit matici celou z nul (nebo řádkový vektor, pokud je zadán jen jeden argument). Pokud 
je argument <varname>radku</varname> nebo <varname>sloupcu</varname> roven nule, je vráceno 
<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-linear-algebra">
+      <title>Lineární algebra</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
+         <listitem>
+          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
+          <para>Získat pomocnou jednotkovou matici velikosti <varname>n</varname>. Jde o čtvercovou matici 
ze samých nul vyjma diagonály, na které jsou jedničky. Je to Jordanův blok s jedním vlastním číslem 
nula.</para>
+          <para>Více informací o Jordanově kanonické formě najdete v encyklopediích <ulink 
url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> (text je v angličtině) nebo <ulink 
url="http://cs.wikipedia.org/wiki/Jordanova_norm%C3%A1ln%C3%AD_forma";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
+         <listitem>
+          <synopsis>BilinearForm (v,A,w)</synopsis>
+          <para>Spočítat (v,w) vzhledem k bilineární formě dané maticí A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
+         <listitem>
+          <synopsis>BilinearFormFunction (A)</synopsis>
+          <para>Vrátit funkci takovou, že vyhodnocuje dva vektory vzhledem k bilineární formě dané maticí 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomial (M)</synopsis>
+          <para>Alternativní názvy: <function>CharPoly</function></para>
+         <para>Získat charakteristický polynom v podobě vektoru. Konkrétně vrací koeficienty polynomu 
počínaje konstantním členem. Jedná se o polynom definovaný pomocí <userinput>det(M-xI)</userinput>. Kořeny 
tohoto polynomu jsou vlastní čísla matice <varname>M</varname>. Viz <link 
linkend="gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> (text je v anličtině) a 
<ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
+         <para>Získat charakteristický polynom v podobě funkce. Jedná se o polynom definovaný pomocí 
<userinput>det(M-xI)</userinput>. Kořeny tohoto polynomu jsou vlastní čísla matice <varname>M</varname>. Viz 
<link linkend="gel-function-CharacteristicPolynomial">CharacteristicPolynomial</link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> (text je v anličtině) a 
<ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
+         <listitem>
+          <synopsis>ColumnSpace (M)</synopsis>
+         <para>Získat bázi matice pro prostor sloupců matice. Prakticky se vrátí matice, jejíž sloupce jsou 
bázemi pro prostor sloupců matice <varname>M</varname>. To je prostor rozložený podle sloupců matice 
<varname>M</varname>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
+         <listitem>
+          <synopsis>CommutationMatrix (m, n)</synopsis>
+         <para>Vrátit komutační matici <userinput>K(m,n)</userinput>, což je jedinečná matice velikosti 
<userinput>m*n</userinput> krát <userinput>m*n</userinput>, která splňuje <userinput>K(m,n) * MakeVector(A) = 
MakeVector(A.')</userinput> pro všechny matice <varname>A</varname> velikosti <varname>m</varname> krát 
<varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
+         <listitem>
+          <synopsis>CompanionMatrix (p)</synopsis>
+          <para>Doplňková matice polynomu (jako vektor).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
+         <listitem>
+          <synopsis>ConjugateTranspose (M)</synopsis>
+          <para>Konjugovaná transpozice matice (adjungovaná). Je to stejné jako operátor 
<userinput>'</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Conjugate_transpose";>Wikipedia</ulink> (text je v angličtině) a <ulink 
url="http://planetmath.org/ConjugateTranspose";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Convolution"/>Convolution</term>
+         <listitem>
+          <synopsis>Convolution (a,b)</synopsis>
+          <para>Alternativní názvy: <function>convol</function></para>
+          <para>Spočítat konvoluci dvou vodorovných vektorů.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
+         <listitem>
+          <synopsis>ConvolutionVector (a,b)</synopsis>
+          <para>Spočítat konvoluci dvou vodorovných vektorů. Výsledek vrátí jako vektor a ne sečtené 
dohromady.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
+         <listitem>
+          <synopsis>CrossProduct (v,w)</synopsis>
+         <para>Vektorový součin dvou vektorů v R<superscript>3</superscript> jako sloupcový vektor.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Vektorov%C3%BD_sou%C4%8Din";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
+         <listitem>
+          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
+          <para>Získat determinantové dělitele celočíselné matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
+         <listitem>
+          <synopsis>DirectSum (M,N...)</synopsis>
+          <para>Přímý součet matic.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/S%C4%8D%C3%ADt%C3%A1n%C3%AD_matic#Direktn.C3.AD_sou.C4.8Det";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
+         <listitem>
+          <synopsis>DirectSumMatrixVector (v)</synopsis>
+          <para>Přímý součet vektoru matic.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/S%C4%8D%C3%ADt%C3%A1n%C3%AD_matic#Direktn.C3.AD_sou.C4.8Det";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
+         <listitem>
+          <synopsis>Eigenvalues (M)</synopsis>
+          <para>Alternativní názvy: <function>eig</function></para>
+          <para>Získat vlastní čísla čtvercové matice. V současnosti pracuje pouze pro matice do velikosti 4 
krát 4 nebo pro trojúhelníkové matice (pro které jsou vlastní čísla na diagonále).</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/Eigenvalue";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/Eigenvalue.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Vlastn%C3%AD_%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
+         <listitem>
+          <synopsis>Eigenvectors (M)</synopsis>
+          <synopsis>Eigenvectors (M,&amp;vlastni_cisla)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;vlastni_cisla, &amp;nasobnosti)</synopsis>
+         <para>Získat vlastní vektory čtvercové matice. Volitelně získat také vlastní čísla a jejich 
algebraické násobnosti. V současnosti pracuje pouze s maticemi do velikosti 2 krát 2.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/Eigenvector";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/Eigenvector.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Vlastn%C3%AD_%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
+         <listitem>
+          <synopsis>GramSchmidt (v,B...)</synopsis>
+         <para>Použít Gramův-Schmidtův proces (na sloupce) vzhledem k unitárnímu prostoru danému 
<varname>B</varname>. Pokud <varname>B</varname> není zadáno, je použit standardní hermitovský součin. 
<varname>B</varname> může být buď polybilineární funkce dvou argumentů nebo to může být matice v 
polybilineární formě. Vektory budou vytvořeny ortogonální vzhledem k <varname>B</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/GramSchmidtOrthogonalization";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Gramova-Schmidtova_ortogonalizace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
+         <listitem>
+          <synopsis>HankelMatrix (c,r)</synopsis>
+         <para>Henkelova matice, což je matice se stejnými vedlejšími diagonálami. <varname>c</varname> je 
první řádek a <varname>r</varname> je poslední sloupec. Předpokládá se, že oba argumenty budou vektory a 
poslední prvek <varname>c</varname> bude stejný jako první prvek <varname>r</varname>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Hankel_matrix";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
+         <listitem>
+          <synopsis>HilbertMatrix (n)</synopsis>
+          <para>Hilbertova matice řádu <varname>n</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> (text je v angličtině) a <ulink 
url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Image"/>Image</term>
+         <listitem>
+          <synopsis>Image (T)</synopsis>
+          <para>Získat obraz (sloupcový prostor) lineární transformace.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
+         <listitem>
+          <synopsis>InfNorm (v)</synopsis>
+          <para>Získat k vektoru normu typu nekonečno, někdy také nazývanou maximální norma.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
+         <listitem>
+          <synopsis>InvariantFactorsInteger (M)</synopsis>
+          <para>Získat invariantní činitele čtvercové celočíselné matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
+         <listitem>
+          <synopsis>InverseHilbertMatrix (n)</synopsis>
+          <para>Inverzní Hilbertova matice řádu <varname>n</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> (text je v angličtině) a <ulink 
url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
+         <listitem>
+          <synopsis>IsHermitian (M)</synopsis>
+          <para>Je matice hermitovská? Tj. zda je rovna své konjugované transpozici.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/HermitianMatrix";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="https://en.wikipedia.org/wiki/Hermitian_matrix";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
+         <listitem>
+          <synopsis>IsInSubspace (v,W)</synopsis>
+          <para>Zjistit, zda je vektor v podprostoru.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
+         <listitem>
+          <synopsis>IsInvertible (n)</synopsis>
+          <para>Je matice (nebo číslo) invertovatelná (matice celých čísel je invertovatelná, když je 
invertovatelná nad celými čísly)?</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
+         <listitem>
+          <synopsis>IsInvertibleField (n)</synopsis>
+          <para>Je matice (nebo číslo) invertovatelná nad tělesem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
+         <listitem>
+          <synopsis>IsNormal (M)</synopsis>
+          <para>Je <varname>M</varname> normální matice. To jest, zda <userinput>M*M' == 
M'*M</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/NormalMatrix";>Planetmath</ulink> (text je v angličtině) nebo <ulink 
url="http://mathworld.wolfram.com/NormalMatrix.html";>Mathworld</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
+         <listitem>
+          <synopsis>IsPositiveDefinite (M)</synopsis>
+          <para>Je matice <varname>M</varname> hermitovská pozitivně definitní matice? To znamená, zda je 
<userinput>HermitianProduct(M*v,v)</userinput> vždy striktně pozitivní pro libovolný vektor 
<varname>v</varname>. <varname>M</varname> musí být čtvercová a hermitovská, aby byla pozitivně definitní. 
Kontrola, zda tomu tak je, spočívá v tom, zda každá hlavní podmatice má nezáporný determinant. (Viz <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>Poznamenejme, že někteří autoři (např. Mathworld) nevyžadují, aby matice <varname>M</varname> 
byla hermitovská a tak podmínka není skutečnu částí unitárního prostoru, ale neberte to za dogma. Pokud 
chcete takovou kontrolu provést, jednoduše zkontrolujte hermitovskou část matice <varname>M</varname> takto: 
<userinput>IsPositiveDefinite(M+M')</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/PositiveDefinite";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html";>Mathworld</ulink> (text je v angličtině) a 
<ulink url="https://cs.wikipedia.org/wiki/Pozitivn%C4%9B_definitn%C3%AD_matice";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
+         <listitem>
+          <synopsis>IsPositiveSemidefinite (M)</synopsis>
+          <para>Je matice <varname>M</varname> hermitovská pozitivně semidefinitní matice? To znamená, zda 
je <userinput>HermitianProduct(M*v,v)</userinput> vždy nezáporná pro libovolný vektor <varname>v</varname>. 
<varname>M</varname> musí být čtvercová a hermitovská, aby byla pozitivně semidefinitní. Kontrola, zda tomu 
tak je, spočívá v tom, zda každá hlavní podmatice má nezáporný determinant. (Viz <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>Poznamenejme, že někteří autoři (např. Mathworld) nevyžadují, aby matice <varname>M</varname> 
byla hermitovská a tak podmínka není skutečnu částí unitárního prostoru, ale neberte to za dogma. Pokud 
chcete takovou kontrolu provést, jednoduše zkontrolujte hermitovskou část matice <varname>M</varname> takto: 
<userinput>IsPositiveSemidefinite(M+M')</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/PositiveSemidefinite";>Planetmath</ulink> (text je v angličtině) nebo <ulink 
url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html";>Mathworld</ulink> (text je v 
angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
+         <listitem>
+          <synopsis>IsSkewHermitian (M)</synopsis>
+          <para>Je matice antihermitovská? To znamená, zda je konjugovaná transpozice rovna negativní 
matici.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/SkewHermitianMatrix";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
+         <listitem>
+          <synopsis>IsUnitary (M)</synopsis>
+          <para>Je matice unitární? To je, zda <userinput>M'*M</userinput> a <userinput>M*M'</userinput> 
dají stejnou jednotkovou matici.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/UnitaryTransformation";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/UnitaryMatrix.html";>Mathworld</ulink> (text je v angličtině) nebo <ulink 
url="http://cs.wikipedia.org/wiki/Unit%C3%A1rn%C3%AD_matice";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
+         <listitem>
+          <synopsis>JordanBlock (n,lambda)</synopsis>
+          <para>Alternativní názvy: <function>J</function></para>
+          <para>Získat Jordanův blok odpovídající vlastnímu číslu <varname>lambda</varname> s násobností 
<varname>n</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Jordanova_norm%C3%A1ln%C3%AD_forma";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Kernel"/>Kernel</term>
+         <listitem>
+          <synopsis>Kernel (T)</synopsis>
+          <para>Získat jádro (nulový prostor) lineární transformace.</para>
+         <para>(Viz <link linkend="gel-function-NullSpace">NullSpace</link>)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerProduct"/>KroneckerProduct</term>
+         <listitem>
+          <synopsis>KroneckerProduct (M, N)</synopsis>
+          <para>Alternativní názvy: <function>TensorProduct</function></para>
+         <para>Spočítat Kroneckerův součin (tenzorový součin ve standardní bázi) dvou matic.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Kronecker_product";>Wikipedia</ulink> (text je v angličtině), <ulink 
url="http://planetmath.org/KroneckerProduct";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="http://mathworld.wolfram.com/KroneckerProduct.html";>Mathworld</ulink> (text je v angličtině).</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
+         <listitem>
+          <synopsis>LUDecomposition (A, L, U)</synopsis>
+          <para>Získat LU rozklad matice <varname>A</varname> tak, že se najde dolní a horní trojúhelníková 
matice, jejichž součinem je <varname>A</varname>. Výsledek se uloží v <varname>L</varname> a 
<varname>U</varname>, což by měly být odkazy na proměnné. V případě úspěchu vrací <constant>true</constant>. 
Například předpokládejme, že A je čtvercová matice, pak po spuštění: <screen><prompt>genius&gt;</prompt> 
<userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
+</screen> budete mít dolní matici uloženou v proměnné s názvem <varname>L</varname> a horní matici v 
proměnné s názvem <varname>U</varname>.</para>
+         <para>Jedná se o LU rozklad matice známý také jako Croutův a/nebo Choleského rozklad. (ISBN 
0-201-11577-8 pp.99-103) Horní trojúhelníková matice zahrnuje diagonálu hodnot 1. Nejedná se o Doolittlovu 
metodu, která zahrnuje diagonálu jedniček do dolní matice.</para>
+         <para>Ne všechny matice mají LU rozklad, například <userinput>[0,1;1,0]</userinput> jej nemá a tato 
funkce v takovém případě vrátí <constant>false</constant> a nastaví <varname>L</varname> a 
<varname>U</varname> na <constant>null</constant>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/LUDecomposition";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/LUDecomposition.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/LU_rozklad";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Minor"/>Minor</term>
+         <listitem>
+          <synopsis>Minor (M,i,j)</synopsis>
+          <para>Získat subdeterminant (též minor) <varname>i</varname>-<varname>j</varname> matice.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/Minor";>Planetmath</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
+         <listitem>
+          <synopsis>NonPivotColumns (M)</synopsis>
+          <para>Vrátit sloupce matice, které nemají pivot.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Norm"/>Norm</term>
+         <listitem>
+          <synopsis>Norm (v,p...)</synopsis>
+          <para>Alternativní názvy: <function>norm</function></para>
+          <para>Získat normu typu p (nebo typu 2, pokud není zadáno p) vektoru.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
+         <listitem>
+          <synopsis>NullSpace (T)</synopsis>
+          <para>Získat nulový prostor matice. Tj. jádro lineární transformace, která matici představuje. 
Výsledek se vrací v podobě matice, jejíž sloupcový prostor je nulovým prostorem z <varname>T</varname>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/Nullspace";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Nullity"/>Nullity</term>
+         <listitem>
+          <synopsis>Nullity (M)</synopsis>
+          <para>Alternativní názvy: <function>nullity</function></para>
+          <para>Získat nulovost matice. Tzn. vrátit rozměry nulového prostoru; rozměry jádra matice 
<varname>M</varname>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/Nullity";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
+         <listitem>
+          <synopsis>OrthogonalComplement (M)</synopsis>
+          <para>Získat ortogonální doplněk sloupcového prostoru.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
+         <listitem>
+          <synopsis>PivotColumns (M)</synopsis>
+          <para>Vrátit sloupce matice s pivoty, tzn. sloupce, které mají 1 v řádkově redukované podobě. 
Rovněž vrací řádek, ve kterém se vyskytly.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Projection"/>Projection</term>
+         <listitem>
+          <synopsis>Projection (v,W,B...)</synopsis>
+         <para>Projekce vektoru <varname>v</varname> do podprostoru <varname>W</varname> vzhledem k 
unitárnímu prostoru danému <varname>B</varname>. Pokud <varname>B</varname> není zadáno, je použit standardní 
hermitovský součin. <varname>B</varname> může být buď polybilineární funkce dvou argumentů nebo to může být 
matice v polybilineární formě.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
+         <listitem>
+          <synopsis>QRDecomposition (A, Q)</synopsis>
+          <para>Získat QR rozklad čtvercové matice <varname>A</varname>, vrací horní trojúhelníkovou matici 
<varname>R</varname> a nastavuje <varname>Q</varname> na ortogonální (unitární) matici. <varname>Q</varname> 
by měl být odkaz na proměnnou nebo <constant>null</constant>, pokud nic vrátit nechcete. Například pro 
<screen><prompt>genius&gt;</prompt> <userinput>R = QRDecomposition(A,&amp;Q)</userinput>
+</screen> budete mít horní trojúhelníkovou matici uloženou v proměnné s názvem <varname>R</varname> a 
ortogonální (unitární) matici v <varname>Q</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/QRDecomposition";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/QRDecomposition.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/QR_rozklad";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
+         <listitem>
+          <synopsis>RayleighQuotient (A,x)</synopsis>
+          <para>Vrátit Rayleighův podíl (nazývaný také Rayleighův-Ritzův koeficient nebo podíl) matice a 
vektoru.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
+         <listitem>
+          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</synopsis>
+          <para>Najít vlastní čísla matice <varname>A</varname> pomocí iterační metody Rayleighova podílu. 
<varname>x</varname> je odhadovaný vlastní vektor a mohl by být náhodný. Měl by mít nenulovou imaginární 
část, pokud existuje nějaká možnost, že budou nalezena komplexní vlastní čísla. Kód bude nanejvýše v 
<varname>maxiter</varname> iteracích a vracet <constant>null</constant>, pokud není možné získat výsledek v 
rámci chyby <varname>epsilon</varname>. <varname>vecref</varname> by měl být buď <constant>null</constant> 
nebo odkaz na proměnnou, do které by se měl uložit vlastní vektor.</para>
+          <para>Více informací o Rayleighově podíle najdete v encyklopedii <ulink 
url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rank"/>Rank</term>
+         <listitem>
+          <synopsis>Rank (M)</synopsis>
+          <para>Alternativní názvy: <function>rank</function></para>
+          <para>Získat hodnost matice.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/SylvestersLaw";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
+         <listitem>
+          <synopsis>RosserMatrix ()</synopsis>
+          <para>Vrátit Rosserovu matici, která je klasickým symetrickým problémem testu vlastního 
čísla.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
+         <listitem>
+          <synopsis>Rotation2D (úhel)</synopsis>
+          <para>Alternativní názvy: <function>RotationMatrix</function></para>
+          <para>Vrátit matici odpovídající otočení okolo počátku v R<superscript>2</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
+         <listitem>
+          <synopsis>Rotation3DX (úhel)</synopsis>
+          <para>Vrátit matici odpovídající otočení okolo počátku v R<superscript>3</superscript> kolem osy 
x.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
+         <listitem>
+          <synopsis>Rotation3DY (úhel)</synopsis>
+          <para>Vrátit matici odpovídající otočení okolo počátku v R<superscript>3</superscript> kolem osy 
y.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
+         <listitem>
+          <synopsis>Rotation3DZ (úhel)</synopsis>
+          <para>Vrátit matici odpovídající otočení okolo počátku v R<superscript>3</superscript> kolem osy 
z.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
+         <listitem>
+          <synopsis>RowSpace (M)</synopsis>
+          <para>Získat bázi matice pro prostor řádků matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
+         <listitem>
+          <synopsis>SesquilinearForm (v,A,w)</synopsis>
+          <para>Vyhodnotit (v,w) vzhledem k polybilineární formě dané maticí <varname>A</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
+         <listitem>
+          <synopsis>SesquilinearFormFunction (A)</synopsis>
+          <para>Vrátit funkci vyhodnocující dva vektory vzhledem k polybilineární formě dané maticí 
<varname>A</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
+         <listitem>
+          <synopsis>SmithNormalFormField (A)</synopsis>
+          <para>Vrátit Smithův kanonický tvar (normální forma) matice nad poli (bude končit s jedničkami na 
diagonále).</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> (článek je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
+         <listitem>
+          <synopsis>SmithNormalFormInteger (M)</synopsis>
+          <para>Vrátit Smithův kanonický tvar (normální formu) pro čtvercové celočíselné matice nad celými 
čísly.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> (článek je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
+         <listitem>
+          <synopsis>SolveLinearSystem (M,V,argumenty...)</synopsis>
+         <para>Vyřešit lineární systém Mx=V, vrátit řešení V, pokud existuje jedinečné řešení, jinak vrátit 
<constant>null</constant>. Je možné použít dva dodatečné parametry předávané odkazem, ve kterých získáte 
redukované M a V.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
+         <listitem>
+          <synopsis>ToeplitzMatrix (s, r...)</synopsis>
+         <para>Vrátit Teplitzovu matici sestavenou podle zadaného prvního sloupce <varname>c</varname> a 
(volitelně) prvního řádku <varname>r</varname>. Pokud je zadán pouze sloupec <varname>c</varname>, je pro 
první řádek použita konjugovaná a nekonjugovaná verze, aby se získala hermitovská matice (samozřejmě za 
předpokladu, že je první prvek reálný).</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Toeplitz_matrix";>Wikipedia</ulink> (text je v angličtině) a <ulink 
url="http://planetmath.org/ToeplitzMatrix";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Trace"/>Trace</term>
+         <listitem>
+          <synopsis>Trace (M)</synopsis>
+          <para>Alternativní názvy: <function>trace</function></para>
+          <para>Spočítat stopu matice. Jedná se o součet prvků na hlavní diagonále čtvercové matice.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Stopa_%28algebra%29";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/Trace";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Transpose"/>Transpose</term>
+         <listitem>
+          <synopsis>Transpose (M)</synopsis>
+          <para>Transponovat matici. Funkčně je to stejné, jako operátor <userinput>.'</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://cs.wikipedia.org/wiki/Transpozice_matice";>Wikipedia</ulink> a <ulink 
url="http://planetmath.org/Transpose";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
+         <listitem>
+          <synopsis>VandermondeMatrix (v)</synopsis>
+          <para>Alternativní názvy: <function>vander</function></para>
+          <para>Vrátit Vandermondovu matici.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Vandermondova_matice";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
+         <listitem>
+          <synopsis>VectorAngle (v,w,B...)</synopsis>
+          <para>Úhel dvou vektorů vzhledem k unitárnímu prostoru daného <varname>B</varname>. Pokud 
<varname>B</varname> není zadáno, je použit standardní hermitovský součin. <varname>B</varname> může být buď 
polybilineární funkce dvou argumentů nebo to může být matice v polybilineární formě.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
+         <listitem>
+          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
+          <para>Přímý součet vektorových prostorů M a N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
+         <listitem>
+          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
+          <para>Průnik podprostorů daných pomocí M a N</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
+         <listitem>
+          <synopsis>VectorSubspaceSum (M,N)</synopsis>
+          <para>Součet vektorových prostorů M a N, tj. {w | w=m+n, m in M, n in N}.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-adj"/>adj</term>
+         <listitem>
+          <synopsis>adj (m)</synopsis>
+          <para>Alternativní názvy: <function>Adjugate</function></para>
+          <para>Získat adjungovanou (reciproku) matici.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cref"/>cref</term>
+         <listitem>
+          <synopsis>cref (M)</synopsis>
+          <para>Alternativní názvy: <function>CREF</function> 
<function>ColumnReducedEchelonForm</function></para>
+          <para>Spočítat sloupcově odstupňovaný tvar matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-det"/>det</term>
+         <listitem>
+          <synopsis>det (M)</synopsis>
+          <para>Alternativní názvy: <function>Determinant</function></para>
+          <para>Získat determinant matice.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/Determinant2";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Determinant";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ref"/>ref</term>
+         <listitem>
+          <synopsis>ref (M)</synopsis>
+          <para>Alternativní názvy: <function>REF</function> <function>RowEchelonForm</function></para>
+         <para>Získat řádkově odstupňovaný tvar matice. To jest, použít Gaussovu eliminaci, ale bez zpětného 
dosazování do <varname>M</varname>. Nenulové řádky jsou poděleny, aby všechny pivoty byly 1.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Row_echelon_form";>Wikipedia</ulink> (text je v angličtině) a <ulink 
url="http://planetmath.org/RowEchelonForm";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rref"/>rref</term>
+         <listitem>
+          <synopsis>rref (M)</synopsis>
+          <para>Alternativní názvy: <function>RREF</function> 
<function>ReducedRowEchelonForm</function></para>
+          <para>Získat redukovaný řádkově odstupňovaný tvar matice. To jest, použít Gaussovu eliminaci se 
zpětným dosazováním do <varname>M</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Reduced_row_echelon_form";>Wikipedia</ulink> (text je v angličtině) a 
<ulink url="http://planetmath.org/ReducedRowEchelonForm";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-combinatorics">
+      <title>Kombinatorika</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Catalan"/>Catalan</term>
+         <listitem>
+          <synopsis>Catalan (n)</synopsis>
+          <para>Získat <varname>n</varname>-té Catalanovo číslo.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/CatalanNumbers";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Catalanova_%C4%8D%C3%ADsla";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Combinations"/>Combinations</term>
+         <listitem>
+          <synopsis>Combinations (k,n)</synopsis>
+          <para>Získat jako vektor vektorů všechny kombinace k-té třídy z prvků 1 až n. (Viz také <link 
linkend="gel-function-NextCombination">NextCombination</link>)</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Kombinace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
+         <listitem>
+          <synopsis>DoubleFactorial (n)</synopsis>
+          <para>Dvojitý faktoriál: <userinput>n(n-2)(n-4)…</userinput></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/DoubleFactorial";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorial"/>Factorial</term>
+         <listitem>
+          <synopsis>Factorial (n)</synopsis>
+          <para>Faktoriál: <userinput>n(n-1)(n-2)…</userinput></para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/Factorial";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Faktori%C3%A1l";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
+         <listitem>
+          <synopsis>FallingFactorial (n,k)</synopsis>
+          <para>Klesající faktoriál: <userinput>(n)_k = n(n-1)…(n-(k-1))</userinput></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/FallingFactorial";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
+         <listitem>
+          <synopsis>Fibonacci (x)</synopsis>
+          <para>Alternativní názvy: <function>fib</function></para>
+          <para>Vypočítat <varname>n</varname>-té Fibonacciho číslo. Tj. číslo definované rekurzivně jako 
<userinput>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</userinput> a <userinput>Fibonacci(1) = 
Fibonacci(2) = 1</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/FibonacciSequence";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/FibonacciNumber.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Fibonacciho_posloupnost";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
+         <listitem>
+          <synopsis>FrobeniusNumber (v,arg...)</synopsis>
+          <para>Spočítat Frobeniusovo číslo. Tzn. spočítat největší číslo, které nemůže být dáno jako 
lineární kombinace celých nezáporných čísel zadaných jako vektor nezáporných celých čísel. Vektor může být 
zadán jako samostatná čísla nebo jeden vektor. Všechna zadaná čísla by měla mít největšího společného 
dělitele 1.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/Coin_problem";>Wikipedia</ulink> (text je v angličtině) a <ulink 
url="http://mathworld.wolfram.com/FrobeniusNumber.html";>Mathworld</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
+         <listitem>
+          <synopsis>GaloisMatrix (kombinacni_pravidlo)</synopsis>
+          <para>Galoisova matice daná lineárním kombinačním pravidlem (a_1*x_1+…+a_n*x_n=x_(n+1)).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
+         <listitem>
+          <synopsis>GreedyAlgorithm (n,v)</synopsis>
+          <para>Najít takový vektor <varname>c</varname> nezáporných celých čísel, že skalární součin s 
<varname>v</varname> je roven <varname>n</varname>. Když to není možné, vrátí <constant>null</constant>. 
Vektor <varname>v</varname> by měl být předán seřazený ve vzestupném pořadí a měl by se skládat z nezáporných 
celých čísel.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/GreedyAlgorithm.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Hladov%C3%BD_algoritmus";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
+         <listitem>
+          <synopsis>HarmonicNumber (n,r)</synopsis>
+          <para>Alternativní názvy: <function>HarmonicH</function></para>
+         <para>Harmonické číslo, <varname>n</varname>-té harmonické číslo řádu <varname>r</varname>. Jedná 
se o součet <userinput>1/k^r</userinput> pro <varname>k</varname> od 1 do n. Je to to stejné jako 
<userinput>sum k = 1 to n do 1/k^r</userinput>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Harmonic_number";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
+         <listitem>
+          <synopsis>Hofstadter (n)</synopsis>
+          <para>Hofstadterova funkce q(n) definovaná jako q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2))</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Hofstadter_sequence";>Wikipedia</ulink> (text je v angličtině). Posloupnost 
je <ulink url="https://oeis.org/A005185";>A005185 podle encyklopedie OEIS</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
+         <listitem>
+          <synopsis>LinearRecursiveSequence (pocatecni_hodnoty,kombinacni_pravidlo,n)</synopsis>
+          <para>Spočítat lineární rekurzivní posloupnost pomocí Galoisova krokování.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
+         <listitem>
+          <synopsis>Multinomial (v,arg...)</synopsis>
+          <para>Spočítat multinomické koeficienty. Přebírá vektor <varname>k</varname> nezáporných celých 
čísel a spočítá multinomický koeficient. To odpovídá koeficientu v homogenním polynomu v <varname>k</varname> 
proměnných s odpovídajícími mocninami.</para>
+         <para>Vzorec pro <userinput>Multinomial(a,b,c)</userinput> se dá napsat jako: 
<programlisting>(a+b+c)! / (a!b!c!)
+</programlisting> Jinými slovy, pokud máme jen dva prvky, pak <userinput>Multinomial(a,b)</userinput> je to 
stejné, jako <userinput>Binomial(a+b,a)</userinput> nebo <userinput>Binomial(a+b,b)</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/MultinomialTheorem";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/MultinomialCoefficient.html";>Mathworld</ulink> (text je v angličtině) a 
<ulink url="https://cs.wikipedia.org/wiki/Multinomick%C3%A1_v%C4%9Bta";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
+         <listitem>
+          <synopsis>NextCombination (v,n)</synopsis>
+         <para>Získat kombinaci, která by následovala po kombinaci <varname>v</varname> v pořadí kombinací, 
první kombinací by měla být <userinput>[1:k]</userinput>. To je užitečné, pokud máte hodně kombinací, které 
chcete projít a nechcete plýtvat pamětí na uložení všech.</para>
+         <para>S funkcí Combinations byste normálně napsali smyčku jako: <screen><userinput>for n in 
Combinations (4,6) do (
+  NejakaFunkce (n)
+);</userinput>
+</screen> Ale s funkcí NextCombination byste napsali něco takového: <screen><userinput>n:=[1:4];
+do (
+  NejakaFunkce (n)
+) while not IsNull(n:=NextCombination(n,6));</userinput>
+</screen> Viz <link linkend="gel-function-Combinations">Combinations</link>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Kombinace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Pascal"/>Pascal</term>
+         <listitem>
+          <synopsis>Pascal (i)</synopsis>
+          <para>Získat Pascalův trojúhelník v podobě matice. Vrátí dolní trojúhelníkovou matici 
<varname>i</varname>+1 krát <varname>i</varname>+1, která je Pascalovým trojúhelníkem po <varname>i</varname> 
iteracích.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/PascalsTriangle";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Pascal%C5%AFv_troj%C3%BAheln%C3%ADk";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Permutations"/>Permutations</term>
+         <listitem>
+          <synopsis>Permutations (k,n)</synopsis>
+          <para>Získat jako vektor vektorů všechny variace <varname>k</varname>-té třídy z prvků 1 až 
<varname>n</varname> prvků, případně permutace pro <varname>k</varname>=<varname>n</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> (text je v angličtině) nebo <ulink 
url="https://cs.wikipedia.org/wiki/Permutace";>Wikipedia</ulink> (permutace) a <ulink 
url="https://cs.wikipedia.org/wiki/Variace_%28kombinatorika%29";>Wikipedia</ulink> (variace).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
+         <listitem>
+          <synopsis>RisingFactorial (n,k)</synopsis>
+          <para>Alternativní názvy: <function>Pochhammer</function></para>
+          <para>(Pochhammerův) stoupacící faktoriál: (n)_k = n(n+1)…(n+(k-1))</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/RisingFactorial";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
+         <listitem>
+          <synopsis>StirlingNumberFirst (n,m)</synopsis>
+          <para>Alternativní názvy: <function>StirlingS1</function></para>
+          <para>Stirlingovo číslo prvního druhu.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/StirlingNumbersOfTheFirstKind";>Planetmath</ulink> (text je v angličtině) nebo 
<ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html";>Mathworld</ulink> (text je v 
angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
+         <listitem>
+          <synopsis>StirlingNumberSecond (n,m)</synopsis>
+          <para>Alternativní názvy: <function>StirlingS2</function></para>
+          <para>Stirlingovo číslo druhého druhu.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/StirlingNumbersSecondKind";>Planetmath</ulink> (text je v angličtině) nebo <ulink 
url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html";>Mathworld</ulink> (text je v 
angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
+         <listitem>
+          <synopsis>Subfactorial (n)</synopsis>
+          <para>Subfaktoriál: n! krát suma_{k=0}^n (-1)^k/k!</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Triangular"/>Triangular</term>
+         <listitem>
+          <synopsis>Triangular (n)</synopsis>
+          <para>Spočítat <varname>n</varname>-té trojúhelníkové číslo.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/TriangularNumbers";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Troj%C3%BAheln%C3%ADkov%C3%A9_%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nCr"/>nCr</term>
+         <listitem>
+          <synopsis>nCr (n,r)</synopsis>
+          <para>Alternativní názvy: <function>Binomial</function></para>
+          <para>Spočítat kombinace, tj. kombinační číslo. <varname>n</varname> může být libovolné reálné 
číslo.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/Choose";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="http://cs.wikipedia.org/wiki/Kombina%C4%8Dn%C3%AD_%C4%8D%C3%ADslo";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nPr"/>nPr</term>
+         <listitem>
+          <synopsis>nPr (n,k)</synopsis>
+          <para>Spočítat počet variací <varname>k</varname>-té třídy z prvků 1 až <varname>n</varname>, 
respektive počet permutací při <varname>k</varname> rovno <varname>n</varname>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> (text je v angličtině) nebo <ulink 
url="https://cs.wikipedia.org/wiki/Permutace";>Wikipedia</ulink> (permutace) a <ulink 
url="https://cs.wikipedia.org/wiki/Variace_%28kombinatorika%29";>Wikipedia</ulink> (variace).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-calculus">
+      <title>Diferenciální/integrální počet </title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
+          <para>Integrovat f složeným Simpsonovým pravidlem na intervalu [a,b] s n podintervaly s chybou 
podle max(f'''')*h^4*(b-a)/180. Upozorňujeme, že n by mělo být sudé.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,omezeni_ctvrte_derivace,tolerance)</synopsis>
+          <para>Integrovat f složeným Simpsonovým pravidlem na intervalu [a,b] s počtem kroků počítaným 
podle omezení čtvrté derivace a podle požadované tolerance.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Derivative"/>Derivative</term>
+         <listitem>
+          <synopsis>Derivative (f,x0)</synopsis>
+          <para>Zkusit spočítat derivaci, nejprve symbolicky a pak numericky.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Derivace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
+         <listitem>
+          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
+         <para>Vrátit funkci, která je sudým periodickým rozšířením <function>f</function> s poloviční 
periodou <varname>L</varname>. Tj. funkce definovaná na intervalu <userinput>[0,L]</userinput> rozšířená, aby 
byla sudá na <userinput>[-L,L]</userinput> a pak rozšířená, aby byla periodická s periodou 
<userinput>2*L</userinput>.</para>
+         <para>Viz také <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> a 
<link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
+         <listitem>
+          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
+         <para>Vrátit funkci, která je Fourierovu řadou s koeficienty danými vektory <varname>a</varname> 
(sinové) a <varname>b</varname> (kosinové). Vezměte na vědomí, že <userinput>a@(1)</userinput> je konstantní 
koeficient! To znamená, že <userinput>a@(n)</userinput> odkazuje na člen 
<userinput>cos(x*(n-1)*pi/L)</userinput>, zatímco <userinput>b@(n)</userinput> odkazuje na člen 
<userinput>sin(x*n*pi/L)</userinput>. Buďto <varname>a</varname> nebo <varname>b</varname> může být 
<constant>null</constant>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> (text je v angličtině) nebo <ulink 
url="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
+         <listitem>
+          <synopsis>InfiniteProduct (fce,start,prirustek)</synopsis>
+          <para>Zkusit spočítat nekonečný součin funkce s jedním parametrem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
+         <listitem>
+          <synopsis>InfiniteProduct2 (fce,arg,start,prirustek)</synopsis>
+          <para>Zkusit spočítat nekonečný součin funkce se dvěma parametry s fce (arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
+         <listitem>
+          <synopsis>InfiniteSum (fce,start,prirustek)</synopsis>
+          <para>Zkusit spočítat nekonečný součet funkce s jedním parametrem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
+         <listitem>
+          <synopsis>InfiniteSum2 (fce,arg,start,prirustek)</synopsis>
+          <para>Zkusit spočítat nekonečný součet funkce se dvěma parametry s fce (arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
+         <listitem>
+          <synopsis>IsContinuous (f,x0)</synopsis>
+          <para>Zkusit zjistit pomocí výpočtu limity v x0, jestli je funkce reálné proměnné v tomto bodě 
spojitá.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
+         <listitem>
+          <synopsis>IsDifferentiable (f,x0)</synopsis>
+          <para>Otestovat na diferencovatelnost aproximací limit zleva a zprava a porovnáním.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
+         <listitem>
+          <synopsis>LeftLimit (f,x0)</synopsis>
+          <para>Spočítat limitu zleva funkce reálné proměnné v x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Limit"/>Limit</term>
+         <listitem>
+          <synopsis>Limit (f,x0)</synopsis>
+          <para>Spočítat limitu funkce reálné proměnné v x0. Zkusí vypočítat limitu zleva i zprava.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
+         <listitem>
+          <synopsis>MidpointRule (f,a,b,n)</synopsis>
+          <para>Integrovat trojúhelníkovou metodou (pravidlem prostředního bodu).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
+         <listitem>
+          <synopsis>NumericalDerivative (f,x0)</synopsis>
+          <para>Alternativní názvy: <function>NDerivative</function></para>
+          <para>Zkusit vypočítat numerickou derivaci.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Derivace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
+         <para>Vrátit vektor vektorů <userinput>[a,b]</userinput>, kde <varname>a</varname> jsou kosinové 
koeficienty a <varname>b</varname> sinové koeficienty Fourierovy řady funkce  <function>f</function> s 
poloviční periodou <varname>L</varname> (tj. definovanou na <userinput>[-L,L]</userinput> a periodicky 
rozšířenou) s numericky spočítanými koeficienty do <varname>N</varname>-té harmonické. Koeficienty jsou 
spočítány numerickou integrací pomocí <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> (text je v angličtině) nebo <ulink 
url="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
+         <para>Vrátit funkci, která je Fourierovou řadou funkce <function>f</function> s poloviční periodou 
<varname>L</varname> (tj. definovanou na <userinput>[-L,L]</userinput> a periodicky rozšířenou) s numericky 
spočítanými koeficienty do <varname>N</varname>-té harmonické. Jde o čistě trigonometrickou řadu složenou ze 
sinů a kosinů. Koeficienty jsou spočítány numerickou integrací pomocí <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> (text je v angličtině) nebo <ulink 
url="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Vrátit vektor koeficientů kosinové Fourierovy řady funkce  <function>f</function> s poloviční 
periodou <varname>L</varname>. To jest, vezmeme funkci <function>f</function> definovanou na 
<userinput>[0,L]</userinput>, provedeme sudé periodické rozšíření a spočteme Fourierovu řadu, která má pouze 
kosinové členy. Řada je spočítána do <varname>N</varname>-té harmonické. Koeficienty jsou spočítány 
numerickou integrací pomocí <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>. Poznamenejme, že 
<userinput>a@(1)</userinput> je konstantní koeficient! To znamená, že <userinput>a@(n)</userinput> odkazuje 
na člen <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> (text je v angličtině) nebo 
<ulink url="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
+         <para>Vrátit funkci, která je kosinovou Fourierovu řadou funkce <function>f</function> s poloviční 
periodou <varname>L</varname>. To jest, vezmeme funkci <function>f</function> definovanou na 
<userinput>[0,L]</userinput>, provedeme sudé periodické rozšíření a spočteme Fourierovu řadu, která má pouze 
kosinové členy. Řada je spočítána do <varname>N</varname>-té harmonické. Koeficienty jsou spočítány 
numerickou integrací pomocí <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> (text je v angličtině) nebo 
<ulink url="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Vrátit vektor koeficientů sinové Fourierovy řady funkce  <function>f</function> s poloviční 
periodou <varname>L</varname>. To jest, vezmeme funkci <function>f</function> definovanou na 
<userinput>[0,L]</userinput>, provedeme liché periodické rozšíření a spočteme Fourierovu řadu, která má pouze 
sinové členy. Řada je spočítána do <varname>N</varname>-té harmonické. Koeficienty jsou spočítány numerickou 
integrací pomocí <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> (text je v angličtině) nebo 
<ulink url="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
+         <para>Vrátit funkci, která je sinovou Fourierovu řadou funkce <function>f</function> s poloviční 
periodou <varname>L</varname>. To jest, vezmeme funkci <function>f</function> definovanou na 
<userinput>[0,L]</userinput>, provedeme liché periodické rozšíření a spočteme Fourierovu řadu, která má pouze 
sinové členy. Řada je spočítána do <varname>N</varname>-té harmonické. Koeficienty jsou spočítány numerickou 
integrací pomocí <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> (text je v angličtině) nebo 
<ulink url="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
+         <listitem>
+          <synopsis>NumericalIntegral (f,a,b)</synopsis>
+          <para>Integrovat pravidlem nastaveným v NumericalIntegralFunction jako funkcí f od a do b pomocí 
kroků NumericalIntegralSteps.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
+         <listitem>
+          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
+          <para>Zkusit vypočítat numerickou levou derivaci.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
+         <listitem>
+          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerance,serie_pro_uspech,N)</synopsis>
+          <para>Pokusit se spočítat limitu f(step_fun(i)) pro i od 1 do N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
+         <listitem>
+          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
+          <para>Zkusit vypočítat numerickou pravou derivaci.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
+         <listitem>
+          <synopsis>OddPeriodicExtension (f,L)</synopsis>
+         <para>Vrátit funkci, která je lichým periodickým rozšířením <function>f</function> s poloviční 
periodou <varname>L</varname>. Tj. funkce definovaná na intervalu <userinput>[0,L]</userinput> rozšířená, aby 
byla lichá na <userinput>[-L,L]</userinput> a pak rozšířená, aby byla periodická s periodou 
<userinput>2*L</userinput>.</para>
+         <para>Viz také <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link> a 
<link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Spočítat jednostrannou derivaci pomocí pětibodového vzorce.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Spočítat jednostrannou derivaci pomocí tříbodového vzorce.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
+         <listitem>
+          <synopsis>PeriodicExtension (f,a,b)</synopsis>
+         <para>Vrátit funkci, která je periodickým rozšířením <function>f</function> definované na intervalu 
<userinput>[a,b]</userinput> a s periodou <userinput>b-a</userinput>.</para>
+         <para>Viz také <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> a 
<link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.</para>
+         <para>Verze 1.0.7 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
+         <listitem>
+          <synopsis>RightLimit (f,x0)</synopsis>
+          <para>Spočítat limitu zprava funkce reálné proměnné v x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Spočítat oboustrannou derivaci pomocí pětibodového vzorce.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Spočítat oboustrannou derivaci pomocí tříbodového vzorce.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-functions">
+      <title>Funkce</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Argument"/>Argument</term>
+         <listitem>
+          <synopsis>Argument (z)</synopsis>
+          <para>Alternativní názvy: <function>Arg</function><function>arg</function></para>
+          <para>Argument (orientovaný úhel) komplexního čísla.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
+         <listitem>
+          <synopsis>BesselJ0 (x)</synopsis>
+          <para>Besselova funkce prvního druhu řádu 0. Je implementována pouze pro reálná čísla.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Besselova_funkce";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
+         <listitem>
+          <synopsis>BesselJ1 (x)</synopsis>
+          <para>Besselova funkce prvního druhu řádu 1. Je implementována pouze pro reálná čísla.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Besselova_funkce";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
+         <listitem>
+          <synopsis>BesselJn (n,x)</synopsis>
+         <para>Besselova funkce prvního druhu řádu <varname>n</varname>. Je implementována pouze pro reálná 
čísla.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Besselova_funkce";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
+         <listitem>
+          <synopsis>BesselY0 (x)</synopsis>
+          <para>Besselova funkce druhého druhu řádu 0. Je implementována pouze pro reálná čísla.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Besselova_funkce";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
+         <listitem>
+          <synopsis>BesselY1 (x)</synopsis>
+          <para>Besselova funkce druhého druhu řádu 1. Je implementována pouze pro reálná čísla.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Besselova_funkce";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
+         <listitem>
+          <synopsis>BesselYn (n,x)</synopsis>
+         <para>Besselova funkce druhého druhu řádu <varname>n</varname>. Je implementována pouze pro reálná 
čísla.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Besselova_funkce";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
+         <listitem>
+          <synopsis>DirichletKernel (n,t)</synopsis>
+         <para>Dirichletovo jádro řádu <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
+         <listitem>
+          <synopsis>DiscreteDelta (v)</synopsis>
+          <para>Vrátit 1, když a jen když jsou všechny prvky nulové.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
+         <listitem>
+          <synopsis>ErrorFunction (x)</synopsis>
+          <para>Alternativní názvy: <function>erf</function></para>
+          <para>Chybová funkce, 2/sqrt(pi) * int_0^x e^(-t^2) dt.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/ErrorFunction";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Chybov%C3%A1_funkce";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
+         <listitem>
+          <synopsis>FejerKernel (n,t)</synopsis>
+          <para>Fejerovo jádro řádu <varname>n</varname> vyhodnocené v <varname>t</varname>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/FejerKernel";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
+         <listitem>
+          <synopsis>GammaFunction (x)</synopsis>
+          <para>Alternativní názvy: <function>Gamma</function></para>
+          <para>Funkce Gama. V současnosti je implementována pouze pro reálná čísla.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/GammaFunction";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Gama_funkce";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
+         <listitem>
+          <synopsis>KroneckerDelta (v)</synopsis>
+          <para>Vrátit 1, když a jen když se všechny prvky rovnají.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertW"/>LambertW</term>
+         <listitem>
+          <synopsis>LambertW (x)</synopsis>
+         <para>Hlavní větev Lambertovy funkce W vypočítaná pro čistě reálná čísla větší nebo rovna 
<userinput>-1/e</userinput>. Funkce <function>LambertW</function> je inverzní k výrazu 
<userinput>x*e^x</userinput>. Dokonce i pro reálná <varname>x</varname> tento výraz není jedna k jedné a 
proto má dvě větve pro <userinput>[-1/e,0)</userinput>. Viz <link 
linkend="gel-function-LambertWm1"><function>LambertWm1</function></link> ohledně další reálné větve.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> (text je v angličtině).</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertWm1"/>LambertWm1</term>
+         <listitem>
+          <synopsis>LambertWm1 (x)</synopsis>
+         <para>Vedlejší (mínus první) větev Lambertovy funkce W vypočítaná pro čistě reálná čísla větší nebo 
rovna <userinput>-1/e</userinput>. Funkce <function>LambertWm1</function> je druhou větví k inverzi výrazu 
<userinput>x*e^x</userinput>. Viz <link linkend="gel-function-LambertW"><function>LambertW</function></link> 
ohledně hlavní větve.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
+         <listitem>
+          <synopsis>MinimizeFunction (fce,x,prirust)</synopsis>
+          <para>Najít první hodnotu, kdy f(x)=0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
+         <listitem>
+          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
+          <para>Möbiova transformace (lineární lomené zobrazení) kruhu na sebe sama ku 0.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> (text je v angličtině) a 
<ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
+         <listitem>
+          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
+          <para>Möbiova transformace (lineární lomené zobrazení) pomocí dvojpoměrů z2,z3,z4 ku 1,0 a 
nekonečnu.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> (text je v angličtině) a 
<ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
+          <para>Möbiova transformace (lineární lomené zobrazení) pomocí dvojpoměrů nekonečna ku nekonečnu a 
z2,z3 ku 1 a 0.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> (text je v angličtině) a 
<ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
+          <para>Möbiova transformace (lineární lomené zobrazení) pomocí dvojpoměrů nekonečna ku 1 a z3,z4 ku 
0 a nekonečnu.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> (text je v angličtině) a 
<ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
+          <para>Möbiova transformace (lineární lomené zobrazení) pomocí dvojpoměrů nekonečna ku 0 a z2,z4 ku 
1 a nekonečnu.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> (text je v angličtině) a 
<ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
+         <listitem>
+          <synopsis>PoissonKernel (r,sigma)</synopsis>
+          <para>Poissonovo jádro na D(0,1) (nenormalizované na 1, tj. integrál je 2pi).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
+         <listitem>
+          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
+          <para>Poissonovo jádro na D(0,R) (nenormalizované na 1).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
+         <listitem>
+          <synopsis>RiemannZeta (x)</synopsis>
+          <para>Alternativní názvy: <function>zeta</function></para>
+          <para>Riemannova funkce zeta. V současnosti je implementována jen pro reálná čísla.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/RiemannZetaFunction";>Planetmath</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Riemannova_funkce_zeta";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
+         <listitem>
+          <synopsis>UnitStep (x)</synopsis>
+          <para>Funkce jednotkového skoku je rovna 0 pro x&lt;0 a jedné v ostatních případech. Jedná se o 
integrál Diracovy funkce delta. Bývá také nazývána Heavisideova funkce.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Heavisideova_funkce";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cis"/>cis</term>
+         <listitem>
+          <synopsis>cis (x)</synopsis>
+          <para>Funkce <function>cis</function>, což je to stejné jako 
<userinput>cos(x)+1i*sin(x)</userinput></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
+         <listitem>
+          <synopsis>deg2rad (x)</synopsis>
+          <para>Převést stupně na radiány.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
+         <listitem>
+          <synopsis>rad2deg (x)</synopsis>
+          <para>Převést radiány na stupně.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinc"/>sinc</term>
+         <listitem>
+          <synopsis>sinc (x)</synopsis>
+         <para>Vypočítat nenormalizovanou funkci sinc, což je <userinput>sin(x)/x</userinput>. Jestli chcete 
normalizovanou funkci, volejte <userinput>sinc(pi*x)</userinput>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Sinc";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-equation-solving">
+      <title>Řešení rovnic</title>
+      <variablelist>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
+         <listitem>
+          <synopsis>CubicFormula (p)</synopsis>
+          <para>Vypočítat kořeny kubického (3. stupně) polynomu pomocí kubické rovnice. Polynom by měl být 
zadán jako vektor koeficientů. Tj. <userinput>4*x^3 + 2*x + 1</userinput> odpovídá vektoru 
<userinput>[1,2,0,4]</userinput>. Vrací sloupcový vektor tří řešení. První řešení je vždy reálné, protože 
kubická rovnice má vždy jedno reálné řešení.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/CubicFormula";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/CubicFormula.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Kubick%C3%A1_rovnice";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
+         <listitem>
+          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
+          <para>Použít klasickou Eulerovu metodu k numerickému řešení y'=f(x,y) pro počáteční 
<varname>x0</varname>, <varname>y0</varname> měnící se do <varname>x1</varname> s přírůstky 
<varname>n</varname> a vrátit <varname>y</varname> v <varname>x1</varname>. Pokud nechcete výslovně použít 
Eulerovu metodu, měli byste vážně popřemýšlet o použití <link 
linkend="gel-function-RungeKutta">RungeKutta</link> k řešení obyčejných diferenciálních rovnic.</para>
+         <para>Systémy je možné vyřešit jednoduše tak, že <varname>y</varname> musí být všude (sloupcový) 
vektor. To znamená, že <varname>y0</varname> může být vektor v případech, kdy by <varname>f</varname> mělo 
přebírat <varname>x</varname> a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné 
velikosti.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Eulerova_metoda";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
+         <listitem>
+          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
+          <para>Použít klasickou Eulerovu metodu k numerickému řešení y'=f(x,y) pro počáteční 
<varname>x0</varname>, <varname>y0</varname> měnící se do <varname>x1</varname> s přírůstky 
<varname>n</varname> a vrátit matici <userinput>n+1</userinput> krát 2 s hodnotami <varname>x</varname> a 
<varname>y</varname>. Pokud nechcete výslovně použít Eulerovu metodu, měli byste vážně popřemýšlet o použití 
<link linkend="gel-function-RungeKuttaFull">RungeKuttaFull</link> k řešení obyčejných diferenciálních rovnic. 
Vhodné pro zapojení do <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> nebo <link 
linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.</para>
+         <para>Příklad: <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponenciální vývoj");</userinput>
+</screen></para>
+         <para>Systémy je možné vyřešit jednoduše tak, že <varname>y</varname> musí být všude (sloupcový) 
vektor. To znamená, že <varname>y0</varname> může být vektor v případech, kdy by <varname>f</varname> mělo 
přebírat <varname>x</varname> a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné 
velikosti.</para>
+         <para>Výstup pro systém je nicméně matice n krát 2 s druhou položkou v podobě vektoru. Když si 
přejete vykreslit čáru, ujistěte se, že používáte řádkové vektory a pak převeďte matici na vektor pomocí 
<link linkend="gel-function-ExpandMatrix">ExpandMatrix</link> a vyberte si pravý sloupec. Například: 
<screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","První");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Druhý");</userinput>
+</screen></para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Eulerova_metoda";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.10 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
+         <listitem>
+          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
+          <para>Najít kořen funkce pomocí metody bisekce. <varname>a</varname> a <varname>b</varname> je 
počáteční odhad intervalu, <userinput>f(a)</userinput> a <userinput>f(b)</userinput> by měly mít opačná 
znaménka. <varname>TOL</varname> je požadovaná tolerance a <varname>N</varname> je omezení počtu iterací, 
které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor 
<userinput>[uspech,hodnota,iteratce]</userinput>, kde <varname>uspech</varname> je pravdivostní hodnota 
signalizující úspěch, <varname>hodnota</varname> je poslední spočtená hodnota a <varname>iterace</varname> je 
počet dokončených iterací.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
+         <listitem>
+          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
+          <para>Najít kořen funkce pomocí metody tětiv. <varname>a</varname> a <varname>b</varname> je 
počáteční odhad intervalu, <userinput>f(a)</userinput> a <userinput>f(b)</userinput> by měly mít opačná 
znaménka. <varname>TOL</varname> je požadovaná tolerance a <varname>N</varname> je omezení počtu iterací, 
které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor 
<userinput>[uspech,hodnota,iteratce]</userinput>, kde <varname>uspech</varname> je pravdivostní hodnota 
signalizující úspěch, <varname>hodnota</varname> je poslední spočtená hodnota a <varname>iterace</varname> je 
počet dokončených iterací.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
+         <listitem>
+          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
+          <para>Najít kořen funkce pomocí Mullerovy metody. <varname>TOL</varname> je požadovaná tolerance a 
<varname>N</varname> je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací 
vektor <userinput>[uspech,hodnota,iteratce]</userinput>, kde <varname>uspech</varname> je pravdivostní 
hodnota signalizující úspěch, <varname>hodnota</varname> je poslední spočtená hodnota a 
<varname>iterace</varname> je počet dokončených iterací.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
+         <listitem>
+          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
+          <para>Najít kořen funkce pomocí metody sečen. <varname>a</varname> a <varname>b</varname> je 
počáteční odhad intervalu, <userinput>f(a)</userinput> a <userinput>f(b)</userinput> by měly mít opačná 
znaménka. <varname>TOL</varname> je požadovaná tolerance a <varname>N</varname> je omezení počtu iterací, 
které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor 
<userinput>[uspech,hodnota,iteratce]</userinput>, kde <varname>uspech</varname> je pravdivostní hodnota 
signalizující úspěch, <varname>hodnota</varname> je poslední spočtená hodnota a <varname>iterace</varname> je 
počet dokončených iterací.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
+         <listitem>
+          <synopsis>HalleysMethod (f,df,ddf,odhad,epsilon,maxn)</synopsis>
+         <para>Najde nuly pomocí Halleyovy metody. <varname>f</varname> je funkce, <varname>df</varname> je 
její derivace a <varname>ddf</varname> její druhá derivace. <varname>odhad</varname> je počáteční odhad. 
Funkce vrací výsledek po dvou úspěšných hodnotách, které každá spadají do <varname>epsilon</varname> nebo po 
<varname>maxn</varname> pokusech, v kterémžto případě vrací <constant>null</constant>, což značí 
selhání.</para>
+         <para>Viz také <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link> 
a <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.</para>
+         <para>Příklad vyhledání druhé odmocniny z 10: <screen><prompt>genius&gt;</prompt> 
<userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
+</screen></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://en.wikipedia.org/wiki/Halley%27s_method";>Wikipedia</ulink> (text je v angličtině).</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethod"/>NewtonsMethod</term>
+         <listitem>
+          <synopsis>NewtonsMethod (f,df,odhad,epsilon,maxn)</synopsis>
+         <para>Najde nuly pomocí metody tečen (Newtonovy metody). <varname>f</varname> je funkce a 
<varname>df</varname> je její derivace. <varname>odhad</varname> je počáteční odhad. Funkce vrací výsledek po 
dvou úspěšných hodnotách, které každá spadají do <varname>epsilon</varname> nebo po <varname>maxn</varname> 
pokusech, v kterémžto případě vrací <constant>null</constant>, což značí selhání.</para>
+         <para>Viz také <link 
linkend="gel-function-NewtonsMethodPoly"><function>NewtonsMethodPoly</function></link> a <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.</para>
+         <para>Příklad vyhledání druhé odmocniny z 10: <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
+</screen></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Metoda_te%C4%8Den";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
+         <listitem>
+          <synopsis>PolynomialRoots (p)</synopsis>
+          <para>Vypočítat kořeny polynomu (1. až 4. stupně) pomocí jedné z rovnic pro takovéto polynomy. 
Polynom by měl být zadán jako vektor koeficientů. Tj. <userinput>4*x^3 + 2*x + 1</userinput> odpovídá vektoru 
<userinput>[1,2,0,4]</userinput>. Vrací sloupcový vektor řešení.</para>
+         <para>Funkce volá <link linkend="gel-function-QuadraticFormula">QuadraticFormula</link>, <link 
linkend="gel-function-CubicFormula">CubicFormula</link> a <link 
linkend="gel-function-QuarticFormula">QuarticFormula</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
+         <listitem>
+          <synopsis>QuadraticFormula (p)</synopsis>
+          <para>Vypočítat kořeny kvadratického (2. stupně) polynomu pomocí kvadratické rovnice. Polynom by 
měl být zadán jako vektor koeficientů. Tj. <userinput>3*x^2 + 2*x + 1</userinput> odpovídá vektoru 
<userinput>[1,2,3]</userinput>. Vrací sloupcový vektor dvou řešení.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/QuadraticFormula";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/QuadraticFormula.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://en.wikipedia.org/wiki/Quadratic_formula";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
+         <listitem>
+          <synopsis>QuarticFormula (p)</synopsis>
+          <para>Vypočítat kořeny kvartického (4. stupně) polynomu pomocí kvartické rovnice. Polynom by měl 
být zadán jako vektor koeficientů. Tj. <userinput>5*x^4 + 2*x + 1</userinput> odpovídá vektoru 
<userinput>[1,2,0,0,5]</userinput>. Vrací sloupcový vektor čtyř řešení.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://planetmath.org/QuarticFormula";>Planetmath</ulink> (text je v angličtině), <ulink 
url="http://mathworld.wolfram.com/QuarticEquation.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://en.wikipedia.org/wiki/Quartic_equation";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
+         <listitem>
+          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
+          <para>Použít klasickou neadaptivní Rungeho-Kuttovu metodu čtvrtého řádu k numerickému řešení 
y'=f(x,y) pro počáteční <varname>x0</varname>, <varname>y0</varname> měnící se do <varname>x1</varname> s 
přírůstky <varname>n</varname>, vrací <varname>y</varname> v <varname>x1</varname>.</para>
+         <para>Systémy je možné vyřešit jednoduše tak, že <varname>y</varname> musí být všude (sloupcový) 
vektor. To znamená, že <varname>y0</varname> může být vektor v případech, kdy by <varname>f</varname> mělo 
přebírat <varname>x</varname> a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné 
velikosti.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Numerick%C3%A9_%C5%99e%C5%A1en%C3%AD_oby%C4%8Dejn%C3%BDch_diferenci%C3%A1ln%C3%ADch_rovnic#Metody_Runge-Kutta";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
+         <listitem>
+          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
+          <para>Použít klasickou neadaptivní metodu Runge-Kutta čtvrtého řádu k numerickému řešení y'=f(x,y) 
pro počáteční <varname>x0</varname>, <varname>y0</varname> měnící se do <varname>x1</varname> s přírůstky 
<varname>n</varname> a vrátit matici <userinput>n+1</userinput> krát 2 s hodnotami <varname>x</varname> a 
<varname>y</varname>. Vhodné pro zapojení do <link 
linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> nebo <link 
linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.</para>
+         <para>Příklad: <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponenciální vývoj");</userinput>
+</screen></para>
+         <para>Systémy je možné vyřešit jednoduše tak, že <varname>y</varname> musí být všude (sloupcový) 
vektor. To znamená, že <varname>y0</varname> může být vektor v případech, kdy by <varname>f</varname> mělo 
přebírat <varname>x</varname> a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné 
velikosti.</para>
+         <para>Výstup pro systém je nicméně matice n krát 2 s druhou položkou v podobě vektoru. Když si 
přejete vykreslit čáru, ujistěte se, že používáte řádkové vektory a pak převeďte matici na vektor pomocí 
<link linkend="gel-function-ExpandMatrix">ExpandMatrix</link> a vyberte si pravý sloupec. Například: 
<screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","První");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Druhý");</userinput>
+</screen></para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Numerick%C3%A9_%C5%99e%C5%A1en%C3%AD_oby%C4%8Dejn%C3%BDch_diferenci%C3%A1ln%C3%ADch_rovnic#Metody_Runge-Kutta";>Wikipedia</ulink>.</para>
+         <para>Verze 1.0.10 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-statistics">
+      <title>Statistika</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Average"/>Average</term>
+         <listitem>
+          <synopsis>Average (m)</synopsis>
+          <para>Alternativní názvy: 
<function>average</function><function>Mean</function><function>mean</function></para>
+          <para>Vypočítat průměr (aritmetickou střední hodnotu) z celé matice.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
+         <listitem>
+          <synopsis>GaussDistribution (x,sigma)</synopsis>
+         <para>Integrál Gaussovy funkce od 0 do <varname>x</varname> (oblast pod normální křivkou).</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Norm%C3%A1ln%C3%AD_rozd%C4%9Blen%C3%AD";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
+         <listitem>
+          <synopsis>GaussFunction (x,sigma)</synopsis>
+          <para>Normalizovaného Gaussova funkce rozdělení (normální křivka).</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Norm%C3%A1ln%C3%AD_rozd%C4%9Blen%C3%AD";>Wikipedia</ulink>.</para>
+
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Median"/>Median</term>
+         <listitem>
+          <synopsis>Median (m)</synopsis>
+          <para>Alternativní názvy: <function>median</function></para>
+          <para>Vypočítat medián z celé matice.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Medi%C3%A1n";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>PopulationStandardDeviation (m)</synopsis>
+          <para>Alternativní názvy: <function>stdevp</function></para>
+          <para>Spočítat standardní odchylku souboru celé matice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
+         <listitem>
+          <synopsis>RowAverage (m)</synopsis>
+          <para>Alternativní názvy: <function>RowMean</function></para>
+         <para>Vypočítat průměr každého řádku v matici. Tj. vypočitat aritmetickou střední hodnotu.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
+         <listitem>
+          <synopsis>RowMedian (m)</synopsis>
+          <para>Vypočítat medián každého řádku v matici a vrátit sloupcový vektor mediánů.</para>
+          <para>Více informací najdete v encyklopediích <ulink 
url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> (text je v angličtině) a <ulink 
url="https://cs.wikipedia.org/wiki/Medi%C3%A1n";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
+          <para>Alternativní názvy: <function>rowstdevp</function></para>
+          <para>Spočítat standardní odchylku souboru řádků matice a vrátit svislý vektor.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
+         <listitem>
+          <synopsis>RowStandardDeviation (m)</synopsis>
+          <para>Alternativní názvy: <function>rowstdev</function></para>
+          <para>Spočítat standardní odchylku řádků matice a vrátit svislý vektor.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+        <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
+         <listitem>
+          <synopsis>StandardDeviation (m)</synopsis>
+          <para>Alternativní názvy: <function>stdev</function></para>
+          <para>Spočítat standardní odchylku celé matice.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-polynomials">
+      <title>Polynomy</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
+         <listitem>
+          <synopsis>AddPoly (p1,p2)</synopsis>
+          <para>Sečíst dva polynomy (vektory).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
+         <listitem>
+          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
+          <para>Podělit dva polynomy (jako vektory) pomocí dlouhého dělení. Vrátit rozdíl dvou polynomů. 
Volitelný argument <varname>r</varname> se použije k vrácení zbytku. Zbytek bude mít nižší řád, než polynom 
<varname>q</varname>.</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="http://planetmath.org/PolynomialLongDivision";>Planetmath</ulink> (text je v angličtině).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
+         <listitem>
+          <synopsis>IsPoly (p)</synopsis>
+          <para>Zkontrolovat, zda je vektor použitelný jako polynom.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
+         <listitem>
+          <synopsis>MultiplyPoly (p1,p2)</synopsis>
+          <para>Vynásobit dva polynomy (jako vektory).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
+         <listitem>
+          <synopsis>NewtonsMethodPoly (poly,odhad,epsilon,maxn)</synopsis>
+         <para>Najde kořeny polynomu pomocí metody tečen (Newtonovy metody). <varname>poly</varname> je 
polynom v podobě vektoru a <varname>odhad</varname> je počáteční odhad. Funkce vrací výsledek po dvou 
úspěšných hodnotách, které každá spadají do <varname>epsilon</varname> nebo po <varname>maxn</varname> 
pokusech, v kterémžto případě vrací <constant>null</constant>, což značí selhání.</para>
+         <para>Viz také <link 
linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link>.</para>
+         <para>Příklad vyhledání druhé odmocniny z 10: <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
+</screen></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Metoda_te%C4%8Den";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
+         <listitem>
+          <synopsis>Poly2ndDerivative (p)</synopsis>
+          <para>Vypočítat druhou derivaci polynomu (jako vektoru).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
+         <listitem>
+          <synopsis>PolyDerivative (p)</synopsis>
+          <para>Derivovat polynom (jako vektor).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
+         <listitem>
+          <synopsis>PolyToFunction (p)</synopsis>
+          <para>Vytvořit funkci z polynomu (jako vektoru).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
+         <listitem>
+          <synopsis>PolyToString (p,prom...)</synopsis>
+          <para>Vytvořit řetězec z polynomu (jako vektoru).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
+         <listitem>
+          <synopsis>SubtractPoly (p1,p2)</synopsis>
+          <para>Odečíst dva polynomy (jako vektory).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
+         <listitem>
+          <synopsis>TrimPoly (p)</synopsis>
+          <para>Odstranit nuly z polynomu (jako vektoru).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-set-theory">
+      <title>Teorie množin</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Intersection"/>Intersection</term>
+         <listitem>
+          <synopsis>Intersection (X,Y)</synopsis>
+          <para>Vrátit průnik množin X a Y (X a Y jsou vektory považované za množiny).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIn"/>IsIn</term>
+         <listitem>
+          <synopsis>IsIn (x,X)</synopsis>
+         <para>Vrátit <constant>true</constant> (pravda), pokud je x prvkem množiny X (kde X je vektor 
považovaný za množinu).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
+         <listitem>
+          <synopsis>IsSubset (X, Y)</synopsis>
+         <para>Vrátit <constant>true</constant> (pravda), pokud X je podmnožinu Y (X a Y jsou vektory 
považované za množiny).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
+         <listitem>
+          <synopsis>MakeSet (X)</synopsis>
+          <para>Vrátit vektor, ve kterém se každý prvek X vyskytuje jen jednou.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
+         <listitem>
+          <synopsis>SetMinus (X,Y)</synopsis>
+          <para>Vrátit rozdíl množin X-Y (X a Y jsou vektory považované za množiny).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Union"/>Union</term>
+         <listitem>
+          <synopsis>Union (X,Y)</synopsis>
+          <para>Vrátit sjednocení množin X a Y (X a Y jsou vektory považované za množiny).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-commutative-algebra">
+      <title>Komutativní algebra</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
+         <listitem>
+          <synopsis>MacaulayBound (c,d)</synopsis>
+          <para>Pro Hilbertovu funkci jde o c pro stupeň d, daný Macaulayho ohraničením pro Hilbertovu 
funkci stupně d+1 (operátor c^&lt;d&gt; z Greenova důkazu)</para>
+         <para>Verze 1.0.15 a novější.</para>
+         </listitem>
+        </varlistentry>
+       
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
+         <listitem>
+          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
+          <para>Operátor c_&lt;d&gt; z Greenova důkazu Macaulayova teorému</para>
+         <para>Verze 1.0.15 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
+         <listitem>
+          <synopsis>MacaulayRep (c,d)</synopsis>
+          <para>Vrátit d-tou Macaulayho reprezentaci celého kladného čísla c.</para>
+         <para>Verze 1.0.15 a novější.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-miscellaneous">
+      <title>Různé</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
+         <listitem>
+          <synopsis>ASCIIToString (vektor)</synopsis>
+          <para>Převést vektor hodnot ASCII na řetězec. Viz také <link 
linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.</para>
+          <para>Příklad: <screen><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
+= "abc"
+</screen></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/ASCII";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
+         <listitem>
+          <synopsis>AlphabetToString (vektor,abeceda)</synopsis>
+         <para>Převést vektor na hodnoty indexů písmen indexované od 0 (nacházejících se v textovém řetězci) 
na řetězec. Vektor <constant>null</constant> vede na prázdný řetězec. Viz také <link 
linkend="gel-function-StringToAlphabet"><function>StringToAlphabet</function></link>.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>AlphabetToString([1,2,3,0,0],"abcd")</userinput>
+= "bcdaa"
+<prompt>genius&gt;</prompt> <userinput>AlphabetToString(null,"abcd")</userinput>
+= ""
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
+         <listitem>
+          <synopsis>StringToASCII (retezec)</synopsis>
+         <para>Převést řetězec na (řádkový) vektor hodnot ASCII. Viz také <link 
linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.</para>
+          <para>Příklad: <screen><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
+= [97, 98, 99]
+</screen></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/ASCII";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
+         <listitem>
+          <synopsis>StringToAlphabet (retezec,abeceda)</synopsis>
+         <para>Převést řetězec na (řádkový) vektor na hodnoty indexů písmen indexované od 0 (nacházejících 
se v textovém řetězci), případně -1 pro neznámá písmena. Prázdný řetězec vede na <constant>null</constant>. 
Viz také <link linkend="gel-function-AlphabetToString"><function>AlphabetToString</function></link>.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>StringToAlphabet("cca","abcd")</userinput>
+= [2, 2, 0]
+<prompt>genius&gt;</prompt> <userinput>StringToAlphabet("ccag","abcd")</userinput>
+= [2, 2, 0, -1]
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-symbolic">
+      <title>Symbolické operace</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
+         <listitem>
+          <synopsis>SymbolicDerivative (f)</synopsis>
+          <para>Zkusit symbolicky derivovat funkci f, kde f je funkce jedné proměnné.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(sin)</userinput>
+= (`(x)=cos(x))
+<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
+= (`(x)=(7*(2*x)))
+</screen></para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Derivace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicDerivativeTry (f)</synopsis>
+         <para>Zkusit symbolicky derivovat funkci f, kde f je funkce jedné proměnné, při neúspěchu vrátit 
potichu <constant>null</constant>. (Viz <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Derivace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
+          <para>Zkusit symbolicky n-krát derivovat funkci. (Viz <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Derivace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
+         <para>Zkusit symbolicky n-krát derivovat funkci, při neúspěchu vrátit potichu 
<constant>null</constant>. (Viz <link 
linkend="gel-function-SymbolicNthDerivative"><function>SymbolicNthDerivative</function></link>)</para>
+          <para>Více informací najdete v encyklopedii <ulink 
url="https://cs.wikipedia.org/wiki/Derivace";>Wikipedia</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
+         <listitem>
+          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
+         <para>Zkusit sestavit Taylorův polynom do n-tého řádku se středem x0, který aproximuje zadanou 
funkci. (Viz <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-plotting">
+      <title>Vykreslování</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
+         <listitem>
+          <synopsis>ExportPlot (soubor,typ)</synopsis>
+          <synopsis>ExportPlot (soubor)</synopsis>
+          <para>Exportovat obsah okna s grafem do souboru. Typ je řetězec, který určuje typ souboru, který 
se má použít – „png“, „eps“ nebo „ps“. Když typ souboru není zadán, určí se podle přípony, která by v takovém 
případě mela být „.png“, „.eps“ nebo „.ps“.</para>
+         <para>Upozorňujeme, že soubory se přepisují bez dotazu.</para>
+         <para>Při úspěšném exportu je vrácena hodnota pravda. Jinak je vypsána chyba a vyvolána 
výjimka.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> <userinput>ExportPlot("soubor.png")</userinput>
+<prompt>genius&gt;</prompt> <userinput>ExportPlot("/složka/soubor","eps")</userinput>
+</screen></para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
+         <listitem>
+          <synopsis>LinePlot (fce1,fce2,fce3,...)</synopsis>
+          <synopsis>LinePlot (fce1,fce2,fce3,x1,x2)</synopsis>
+          <synopsis>LinePlot (fce1,fce2,fce3,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlot (fce1,fce2,fce3,[x1,x2])</synopsis>
+          <synopsis>LinePlot (fce1,fce2,fce3,[x1,x2,y1,y2])</synopsis>
+          <para>Vykreslí funkci (nebo několik funkcí) v podobě čárového grafu. Prvních (až 10) argumentů 
jsou funkce, volitelně můžete zadat meze vykreslovaného okna jako souřadnice <varname>x1</varname>, 
<varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Pokud žádné meze nejsou zadány, použijí 
se aktuálně nastavené meze (viz <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Pokud nejsou zadány jen 
meze v ose y, funkce se propočítají a vezme se jejich minimum a maximu.</para>
+          <para>Parametr <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ovládá 
vykreslování legendy.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
+         <listitem>
+          <synopsis>LinePlotClear ()</synopsis>
+          <para>Zobrazí okno pro vykreslování čar a vymaže funkce a ostatní čáry, které jsou v něm 
vykresleny.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
+         <listitem>
+          <synopsis>LinePlotCParametric (fce,...)</synopsis>
+          <synopsis>LinePlotCParametric (fce,t1,t2,tprirust)</synopsis>
+          <synopsis>LinePlotCParametric (fce,t1,t2,tprirust,x1,x2,y1,y2)</synopsis>
+          <para>Vykreslit parametrickou funkci komplexní hodnoty v podobě čárového grafu. Jako první se 
předává funkce, která vrací <computeroutput>x+iy</computeroutput>, následovaná volitelnými omezeními 
<userinput>t1,t2,tprirust</userinput> pro <varname>t</varname> a pak mezemi v podobě 
<userinput>x1,x2,y1,y2</userinput>.</para>
+         <para>Pokud žádné meze nejsou zadány, použijí se aktuálně nastavené meze (viz <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Místo mezí x a y je možné 
zadat řetězec "fit" a meze se pak zvolí podle maximálního rozsahu grafu.</para>
+          <para>Parametr <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ovládá 
vykreslování legendy.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
+         <listitem>
+          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
+          <synopsis>LinePlotDrawLine (v,...)</synopsis>
+          <para>Vykreslit čáru z <varname>x1</varname>,<varname>y1</varname> do 
<varname>x2</varname>,<varname>y2</varname>. <varname>x1</varname>,<varname>y1</varname>, 
<varname>x2</varname>,<varname>y2</varname> může být pro delší lomené čáry nahrazeno maticí 
<varname>n</varname> krát 2. Připadně vektor <varname>v</varname> může být sloupcový vektor komplexních 
čísel, což je matice <varname>n</varname> krát 1 a jednotlivá komplexní čísla jsou pak považována za body v 
rovině.</para>
+          <para>Mohou být přidány dodatečné parametry, které určují barvu, tloušťku a šipky čáry a 
vykreslení okna nebo legendy. Stačí přidat argument v podobě řetězce <userinput>"color"</userinput>, 
<userinput>"thickness"</userinput>, <userinput>"window"</userinput>, <userinput>"arrow"</userinput> nebo 
<userinput>"legend"</userinput> a za ním určit barvu, tloušťku, okno jako 4prvkový vektor, typ šipky nebo 
legendu. (Šipka a okno jsou podporovány od verze 1.0.6.)</para>
+         <para>Pokud je čára považovaná za vyplněný mnohoúhelník, vyplněný danou barvou, můžete zadat 
argument <userinput>"filled"</userinput>. K dispozici od verze 1.0.22.</para>
+         <para>Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou rozpozná 
GTK, jako <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, apod. 
Nebo druhou možností je zadat barvu ve formátu RGB jako <userinput>"#rgb"</userinput>, 
<userinput>"#rrggbb"</userinput> nebo <userinput>"#rrrrggggbbbb"</userinput>, kde r, g a b jsou číslice 
šestnáctkové soustavy červené, zelené a modré složky barvy. A nakonec třetí možností, od verze 1.0.18, je 
také určení barvy vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 
1, např. <userinput>[1.0,0.5,0.1]</userinput>.</para>
+         <para>Okno by mělo být zadáno buď obvyklým způsobem jako <userinput>[x1,x2,y1,y2]</userinput> nebo 
alternativně může být použit řetězec <userinput>"fit"</userinput>, v kterémž to případě bude rozsah x určen 
přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.</para>
+         <para>Specifikace šipky by měla být <userinput>"origin"</userinput> (počátek), 
<userinput>"end"</userinput> (konec), <userinput>"both"</userinput> (obojí) nebo 
<userinput>"none"</userinput> (nic).</para>
+         <para>A nakonec legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. 
Samozřejmě jen v případě, že se legenda tiskne.</para>
+         <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","Řešení")</userinput>
+<prompt>genius&gt;</prompt> <userinput>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</userinput>
+</screen></para>
+         <para>Na rozdíl od většiny ostatních funkcí, u kterých je jedno, jestli je předán sloupcový nebo 
řádkový vektor, při zadávání bodů v podobě vektoru komplexních čísel je kvůli možným nejednoznačnostem nutné 
vždy zadat sloupcový vektor.</para>
+         <para>Zadávání <varname>v</varname> jako sloupcového vektoru komplexních čísel je implementováno od 
verze 1.0.22.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
+         <listitem>
+          <synopsis>LinePlotDrawPoints (x,y,...)</synopsis>
+          <synopsis>LinePlotDrawPoints (v,...)</synopsis>
+          <para>Vykreslit bod v <varname>x</varname>, <varname>y</varname>. Vstupem může být matice 
<varname>n</varname> krát 2 pro <varname>n</varname> různých bodů. Tato funkce má v podstatě stejné vstupní 
údaje jako <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>. Případně vektor 
<varname>v</varname> může být sloupcový vektor komplexních čísel, což je matice <varname>n</varname> krát 1 a 
jednotlivá komplexní čísla jsou považována za body v rovině.</para>
+          <para>Mohou být přidány dodatečné parametry, které určují barvu a tloušťku čáry a vykreslení okna 
nebo legendy. Stačí přidat argument v podobě řetězce <userinput>"color"</userinput>, 
<userinput>"thickness"</userinput>, <userinput>"window"</userinput> nebo <userinput>"legend"</userinput> a za 
ním určit barvu, tloušťku, okno jako 4prvkový vektor nebo legendu.</para>
+         <para>Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou rozpozná 
GTK, jako <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, apod. 
Nebo druhou možností je zadat barvu ve formátu RGB jako <userinput>"#rgb"</userinput>, 
<userinput>"#rrggbb"</userinput> nebo <userinput>"#rrrrggggbbbb"</userinput>, kde r, g a b jsou číslice 
šestnáctkové soustavy červené, zelené a modré složky barvy. A nakonec třetí možností je také určení barvy 
vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1.</para>
+         <para>Okno by mělo být zadáno buď obvyklým způsobem jako <userinput>[x1,x2,y1,y2]</userinput> nebo 
alternativně může být použit řetězec <userinput>"fit"</userinput>, v kterémž to případě bude rozsah x určen 
přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.</para>
+         <para>A nakonec legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. 
Samozřejmě jen v případě, že se legenda tiskne.</para>
+         <para>Examples: <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","Řešení")</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","Sedmá 
odmocnina z jednotky")</userinput>
+</screen></para>
+         <para>Na rozdíl od většiny ostatních funkcí, u kterých je jedno, jestli jim předáte sloupcový nebo 
řádkový vektor, může u předávání bodu v podobě vektoru komplexních čísel docházet k nejednoznačnostem. Proto 
musíte vždy předat sloupcový vektor. Všimněte si v posledním příkladu transpozice vektoru 
<userinput>0:6</userinput>, aby se z něj stal sloupcový vektor.</para>
+         <para>Dostupné od verze 1.0.18. Zadávání <varname>v</varname> v podobě sloupcového vektoru 
komplexních čísel je implementováno od verze 1.0.22.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
+         <listitem>
+          <synopsis>LinePlotMouseLocation ()</synopsis>
+          <para>Vrátit řádkový vektor v kreslení odpovídající aktuální pozici myši. Pokud kreslení není 
viditelné, vypíše se chyba a vrátí <constant>null</constant>. V takovém případě byste měli spustit <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> nebo <link 
linkend="gel-function-LinePlotClear"><function>LinePlotClear</function></link>, abyste přepnuli okno s grafem 
do režimu kreslení. Viz také <link 
linkend="gel-function-LinePlotWaitForClick"><function>LinePlotWaitForClick</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
+         <listitem>
+          <synopsis>LinePlotParametric (xfce,yfce,...)</synopsis>
+          <synopsis>LinePlotParametric (xfce,yfce,t1,t2,tprirust)</synopsis>
+          <synopsis>LinePlotParametric (xfce,yfce,t1,t2,tprirust,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlotParametric (xfce,yfce,t1,t2,tprirust,[x1,x2,y1,y2])</synopsis>
+          <synopsis>LinePlotParametric (xfce,yfce,t1,t2,tprirust, "fit")</synopsis>
+          <para>Vykreslit parametrickou funkci v podobě čárového grafu. Jako první se zadávají funkce pro 
<varname>x</varname> a <varname>y</varname>, následované volitelnými omezeními 
<userinput>t1,t2,tprirust</userinput> pro <varname>t</varname> a pak mezemi v podobě 
<userinput>x1,x2,y1,y2</userinput>.</para>
+         <para>Pokud žádné meze nejsou zadány, použijí se aktuálně nastavené meze (viz <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Místo mezí x a y je možné 
zadat řetězec "fit" a meze se pak zvolí podle maximálního rozsahu grafu.</para>
+          <para>Parametr <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ovládá 
vykreslování legendy.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
+         <listitem>
+          <synopsis>LinePlotWaitForClick ()</synopsis>
+          <para>Pokud je v režimu kreslení, čeká na kliknutí v kreslícím okně a následně vrátí pozici 
kliknutí v podobě řádkového vektoru. Pokud je okno zavřené, vrátí se funkce okamžitě s hodnotou 
<constant>null</constant>. Pokud okno není v režimu kreslení, přepne jej do něj a, pokud není zobrazené, 
zobrazí jej. Viz také <link 
linkend="gel-function-LinePlotMouseLocation"><function>LinePlotMouseLocation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasFreeze"/>PlotCanvasFreeze</term>
+         <listitem>
+          <synopsis>PlotCanvasFreeze ()</synopsis>
+          <para>Dočasně zmrazí vykreslování grafu na plátno. To se hodí, když kreslíte spoustu prvků a 
chcete to pozdržet, aby se fyzicky vykreslilo až všechno naráz a předešlo se tím blikání. Až máte veškeré 
kreslení hotovo, měli byste zavolat funkci <link 
linkend="gel-function-PlotCanvasThaw"><function>PlotCanvasThaw</function></link>.</para>
+          <para>Na konci jakéhokoliv provádění je plátno automaticky rozmrazeno, takže by se nemělo stát, že 
zůstane zmrazené. Kupříkladu ve chvíli, kdy se zobrazí nový příkazový řádek, dojde k automatickému 
rozmrazení. Také si všimněte, že volání zmrazení a rozmrazení mohou být zanořená.</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
+         <listitem>
+          <synopsis>PlotCanvasThaw ()</synopsis>
+          <para>Rozmrazí plátno pro vykreslování grafu zmrazené pomocí <link 
linkend="gel-function-PlotCanvasFreeze"><function>PlotCanvasFreeze</function></link> a ihned jej překreslí. 
Platno je také rozmrazeno vždy po skončení provádění libovolného programu.</para>
+         <para>Verze 1.0.18 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
+         <listitem>
+          <synopsis>PlotWindowPresent ()</synopsis>
+          <para>Zobrazí a přenese do popředí vykreslovací okno, případně jej vytvoří, pokud je třeba. 
Normálně je okno vytvořeno, když je zavolána některá z kreslících funkcí, ale nemusí být vždy přeneseno do 
popředí, když je schováno za jinými okny. Proto je dobré volat tento kript, když bylo vykreslovací okno 
vytvořeno již dříve a nyní je schováno za konzolí nebo jinými okny.</para>
+         <para>Verze 1.0.19 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
+         <listitem>
+          <synopsis>SlopefieldClearSolutions ()</synopsis>
+          <para>Vymazat řešení vykreslená funkcí <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
+         <listitem>
+          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
+          <para>Když je aktivní vykreslování směrového pole, vykreslí řešení se zadanou počáteční podmínkou. 
Použita je standardní Rungeho-Kuttova metoda s přírůstkem <varname>dx</varname>. Řešení v grafu zůstanou, 
dokud není zobrazen jiný graf nebo není zavolána funkce <link 
linkend="gel-function-SlopefieldClearSolutions"><function>SlopefieldClearSolutions</function></link>. Pro 
vykreslení řešení můžete použít i grafické rozhraní a počáteční podmínky zadat pomocí myši.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
+         <listitem>
+          <synopsis>SlopefieldPlot (fce)</synopsis>
+          <synopsis>SlopefieldPlot (fce,x1,x2,y1,y2)</synopsis>
+          <para>Vykreslit směrové pole. Funkce <varname>fce</varname> by měla přebírat dvě reálná čísla 
<varname>x</varname> a <varname>y</varname> nebo jedno komplexní číslo. Volitelně můžete zadat meze 
vykreslovacího okna jako souřadnice <varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, 
<varname>y2</varname>. Pokud žádné meze nejsou zadány, použijí se aktuálně nastavení mezí (viz <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
+          <para>Parametr <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ovládá 
vykreslování legendy.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+       <varlistentry>
+        <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
+         <listitem>
+          <synopsis>SurfacePlot (fce)</synopsis>
+          <synopsis>SurfacePlot (fce,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlot (fce,x1,x2,y1,y2)</synopsis>
+          <synopsis>SurfacePlot (fce,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlot (fce,[x1,x2,y1,y2])</synopsis>
+          <para>Vykreslit funkci plochy, která přebírá buď dva argumenty nebo komplexní číslo. Jako první se 
předává funkce, pak následují meze <varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, 
<varname>y2</varname>, <varname>z1</varname>, <varname>z2</varname>. Pokud žádné meze nejsou zadány, použijí 
se aktuálně nastavené meze (viz <link 
linkend="gel-function-LinePlotWindow"><function>SurfacePlotWindow</function></link>). V současnosti umí 
Genius vykreslovat jen funkci jedné plochy.</para>
+          <para>Když nejsou meze zadány, použije se pro ně minimum a maximum funkce.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
+         <listitem>
+          <synopsis>SurfacePlotClear ()</synopsis>
+          <para>Zobrazí okno pro vykreslování povrchů a vymaže funkce a ostatní čáry, které jsou v něm 
vykresleny.</para>
+          <para>Dostupné ve verzi 1.0.19 a novějších.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
+         <listitem>
+          <synopsis>SurfacePlotData (data)</synopsis>
+          <synopsis>SurfacePlotData (data,popisek)</synopsis>
+          <synopsis>SurfacePlotData (data,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,popisek,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotData (data,popisek,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <para>Vykreslit povrch podle dat. Data jsou matice n × 3, jejíž řádky jsou souřadnice x, y a z. 
Případně data mohou být vektor, jehož délka je dělitelná 3 a který obsahuje trojice x, y, z. Data by měla 
obsahovat nejméně 3 body.</para>
+          <para>Volitelně je možné předat popisek a také volitelné meze. Když meze nejsou uvedeny, vypočtou 
se z dat, ale nepoužívá se funkce <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>, pokud ji chcete 
použít, musíte to provést explicitně. Když není předán popisek, použije se prázdný.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,"Moje data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,-1,1,-1,1,0,10)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,SurfacePlotWindow)</userinput>
+</screen></para>
+         <para>Zde je příklad, jak vykreslit graf v polárních souřadnicích a především jak vykreslit funkci 
<userinput>-r^2 * θ</userinput>: <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>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
+</screen></para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
+         <listitem>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2],popisek)</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],popisek)</synopsis>
+          <para>Vykreslit plochu podle pravidelných obdélníkových dat. Data jsou dána v matici n krát m, kde 
řádky jsou souřadnice x a sloupce souřadnice y. Souřadnice x je rozdělena do stejnoměrných n-1 intervalů a 
souřadnice y do stejnoměrných m-1 intervalů. Meze <varname>x1</varname> a <varname>x2</varname> udávájí 
rozsah na ose x, který se má použit a obdobně meze <varname>y1</varname> a <varname>y2</varname> udávají 
rozsah na ose y. Pokud nejsou uvedeny meze <varname>z1</varname> a <varname>z2</varname>, jsou vypočteny z 
dat (budou to extrémní hodnoty v datech).</para>
+          <para>Volitelně se může zadat popisek, pokud zadán není, použije se prázdný.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"Moje data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = 
(0.1*i-1)^2-(0.1*j)^2;</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"poloviční sedlo")</userinput>
+</screen></para>
+         <para>Verze 1.0.16 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
+          <synopsis>SurfacePlotDrawLine (v,...)</synopsis>
+          <para>Vykreslit čáru z <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname> do 
<varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname>. <varname>x1</varname>, 
<varname>y1</varname>, <varname>z1</varname>, <varname>x2</varname>, <varname>y2</varname>, 
<varname>z2</varname> může být pro delší lomené čáry nahrazeno maticí <varname>n</varname> krát 3.</para>
+          <para>Mohou být přidány dodatečné parametry, které určují barvu a tloušťku čáry a vykreslení okna 
nebo legendy. Stačí přidat argument v podobě řetězce <userinput>"color"</userinput>, 
<userinput>"thickness"</userinput>, <userinput>"window"</userinput> nebo <userinput>"legend"</userinput> a za 
ním určit barvu, tloušťku, okno jako 6prvkový vektor nebo legendu.</para>
+         <para>Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou rozpozná 
GTK, jako <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, apod. 
Nebo druhou možností je zadat barvu ve formátu RGB jako <userinput>"#rgb"</userinput>, 
<userinput>"#rrggbb"</userinput> nebo <userinput>"#rrrrggggbbbb"</userinput>, kde r, g a b jsou číslice 
šestnáctkové soustavy červené, zelené a modré složky barvy. A nakonec třetí možností, od verze 1.0.18, je 
také určení barvy vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 
1, např. <userinput>[1.0,0.5,0.1]</userinput>.</para>
+         <para>Okno by mělo být zadáno buď obvyklým způsobem jako <userinput>[x1,x2,y1,y2,z1,z2]</userinput> 
nebo alternativně může být použit řetězec <userinput>"fit"</userinput>, v kterémž to případě bude rozsah x 
určen přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.</para>
+         <para>A nakonec legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. 
Samozřejmě jen v případě, že se legenda tiskne.</para>
+         <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])</userinput>
+</screen></para>
+         <para>Dostupné ve verzi 1.0.19 a novějších.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawPoints (x,y,z,...)</synopsis>
+          <synopsis>SurfacePlotDrawPoints (v,...)</synopsis>
+          <para>Vykreslit bod v <varname>x</varname>,<varname>y</varname>,<varname>z</varname>. Vstupem může 
být matice <varname>n</varname> krát 3 pro <varname>n</varname> různých bodů. Tato funkce má v podstatě 
stejné vstupní údaje jako <link linkend="gel-function-SurfacePlotDrawLine">SurfacePlotDrawLine</link>.</para>
+          <para>Mohou být přidány dodatečné parametry, které určují barvu a tloušťku čáry a vykreslení okna 
nebo legendy. Stačí přidat argument v podobě řetězce <userinput>"color"</userinput>, 
<userinput>"thickness"</userinput>, <userinput>"window"</userinput> nebo <userinput>"legend"</userinput> a za 
ním určit barvu, tloušťku, okno jako 6prvkový vektor nebo legendu.</para>
+         <para>Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou rozpozná 
GTK, jako <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, apod. 
Nebo druhou možností je zadat barvu ve formátu RGB jako <userinput>"#rgb"</userinput>, 
<userinput>"#rrggbb"</userinput> nebo <userinput>"#rrrrggggbbbb"</userinput>, kde r, g a b jsou číslice 
šestnáctkové soustavy červené, zelené a modré složky barvy. A nakonec třetí možností je také určení barvy 
vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1.</para>
+         <para>Okno by mělo být zadáno buď obvyklým způsobem jako <userinput>[x1,x2,y1,y2,z1,z2]</userinput> 
nebo alternativně může být použit řetězec <userinput>"fit"</userinput>, v kterémž to případě bude rozsah x 
určen přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.</para>
+         <para>A nakonec legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. 
Samozřejmě jen v případě, že se legenda tiskne.</para>
+         <para>Příklady: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])</userinput>
+</screen></para>
+         <para>Dostupné ve verzi 1.0.19 a novějších.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
+         <listitem>
+          <synopsis>VectorfieldClearSolutions ()</synopsis>
+          <para>Vymazat řešení vykreslené funkcí <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>.</para>
+         <para>Verze 1.0.6 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
+         <listitem>
+          <synopsis>VectorfieldDrawSolution (x, y, dt, tdelka)</synopsis>
+          <para>Když je aktivní vykreslování vektorového pole, vykreslí řešení se zadanou počáteční 
podmínkou. Použita je standardní Rungeho-Kuttova metoda s přírůstkem <varname>dt</varname> pro interval délky 
<varname>tdelka</varname>. Řešení v grafu zůstanou, dokud není zobrazen jiný graf nebo není zavolána funkce 
<link linkend="gel-function-VectorfieldClearSolutions"><function>VectorfieldClearSolutions</function></link>. 
Pro vykreslení řešení můžete použít i grafické rozhraní a počáteční podmínky zadat pomocí myši.</para>
+         <para>Verze 1.0.6 a novější.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
+         <listitem>
+          <synopsis>VectorfieldPlot (fcex, fcey)</synopsis>
+          <synopsis>VectorfieldPlot (fcex, fcey, x1, x2, y1, y2)</synopsis>
+          <para>Vykreslit dvourozměrné vektorové pole. Funkce <varname>fcex</varname> by měla být dx/dt 
vektorového pole a funkce <varname>fcey</varname> by měla být dy/dt vektorového pole. Funkce by měly přebírat 
dvě reálná čísla <varname>x</varname> a <varname>y</varname> nebo jedno komplexní číslo. Pokud je parametr 
<link linkend="gel-function-VectorfieldNormalized"><function>VectorfieldNormalized</function></link> nastaven 
na <constant>true</constant>, pak je velikost vektorů normalizována. To znamená, že je zobrazen jen směr a 
velikost ne.</para>
+         <para>Volitelně můžete zadat meze vykreslovaného okna jako souřadnice <varname>x1</varname>, 
<varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Pokud žádné meze nejsou zadány, použijí 
se aktuálně nastavené meze (viz <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
+          <para>Parametr <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ovládá 
vykreslování legendy.</para>
+          <para>Příklady: <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, 
`(x,y)=y^2-x, -1, 1, -1, 1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL examples ============================= -->
+  <chapter id="genius-gel-example-programs">
+    <title>Příklad programů v jazyce GEL</title>
+
+    <para>Zde je funkce, která vypočítává faktoriály: <programlisting><![CDATA[function f(x) = if x <= 1 
then 1 else (f(x-1)*x)
+]]></programlisting></para>
+    <para>Naformátovaná odsazováním vypadá takto: <programlisting><![CDATA[function f(x) = (
+  if x <= 1 then
+    1
+  else
+    (f(x-1)*x)
+)
+]]></programlisting></para>
+    <para>Tady je přímá portace funkce pro výpočet faktoriálu z manuálové stránky 
<application>bc</application>. Syntaxe vypadá podobně jako u <application>bc</application>, s tím rozdílem v 
jazyce GEL, že poslední výraz je to, co je vráceno. Pokud by se místo toho použila funkce 
<literal>return</literal>, vypadalo by to takto: <programlisting><![CDATA[function f(x) = (
+  if (x <= 1) then return (1);
+  return (f(x-1) * x)
+)
+]]></programlisting></para>
+
+    <para>Nejjednodušším způsobem, jak definovat funkci pro výpočet faktoriálu by bylo použití násobení ve 
smyčce, jak je ukázáno níže. Nejde pravděpodobně o nejkratší a nejrychlejší řešení, ale je to nejlépe čitelná 
verze. <programlisting>function f(x) = prod k=1 to x do k
+</programlisting></para>
+
+    <para>Následuje větší příklad, který v podstatě předefinovává interní funkci <link 
linkend="gel-function-ref"><function>ref</function></link>, aby vypočítávala odstupňovaný kanonický tvar 
matice. Funkce <function>ref</function> je vestavěná a mnohem rychlejší, ale tento příklad má ilustrovat 
některé komplexnější vlastnosti jazyka GEL. <programlisting><![CDATA[# Calculate the row-echelon form of a 
matrix
+function MyOwnREF(m) = (
+  if not IsMatrix(m) or not IsValueOnly(m) then
+    (error("MyOwnREF: argument not a value only matrix");bailout);
+  s := min(rows(m), columns(m));
+  i := 1;
+  d := 1;
+  while d <= s and i <= columns(m) do (
+
+    # This just makes the anchor element non-zero if at
+    # all possible
+    if m@(d,i) == 0 then (
+      j := d+1;
+      while j <= rows(m) do (
+        if m@(j,i) == 0 then
+          (j=j+1;continue);
+        a := m@(j,);
+        m@(j,) := m@(d,);
+        m@(d,) := a;
+        j := j+1;
+        break
+      )
+    );
+    if m@(d,i) == 0 then
+      (i:=i+1;continue);
+    
+    # Here comes the actual zeroing of all but the anchor
+    # element rows
+    j := d+1;
+    while j <= rows(m)) do (
+      if m@(j,i) != 0 then (
+        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
+      );
+      j := j+1
+    );
+    m@(d,) := m@(d,) * (1/m@(d,i));
+    d := d+1;
+    i := i+1
+  );
+  m
+)
+]]></programlisting></para>
+
+  </chapter>
+
+  <!-- ============= Customization ============================ -->
+  <chapter id="genius-prefs"> 
+    <title>Nastavení</title> 
+
+    <para>Pokud chcete upravit nastavení <application>matematického nástroje Genius</application>, zvolte 
<menuchoice><guimenu>Nastavení</guimenu><guimenuitem>Předvolby</guimenuitem></menuchoice>. Oproti parametrům, 
které poskytuje standardní knihovna je zde navíc pár základních parametrů poskytovaných kalkulátorem. Ty 
určují, jak se kalkulátor má chovat.</para>
+
+    <note>
+      <title>Změna nastavení pomocí GEL</title>
+      <para>Většina nastavení v aplikaci Genius jsou ve skutečnosti globální proměnné, u kterých můžete 
zjistit hodnotu a hodnotu jim přiřadit, stejně jako u normálních proměnných. Viz <xref 
linkend="genius-gel-variables"/> o vyhodnocování a přiřazování proměnných a  <xref 
linkend="genius-gel-function-parameters"/> pro seznam nastavení, která lze tímto způsobem měnit.</para>
+      <para>Jako příklad uveďme, jak můžete nastavit maximální počet číslic ve výsledcích na 12 tím, že 
napíšete: <programlisting>MaxDigits = 12
+</programlisting></para>
+    </note>
+
+    <sect1 id="genius-prefs-output"> 
+      <title>Výstup</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum číslic na výstupu</guilabel>
+      </term> 
+         <listitem>
+                 <para>Maximum číslic ve výsledcích (<link 
linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Výsledky jako čísla s plovoucí desetinnou čárkou</guilabel>
+      </term> 
+         <listitem>
+                 <para>Zda by se výsledky měly vždy vypisovat v podobě desetinných čísel (<link 
linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Čísla s plovoucí desetinnou čárkou ve vědecké notaci</guilabel>
+      </term> 
+         <listitem>
+                 <para>Zda by desetinná čísla měla být ve vědecké notaci (<link 
linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Vždy vypisovat celé výrazy</guilabel>
+      </term> 
+         <listitem>
+                 <para>Zda by se měly vypisovat úplné výrazy pro vrácené nečíselné hodnoty (delší než řádek) 
(<link linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Vypisovat smíšené zlomky</guilabel>
+      </term> 
+         <listitem>
+                 <para>Zda by zlomky měly být vypisovány jako smíšené, například „1 1/3“ místo „4/3“. (<link 
linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Zobrazovat 0.0, když je desetinné číslo menší než 10^-x (0=nikdy neosekávat)</guilabel>
+      </term> 
+         <listitem>
+         <para>Jak osekávat výstup. Ale jen když jsou ostatní sousedící čísla velká. Podívejte se na 
dokumentaci k parametru <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+            <guilabel>Osekávat čísla jen když je jiné číslo větší než 10^-x</guilabel>
+      </term> 
+         <listitem>
+                 <para>Kdy osekávat výstup. Nastavení je dáno parametrem <link 
linkend="gel-function-OutputChopWhenExponent"><function>OutputChopWhenExponent</function></link>. Viz 
dokumentace k parametru <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Pamatovat si nastavení výstupu pro další sezení</guilabel>
+      </term> 
+         <listitem>
+        <para>Zda by se měla nastavení zadaná ve skupině <guilabel>Volby výstup čísel/výrazů</guilabel> 
zapamatovat pro příští sezení. Neplatí pro nastavení ve skupině <guilabel>Volby výstupu 
chyb/informací</guilabel>.</para>
+             <para>Když není zaškrtnuto, požívají se při každém spuštění kalkulátoru Genisu výchozí nebo 
dříve uložená nastavení. Uvědomte si, že nastavení jsou ukládána na konci sezení, takže pokud si chcete 
uložit výchozí nastavení postupujte následovně: zaškrtněte políčko, <application>matematický nástroj 
Genius</application> restartujte a u políčka zaškrtnutí zase zrušte.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Zobrazovat chyby v dialogovém okně</guilabel>
+      </term> 
+         <listitem>
+        <para>Když je nataveno, budou chyby zobrazovány v samostatném dialogovém okně, když není nastaveno, 
budou vypisovány v konzole.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Zobrazovat informativní zprávy v dialogovém okně</guilabel>
+      </term> 
+         <listitem>
+       <para>Když je nastaveno, budou informativní zprávy zobrazovány v samostatném dialogovém okně, když 
není nataveno, budou vypisovány v konzole.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum zobrazovaných chyb</guilabel>
+      </term> 
+         <listitem>
+        <para>Maximální počet chyb, který je vrácen během jednoho vyhodnocení (<link 
linkend="gel-function-MaxErrors"><function>MaxErrors</function></link>). Pokud nastavíte na 0, budou vždy 
vráceny všechny chyby. Obvykle když smyčka způsobí hodně chyb, je nepravděpodobné, že jich bude mít význam 
více než pár, takže prohlížení dlouhého seznam nemá žádný přínos.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+
+      <para>Mimo tyto předvolby existují ještě další předvolby, které mohou být změněny pouze přes prostředí 
konzoly. Tyto další volby, které se týkají výstupu najdete v kapitole <xref 
linkend="genius-gel-function-parameters"/>.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <function>IntegerOutputBase</function>
+      </term> 
+         <listitem>
+        <para>Číselná soustava, která se bude používat pro vypisování celých čísel</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <function>OutputStyle</function>
+      </term> 
+         <listitem>
+       <para>Řetězec, který může nabývat hodnot <literal>„normal“</literal>, <literal>„latex“</literal>, 
<literal>„mathml“</literal> nebo <literal>„troff“</literal> a bude ovlivňovat, jak se mají vypisovat matice 
(a samozřejmě i další věci), což je důležité pro vkládání do dokumentů. Styl Normal je výchozí styl výpisu 
<application>matematického nástroje Genius</application> čitelný pro člověka. Ostatní styly jsou pro sazbu v 
aplikacích LaTeX, MathML (XML) nebo Troff.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+   </sect1> 
+
+    <sect1 id="genius-prefs-precision"> 
+      <title>Přesnost</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Přesnost desetinných čísel</guilabel>
+      </term> 
+         <listitem>
+        <para>Přesnost desetinných čísel v bitech (<link 
linkend="gel-function-FloatPrecision"><function>FloatPrecision</function></link>). Vemte na vědomí, že změny 
se použijí až na nově vypočtené hodnoty. Staré hodnoty uložené v proměnných zůstanou samozřejmě v původní 
přesnosti a pokud je budete chtít s nově nastavenou přesností, musíte je přepočítat. Výjimkou jsou systémové 
konstanty, jako <link linkend="gel-function-pi"><function>pi</function></link> nebo <link 
linkend="gel-function-e"><function>e</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Pamatovat si nastavené přesnosti pro další sezení</guilabel>
+      </term> 
+         <listitem>
+        <para>Zda by se přesnost měla zapamatovat pro příští sezení. Když není zaškrtnuto, požívají se při 
každém spuštění kalkulátoru Genisu výchozí nebo dříve uložená nastavení. Uvědomte si, že nastavení jsou 
ukládána na konci sezení, takže pokud si chcete uložit výchozí nastavení postupujte následovně: zaškrtněte 
políčko, Genius restartujte a u políčka zaškrtnutí zase zrušte.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-terminal"> 
+      <title>Terminál</title> 
+
+      <para>Terminál představuje konzolu v pracovní oblasti.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Paměť řádků</guilabel>
+      </term> 
+         <listitem>
+        <para>Počet řádků, o které se dá v terminálu vracet zpět.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Písmo</guilabel>
+      </term> 
+         <listitem>
+        <para>Písmo, které se má používat v terminálu.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Černé na bílém</guilabel>
+      </term> 
+         <listitem>
+        <para>Zda se má terminálu používat černá na bílé.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Blikající kurzor</guilabel>
+      </term> 
+         <listitem>
+        <para>Zda by měl kurzor v terminálu blikat, když je terminál zaměřen. To může být někdy nepříjemné a 
vytvářet provoz při nečinnosti v případě, že používáte aplikaci Genius vzdáleně.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-memory"> 
+      <title>Paměť</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum alokovaných uzlů</guilabel>
+      </term> 
+         <listitem>
+        <para>Interně se data ukládají do malých úseků paměti. Tato hodnota udává maximální počet úseků, 
které se mohou pro výpočty přidělit. Tímto omezením se předejde problémům s vyčerpáním paměti při chybách, 
které paměti spotřebují velké množství, například při nekonečné rekurzi. Při vyčerpání paměti by došlo ke 
zpomalení počítače a bylo by obtížné program přerušit.</para>
+        <para>Pokud je limit dosažen, <application>matematický nástroj Genius</application> se dotáže, zda 
si výpočet přejete přerušit nebo se má pokračovat. Jestliže budete pokračovat, žádný limit nebude uplatněn a 
může nastat, že program paměť vyčerpá. Limit se použije znovu při dalším spuštění programu nebo vyhodnocení 
výrazu v konzole bez ohledu na to, co jste na dotaz odpověděli.</para>
+        <para>Nastavení limitu na nulu znamená, že na množství paměti použité kalkulátorem Genius nebude 
žádný limit uplatňován.</para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist> 
+    </sect1> 
+
+  </chapter>
+
+<!-- ============= About ====================================== -->
+  <chapter id="genius-about"> 
+    <title>O <application>Matematickém nástroji Genius</application></title> 
+
+    <para><application>Matematický nástroj Genius</application> napsal Jiří Lebl (<email>jirka 5z 
com</email>). Historie <application>matematického nástroje Genius</application> se datuje do roku 1997. Zprvu 
se jednalo o kalkulačku pro GNOME, ale postupně přerostl v kalkulátor s pracovním rozhraním. Více informací o 
něm najdete na <ulink url="http://www.jirka.org/genius.html"; type="http">webových stránkách 
Genius</ulink>.</para>
+    <para>Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této aplikaci nebo této 
příručce, pošlete e-mail autorovi nebo do poštovní konference (viz webové stránky).</para>
+
+    <para>Tento program je šířen podle ustanovení licence GNU General Public License, vydávané Free Software 
Foundation; a to buď verze 3 této licence anebo (podle vlastního uvážení) kterékoliv pozdější verze. Kopii 
této licence naleznete <ulink url="http://www.gnu.org/copyleft/gpl.html"; type="http">pod tímto 
odkazem</ulink> nebo v souboru COPYING přiloženém ke zdrojovým kódům tohoto programu.</para>
+
+    <para>Jiří Lebl byl během různých částí vývoje částečně podporován v práci od NSF granty DMS 0900885 a 
DMS 1362337 a univerzitou Illinois v Urbana-Champaign, univerzitou California v San Diegu, univerzitou 
Wisconsin-Madison a státní univerzitou Oklahoma. Software byl využíván jak k výuce, tak k výzkumu.</para>
+
+  </chapter>
+
+</book>
diff --git a/help/cs/html/ch03s02.html b/help/cs/html/ch03s02.html
index 90bf364..5a2b449 100644
--- a/help/cs/html/ch03s02.html
+++ b/help/cs/html/ch03s02.html
@@ -1 +1 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Jak vytvořit nový 
program</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch03.html" title="Kapitola 3. 
Základy používání"><link rel="prev" href="ch03.html" title="Kapitola 3. Základy používání"><link rel="next" 
href="ch03s03.html" title="Jak otevřít a spustit program"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Jak vytvořit nový program</th></tr><tr><td width="20%" 
align="left"><a accesskey="p" href="ch03.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 
3. Základy používání</th><td width="20%" align="right"> <a accesskey="n" 
href="ch03s03.html">Další</a></td></tr></table><hr></
 div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="genius-usage-create-program"></a>Jak vytvořit nový program</h2></div></div></div><p>Když si přejete 
zadat několik komplikovaných příkazů nebo napsat složitou funkci pomocí jazyka <a class="link" 
href="ch05.html" title="Kapitola 5. Základy jazyka GEL">GEL</a>, můžete vytvořit nový program.</p><p>Když 
chcete začít psát nový program, zvolte <span class="guimenu">Soubor</span> → <span class="guimenuitem">Nový 
program</span> a v pracovní oblasti se objeví nová karta. V té můžete nový program v jazyce <a class="link" 
href="ch05.html" title="Kapitola 5. Základy jazyka GEL">GEL</a> psát. Až jej dopíšete, můžete jej spustit 
pomocí <span class="guimenu">Kalkulátor</span> → <span class="guimenuitem">Spustit</span> (nebo tlačítkem 
<span class="guilabel">Spustit</span> na nástrojové liště). Tím se váš program provede a na kartě <span c
 lass="guilabel">Konzola</span> zobrazí výstup. Ve výsledku je to stejné, jako byste vzali text celého 
programu a napsali jej do konzoly. Jediný rozdíl je v tom, že vstup je proveden nezávisle na konzole, zatímco 
výstup jde na konzolu. <span class="guimenu">Kalkulátor</span> → <span class="guimenuitem">Spustit</span> 
vždy spustí aktuálně vybraný program, i když jste zrovna na kartě <span class="guilabel">Konzola</span>. 
Aktuálně vybraný program má svoji kartu označenou tučným písmem a vybere se tak, že na kartu prostě 
kliknete.</p><p>Abyste napsaný program uložili, zvolte <span class="guimenu">Soubor</span> → <span 
class="guimenuitem">Uložit jako… PodobnSoubor Ulo pro uloSoubor Ulo.</span></p><p>Programy, ve kterých jsou 
neuložené změny, mají vedle svého názvu souboru „[+]“. Díky tomu můžete rychle poznat, jestli se soubor na 
disku a otevřený v kartě odlišují. Programy, které zatím nemají přidělený název souboru,
  jsou stále považovány za neuložené a „[+]“ se u nich nevypisuje.</p></div><div class="navfooter"><hr><table 
width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch03.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch03.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch03s03.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitola 3. Základy 
používání </td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Jak otevřít a spustit program</td></tr></table></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Jak vytvořit nový 
program</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch03.html" title="Kapitola 3. 
Základy používání"><link rel="prev" href="ch03.html" title="Kapitola 3. Základy používání"><link rel="next" 
href="ch03s03.html" title="Jak otevřít a spustit program"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Jak vytvořit nový program</th></tr><tr><td width="20%" 
align="left"><a accesskey="p" href="ch03.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 
3. Základy používání</th><td width="20%" align="right"> <a accesskey="n" 
href="ch03s03.html">Další</a></td></tr></table><hr></
 div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="genius-usage-create-program"></a>Jak vytvořit nový program</h2></div></div></div><p>Když si přejete 
zadat několik komplikovaných příkazů nebo napsat složitou funkci pomocí jazyka <a class="link" 
href="ch05.html" title="Kapitola 5. Základy jazyka GEL">GEL</a>, můžete vytvořit nový program.</p><p>Když 
chcete začít psát nový program, zvolte <span class="guimenu">Soubor</span> → <span class="guimenuitem">Nový 
program</span> a v pracovní oblasti se objeví nová karta. V té můžete nový program v jazyce <a class="link" 
href="ch05.html" title="Kapitola 5. Základy jazyka GEL">GEL</a> psát. Až jej dopíšete, můžete jej spustit 
pomocí <span class="guimenu">Kalkulátor</span> → <span class="guimenuitem">Spustit</span> (nebo tlačítkem 
<span class="guilabel">Spustit</span> na nástrojové liště). Tím se váš program provede a na kartě <span c
 lass="guilabel">Konzola</span> zobrazí výstup. Ve výsledku je to stejné, jako byste vzali text celého 
programu a napsali jej do konzoly. Jediný rozdíl je v tom, že vstup je proveden nezávisle na konzole, zatímco 
výstup jde na konzolu. <span class="guimenu">Kalkulátor</span> → <span class="guimenuitem">Spustit</span> 
vždy spustí aktuálně vybraný program, i když jste zrovna na kartě <span class="guilabel">Konzola</span>. 
Aktuálně vybraný program má svoji kartu označenou tučným písmem a vybere se tak, že na kartu prostě 
kliknete.</p><p>Abyste napsaný program uložili, zvolte <span class="guimenu">Soubor</span> → <span 
class="guimenuitem">Uložit jako…</span> Podobně, jako v jiných aplikacích, můžete zvolit <span 
class="guimenu">Soubor</span> → <span class="guimenuitem">Uložit</span> pro uložení programu, který již má 
přidělený název souboru. V případě, že máte otevřených hodně programů, které upravujete, a přejete 
 si je uložit, můžete zvolit také <span class="guimenu">Soubor</span> → <span class="guimenuitem">Uložit 
neuložené</span>.</p><p>Programy, ve kterých jsou neuložené změny, mají vedle svého názvu souboru „[+]“. Díky 
tomu můžete rychle poznat, jestli se soubor na disku a otevřený v kartě odlišují. Programy, které zatím 
nemají přidělený název souboru, jsou stále považovány za neuložené a „[+]“ se u nich 
nevypisuje.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td 
width="40%" align="left"><a accesskey="p" href="ch03.html">Předcházející</a> </td><td width="20%" 
align="center"><a accesskey="u" href="ch03.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch03s03.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitola 
3. Základy používání </td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td 
width="40%
 " align="right" valign="top"> Jak otevřít a spustit program</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch05s07.html b/help/cs/html/ch05s07.html
index 8f8ec84..e9f094e 100644
--- a/help/cs/html/ch05s07.html
+++ b/help/cs/html/ch05s07.html
@@ -1,53 +1,6 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Seznam operátorů 
GEL</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch05.html" title="Kapitola 5. 
Základy jazyka GEL"><link rel="prev" href="ch05s06.html" title="Modulární aritmetika"><link rel="next" 
href="ch06.html" title="Kapitola 6. Programování s jazykem GEL"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Seznam operátorů GEL</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch05s06.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 5. Základy 
jazyka GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch06.html">Další</a></td></tr></table><hr></div><div class="sec
 t1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="genius-gel-operator-list"></a>Seznam operátorů GEL</h2></div></div></div><p>Vše v jazyce GEL jsou ve 
skutečnosti jen výrazy. Výrazy jsou dohromady řetězeny pomocí různých operátorů. Jak jste již viděli, i 
oddělovač je ve skutečnosti jen binární operátor jazyka. Zde je seznam operátorů jazyka GEL.</p><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><strong 
class="userinput"><code>a;b</code></strong></span></dt><dd><p>Oddělovač, který vyhodnocuje jak <code 
class="varname">a</code>, tak <code class="varname">b</code>, ale vrací výsledek pouze z <code 
class="varname">b</code>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a=b</code></strong></span></dt><dd><p>Operátor přiřazení. </p></dd><dt><span 
class="term"><strong class="userinput"><code>a:=b</code></strong></span></dt><dd><p>Operátor přiřazení. 
Přiřadí <code cla
 ss="varname">b</code> do <code class="varname">a</code> (<code class="varname">a</code> musí být platná <a 
class="link" href="ch06s09.html" title="L-hodnoty">l-hodnota</a>). Liší se od <code class="literal">=</code>, 
protože se nikdy nepřevádí na <code class="literal">==</code>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>|a|</code></strong></span></dt><dd><p>Absolutní hodnota. V případě, že výraz je 
komplexní číslo, je vrácen modul (absolutní hodnota komplexního čísla, někdy také nazýván norma), což je 
vzdálenost od počátku. Například: <strong class="userinput"><code>|3 * e^(1i*pi)|</code></strong> vrátí 
3.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/AbsoluteValue.html"; target="_top">Mathworld</a> (text je v angličtině) a 
<a class="ulink" href="http://cs.wikipedia.org/wiki/Absolutn%C3%AD_hodnota"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><strong
  class="userinput"><code>a^b</code></strong></span></dt><dd><p>Umocnění, umocní <code 
class="varname">a</code> na <code class="varname">b</code>-tou.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a.^b</code></strong></span></dt><dd><p>Umocňování prvek po prvku. Umocní každý prvek 
matice <code class="varname">a</code> na <code class="varname">b</code>-tou. Nebo, když je <code 
class="varname">b</code> matice stejné velikosti jako <code class="varname">a</code>, umocňuje se prvek po 
prvku. Pokud je <code class="varname">a</code> číslo a <code class="varname">b</code> je matice, pak se 
vytvoří matice stejné velikosti jako <code class="varname">b</code> s <code class="varname">a</code> 
umocněným na všechny různé mocnitele v <code class="varname">b</code>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a+b</code></strong></span></dt><dd><p>Sčítání. Sečte dvě čísla, matice, funkce nebo 
řetězce. Pokud přičtete řetě
 zec k čemukoliv, výsledkem bude vždy řetězec. Pokud je jeden operand čtvercová matice a druhý číslo, je 
číslo vynásobeno jednotkovou maticí.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a-b</code></strong></span></dt><dd><p>Odčítání. Odečte dvě čísla, matice nebo 
funkce.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a*b</code></strong></span></dt><dd><p>Násobení. Jedná se o normální násobení 
matic.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a.*b</code></strong></span></dt><dd><p>Násobení prvek po prvku v situaci, kdy <code 
class="varname">a</code> a <code class="varname">b</code> jsou matice.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a/b</code></strong></span></dt><dd><p>Dělení. Pokud jsou <code 
class="varname">a</code> a <code class="varname">b</code> čísla, jedná se o běžné dělení. Pokud to jsou 
matice, odpovídá to <strong class="userinput"><code>a*b^-1</c
 ode></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a./b</code></strong></span></dt><dd><p>Dělení prvek po prvku. Pro čísla je to stejné 
jako <strong class="userinput"><code>a/b</code></strong>, ale u matic to funguje prvek po 
prvku.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a\b</code></strong></span></dt><dd><p>Zpětné dělení. Je to to stejné, jako <strong 
class="userinput"><code>b/a</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a.\b</code></strong></span></dt><dd><p>Zpětné dělení prvků prvky.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a%b</code></strong></span></dt><dd><p>
-            The mod operator.  This does not turn on the <a class="link" href="ch05s06.html" 
title="Modulární aritmetika">modular mode</a>, but
-             just returns the remainder of integer division
-             <strong class="userinput"><code>a/b</code></strong>.
-           </p></dd><dt><span class="term"><strong 
class="userinput"><code>a.%b</code></strong></span></dt><dd><p>
-             Element by element mod operator.  Returns the remainder
-            after element by element integer division
-            <strong class="userinput"><code>a./b</code></strong>.
-           </p></dd><dt><span class="term"><strong class="userinput"><code>a mod 
b</code></strong></span></dt><dd><p>Operátor modulární aritmetiky. Výraz <code class="varname">a</code> je 
vyhodnocen modulární aritmetikou vůči <code class="varname">b</code>. Viz <a class="xref" href="ch05s06.html" 
title="Modulární aritmetika">„Modulární aritmetika“</a>. Některé funkce a operátory se chovají odlišně při 
modulární aritmetice s celými čísly.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a!</code></strong></span></dt><dd><p>Operátor faktoriálu. Je to jako <strong 
class="userinput"><code>1*…*(n-2)*(n-1)*n</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a!!</code></strong></span></dt><dd><p>Operátor dvojitého faktoriálu. Je to jako 
<strong class="userinput"><code>1*…*(n-4)*(n-2)*n</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a==b</code></strong></span></dt><dd><p
Operátor rovnosti, vrací <code class="constant">true</code> (pravda) nebo <code 
class="constant">false</code> (nepravda) podle toho, zda <code class="varname">a</code> je <code 
class="varname">b</code> rovno nebo není rovno.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a!=b</code></strong></span></dt><dd><p>Operátor nerovnosti, vrací <code 
class="constant">true</code> (pravda) v případě, že <code class="varname">a</code> se nerovná <code 
class="varname">b</code>, jinak vrací <code class="constant">false</code> (nepravda).</p></dd><dt><span 
class="term"><strong class="userinput"><code>a&lt;&gt;b</code></strong></span></dt><dd><p>Alternativní 
operátor nerovnosti, vrací <code class="constant">true</code> (pravda) v případě, že <code 
class="varname">a</code> se nerovná <code class="varname">b</code>, jinak vrací <code 
class="constant">false</code> (nepravda).</p></dd><dt><span class="term"><strong 
class="userinput"><code>a&lt;=b</code></str
 ong></span></dt><dd><p>Operátor menší než nebo rovno, vrací <code class="constant">true</code> (pravda) v 
případě, že <code class="varname">a</code> je menší než nebo se rovná <code class="varname">b</code>, jinak 
vrací <code class="constant">false</code> (nepravda). Je možné řetězit ve stylu <strong 
class="userinput"><code>a &lt;= b &lt;= c</code></strong> (a může se kombinovat s operátorem menší 
než).</p></dd><dt><span class="term"><strong 
class="userinput"><code>a&gt;=b</code></strong></span></dt><dd><p>
-             Greater than or equal operator,
-            returns <code class="constant">true</code> if <code class="varname">a</code> is
-            greater than or equal to 
-            <code class="varname">b</code> else returns <code class="constant">false</code>.
-            These can be chained as in <strong class="userinput"><code>a &gt;= b &gt;= c</code></strong>
-            (and they can also be combined with the greater than operator).
-           </p></dd><dt><span class="term"><strong 
class="userinput"><code>a&lt;=b</code></strong></span></dt><dd><p>
-             Less than operator,
-            returns <code class="constant">true</code> if <code class="varname">a</code> is
-            less than 
-            <code class="varname">b</code> else returns <code class="constant">false</code>.
-            These can be chained as in <strong class="userinput"><code>a &lt; b &lt; c</code></strong>
-            (they can also be combined with the less than or equal to operator).
-           </p></dd><dt><span class="term"><strong 
class="userinput"><code>a&gt;=b</code></strong></span></dt><dd><p>
-             Greater than operator,
-            returns <code class="constant">true</code> if <code class="varname">a</code> is
-            greater than 
-            <code class="varname">b</code> else returns <code class="constant">false</code>.
-            These can be chained as in <strong class="userinput"><code>a &gt; b &gt; c</code></strong>
-            (they can also be combined with the greater than or equal to operator).
-           </p></dd><dt><span class="term"><strong 
class="userinput"><code>a&lt;=&gt;b</code></strong></span></dt><dd><p>Operátor porovnání. V případě, že <code 
class="varname">a</code> je rovno <code class="varname">b</code>, vrací 0, pokud je <code 
class="varname">a</code> menší než <code class="varname">b</code> vrací -1 a pokud je <code 
class="varname">a</code> větší než <code class="varname">b</code>, vrací 1.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a and b</code></strong></span></dt><dd><p>Logické A (AND). Vrací 
pravda, když <code class="varname">a</code> i <code class="varname">b</code> jsou pravda, ve všech ostatních 
případech nepravda. Pokud jsou předána čísla, je se všemi nenulovými zacházeno jako s pravdivostní hodnotou 
pravda.</p></dd><dt><span class="term"><strong class="userinput"><code>a or 
b</code></strong></span></dt><dd><p>Logické NEBO (OR). Vrací pravda, když je <code class="varname">a</code> 
nebo <
 code class="varname">b</code> (nebo oboje) pravda, jinak vrací nepravda. Pokud jsou předána čísla, je se 
všemi nenulovými zacházeno jako s pravdivostní hodnotou pravda.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a xor b</code></strong></span></dt><dd><p>
-             Logical xor.
-            Returns true if exactly one of
-            <code class="varname">a</code> or <code class="varname">b</code> is true,
-            else returns false.  If given numbers, nonzero numbers
-            are treated as true.
-           </p></dd><dt><span class="term"><strong class="userinput"><code>not 
a</code></strong></span></dt><dd><p>
-                  Logical not.  Returns the logical negation of <code class="varname">a</code>.
-           </p></dd><dt><span class="term"><strong 
class="userinput"><code>-a</code></strong></span></dt><dd><p>Operátor negace. Vrací opačné číslo nebo matici 
(u matice pracuje prvek po prvku).</p></dd><dt><span class="term"><strong 
class="userinput"><code>&amp;a</code></strong></span></dt><dd><p>Reference proměnné (pro předání odkazu na 
proměnnou). Viz <a class="xref" href="ch06s08.html" title="Reference">„Reference“</a>.</p></dd><dt><span 
class="term"><strong class="userinput"><code>*a</code></strong></span></dt><dd><p>Dereference proměnné (pro 
přístup k odkazované proměnné). Viz <a class="xref" href="ch06s08.html" 
title="Reference">„Reference“</a>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a'</code></strong></span></dt><dd><p>Transponovat matici komplexně sdruženou 
(Hermiteovsky sdružená matice). Tj. řádky a sloupce se prohodí a vezmou se komplexně sdružená čísla ke všem 
prvkům. To znamená, že když prvek i,
 j matice <code class="varname">a</code> je x+iy, pak prvek j,i matice <strong 
class="userinput"><code>a'</code></strong> je x-iy.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a.'</code></strong></span></dt><dd><p>Transponovat matici (bez komplexního sdružení). 
To znamená, že prvek i,j matice <code class="varname">a</code> se stane prvkem j,i matice <strong 
class="userinput"><code>a.'</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a@(b,c)</code></strong></span></dt><dd><p>
-            Get element of a matrix in row <code class="varname">b</code> and column
-            <code class="varname">c</code>.   If <code class="varname">b</code>,
-            <code class="varname">c</code> are vectors, then this gets the corresponding
-            rows, columns or submatrices.
-           </p></dd><dt><span class="term"><strong 
class="userinput"><code>a@(b,)</code></strong></span></dt><dd><p>Získat řádek matice (nebo více řádků, pokud 
je <code class="varname">b</code> vektor).</p></dd><dt><span class="term"><strong 
class="userinput"><code>a@(b,:)</code></strong></span></dt><dd><p>Stejné jako předchozí.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a@(,c)</code></strong></span></dt><dd><p>Získat sloupec matice 
(nebo sloupce, pokud je <code class="varname">c</code> vektor).</p></dd><dt><span class="term"><strong 
class="userinput"><code>a@(:,c)</code></strong></span></dt><dd><p>Stejné jako předchozí.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a@(b)</code></strong></span></dt><dd><p>Získat prvek z matice, s 
kterou se zachází jako s vektorem. Matice se prochází řádek pro řádku.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a:b</code></strong></span></dt><dd><p>Sestavit vektor o
 d <code class="varname">a</code> do <code class="varname">b</code> (nebo zadané části řádku, sloupce pro 
operátor <code class="literal">@</code>). Například pro získání řádků 2 až 4 z matice <code 
class="varname">A</code> byste mohli použít </p><pre class="programlisting">A@(2:4,)
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Seznam operátorů 
GEL</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch05.html" title="Kapitola 5. 
Základy jazyka GEL"><link rel="prev" href="ch05s06.html" title="Modulární aritmetika"><link rel="next" 
href="ch06.html" title="Kapitola 6. Programování s jazykem GEL"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Seznam operátorů GEL</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch05s06.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 5. Základy 
jazyka GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch06.html">Další</a></td></tr></table><hr></div><div class="sec
 t1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="genius-gel-operator-list"></a>Seznam operátorů GEL</h2></div></div></div><p>Vše v jazyce GEL jsou ve 
skutečnosti jen výrazy. Výrazy jsou dohromady řetězeny pomocí různých operátorů. Jak jste již viděli, i 
oddělovač je ve skutečnosti jen binární operátor jazyka. Zde je seznam operátorů jazyka GEL.</p><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><strong 
class="userinput"><code>a;b</code></strong></span></dt><dd><p>Oddělovač, který vyhodnocuje jak <code 
class="varname">a</code>, tak <code class="varname">b</code>, ale vrací výsledek pouze z <code 
class="varname">b</code>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a=b</code></strong></span></dt><dd><p>Operátor přiřazení. </p></dd><dt><span 
class="term"><strong class="userinput"><code>a:=b</code></strong></span></dt><dd><p>Operátor přiřazení. 
Přiřadí <code cla
 ss="varname">b</code> do <code class="varname">a</code> (<code class="varname">a</code> musí být platná <a 
class="link" href="ch06s09.html" title="L-hodnoty">l-hodnota</a>). Liší se od <code class="literal">=</code>, 
protože se nikdy nepřevádí na <code class="literal">==</code>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>|a|</code></strong></span></dt><dd><p>Absolutní hodnota. V případě, že výraz je 
komplexní číslo, je vrácen modul (absolutní hodnota komplexního čísla, někdy také nazýván norma), což je 
vzdálenost od počátku. Například: <strong class="userinput"><code>|3 * e^(1i*pi)|</code></strong> vrátí 
3.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/AbsoluteValue.html"; target="_top">Mathworld</a> (text je v angličtině) a 
<a class="ulink" href="http://cs.wikipedia.org/wiki/Absolutn%C3%AD_hodnota"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><strong
  class="userinput"><code>a^b</code></strong></span></dt><dd><p>Umocnění, umocní <code 
class="varname">a</code> na <code class="varname">b</code>-tou.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a.^b</code></strong></span></dt><dd><p>Umocňování prvek po prvku. Umocní každý prvek 
matice <code class="varname">a</code> na <code class="varname">b</code>-tou. Nebo, když je <code 
class="varname">b</code> matice stejné velikosti jako <code class="varname">a</code>, umocňuje se prvek po 
prvku. Pokud je <code class="varname">a</code> číslo a <code class="varname">b</code> je matice, pak se 
vytvoří matice stejné velikosti jako <code class="varname">b</code> s <code class="varname">a</code> 
umocněným na všechny různé mocnitele v <code class="varname">b</code>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a+b</code></strong></span></dt><dd><p>Sčítání. Sečte dvě čísla, matice, funkce nebo 
řetězce. Pokud přičtete řetě
 zec k čemukoliv, výsledkem bude vždy řetězec. Pokud je jeden operand čtvercová matice a druhý číslo, je 
číslo vynásobeno jednotkovou maticí.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a-b</code></strong></span></dt><dd><p>Odčítání. Odečte dvě čísla, matice nebo 
funkce.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a*b</code></strong></span></dt><dd><p>Násobení. Jedná se o normální násobení 
matic.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a.*b</code></strong></span></dt><dd><p>Násobení prvek po prvku v situaci, kdy <code 
class="varname">a</code> a <code class="varname">b</code> jsou matice.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a/b</code></strong></span></dt><dd><p>Dělení. Pokud jsou <code 
class="varname">a</code> a <code class="varname">b</code> čísla, jedná se o běžné dělení. Pokud to jsou 
matice, odpovídá to <strong class="userinput"><code>a*b^-1</c
 ode></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a./b</code></strong></span></dt><dd><p>Dělení prvek po prvku. Pro čísla je to stejné 
jako <strong class="userinput"><code>a/b</code></strong>, ale u matic to funguje prvek po 
prvku.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a\b</code></strong></span></dt><dd><p>Zpětné dělení. Je to to stejné, jako <strong 
class="userinput"><code>b/a</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a.\b</code></strong></span></dt><dd><p>Zpětné dělení prvků prvky.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a%b</code></strong></span></dt><dd><p>Operátor zbytku. Nepřepíná 
do režimu <a class="link" href="ch05s06.html" title="Modulární aritmetika">modulární aritmetiky</a>, ale jen 
prostě vrátí zbytek celočíselného dělení <strong 
class="userinput"><code>a/b</code></strong>.</p></dd><dt><span class="term"><strong class="
 userinput"><code>a.%b</code></strong></span></dt><dd><p>Operátor zbytku dělení prvků prvky. Vrací zbytky po 
dělení celočíselných prvků celočíselnými prvky <strong 
class="userinput"><code>a./b</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a mod b</code></strong></span></dt><dd><p>Operátor modulární aritmetiky. Výraz <code 
class="varname">a</code> je vyhodnocen modulární aritmetikou vůči <code class="varname">b</code>. Viz <a 
class="xref" href="ch05s06.html" title="Modulární aritmetika">„Modulární aritmetika“</a>. Některé funkce a 
operátory se chovají odlišně při modulární aritmetice s celými čísly.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a!</code></strong></span></dt><dd><p>Operátor faktoriálu. Je to jako <strong 
class="userinput"><code>1*…*(n-2)*(n-1)*n</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a!!</code></strong></span></dt><dd><p>Oper
 átor dvojitého faktoriálu. Je to jako <strong 
class="userinput"><code>1*…*(n-4)*(n-2)*n</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a==b</code></strong></span></dt><dd><p>Operátor rovnosti, vrací <code 
class="constant">true</code> (pravda) nebo <code class="constant">false</code> (nepravda) podle toho, zda 
<code class="varname">a</code> je <code class="varname">b</code> rovno nebo není rovno.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a!=b</code></strong></span></dt><dd><p>Operátor nerovnosti, 
vrací <code class="constant">true</code> (pravda) v případě, že <code class="varname">a</code> se nerovná 
<code class="varname">b</code>, jinak vrací <code class="constant">false</code> (nepravda).</p></dd><dt><span 
class="term"><strong class="userinput"><code>a&lt;&gt;b</code></strong></span></dt><dd><p>Alternativní 
operátor nerovnosti, vrací <code class="constant">true</code> (pravda) v případě, že <code c
 lass="varname">a</code> se nerovná <code class="varname">b</code>, jinak vrací <code 
class="constant">false</code> (nepravda).</p></dd><dt><span class="term"><strong 
class="userinput"><code>a&lt;=b</code></strong></span></dt><dd><p>Operátor menší než nebo rovno, vrací <code 
class="constant">true</code> (pravda) v případě, že <code class="varname">a</code> je menší než nebo se rovná 
<code class="varname">b</code>, jinak vrací <code class="constant">false</code> (nepravda). Je možné řetězit 
ve stylu <strong class="userinput"><code>a &lt;= b &lt;= c</code></strong> (a může se při tom kombinovat s 
operátorem menší než).</p></dd><dt><span class="term"><strong 
class="userinput"><code>a&gt;=b</code></strong></span></dt><dd><p>Operátor větší než nebo rovno, vrací <code 
class="constant">true</code> (pravda) v případě, že <code class="varname">a</code> je větší než nebo se rovná 
<code class="varname">b</code>, jinak vrací <code class="constan
 t">false</code> (nepravda). Je možné řetězit ve stylu <strong class="userinput"><code>a &gt;= b &gt;= 
c</code></strong> (a může se při tom kombinovat s operátorem větší než).</p></dd><dt><span 
class="term"><strong class="userinput"><code>a&lt;=b</code></strong></span></dt><dd><p>Operátor menší než, 
vrací <code class="constant">true</code> (pravda) v případě, že <code class="varname">a</code> je menší než 
<code class="varname">b</code>, jinak vrací <code class="constant">false</code> (nepravda). Je možné řetězit 
ve stylu <strong class="userinput"><code>a &lt; b &lt; c</code></strong> (a může se při tom kombinovat s 
operátorem menší než nebo rovno).</p></dd><dt><span class="term"><strong 
class="userinput"><code>a&gt;=b</code></strong></span></dt><dd><p>Operátor větší než, vrací <code 
class="constant">true</code> (pravda) v případě, že <code class="varname">a</code> je větší než <code 
class="varname">b</code>, jinak vrací <code
  class="constant">false</code> (nepravda). Je možné řetězit ve stylu <strong class="userinput"><code>a &gt; 
b &gt; c</code></strong> (a může se při tom kombinovat s operátorem větší než nebo rovno).</p></dd><dt><span 
class="term"><strong class="userinput"><code>a&lt;=&gt;b</code></strong></span></dt><dd><p>Operátor 
porovnání. V případě, že <code class="varname">a</code> je rovno <code class="varname">b</code>, vrací 0, 
pokud je <code class="varname">a</code> menší než <code class="varname">b</code> vrací -1 a pokud je <code 
class="varname">a</code> větší než <code class="varname">b</code>, vrací 1.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a and b</code></strong></span></dt><dd><p>Logické A (AND). Vrací 
pravda, když <code class="varname">a</code> i <code class="varname">b</code> jsou pravda, ve všech ostatních 
případech nepravda. Pokud jsou předána čísla, je se všemi nenulovými zacházeno jako s pravdivostní hod
 notou pravda.</p></dd><dt><span class="term"><strong class="userinput"><code>a or 
b</code></strong></span></dt><dd><p>Logické NEBO (OR). Vrací pravda, když je <code class="varname">a</code> 
nebo <code class="varname">b</code> (nebo oboje) pravda, jinak vrací nepravda. Pokud jsou předána čísla, je 
se všemi nenulovými zacházeno jako s pravdivostní hodnotou pravda.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a xor b</code></strong></span></dt><dd><p>Logické vylučovací NEBO (XOR). Vrací 
pravda, když právě <code class="varname">a</code> nebo <code class="varname">b</code> je pravda, ve všech 
ostatních případech vrací nepravda. Pokud jsou předána čísla, je se všemi nenulovými zacházeno jako s 
pravdivostní hodnotou pravda.</p></dd><dt><span class="term"><strong class="userinput"><code>not 
a</code></strong></span></dt><dd><p>Logická negace (NOT). Vrací logickou negaci <code 
class="varname">a</code>.</p></dd><dt><span class="term">
 <strong class="userinput"><code>-a</code></strong></span></dt><dd><p>Operátor negace. Vrací opačné číslo 
nebo matici (u matice pracuje prvek po prvku).</p></dd><dt><span class="term"><strong 
class="userinput"><code>&amp;a</code></strong></span></dt><dd><p>Reference proměnné (pro předání odkazu na 
proměnnou). Viz <a class="xref" href="ch06s08.html" title="Reference">„Reference“</a>.</p></dd><dt><span 
class="term"><strong class="userinput"><code>*a</code></strong></span></dt><dd><p>Dereference proměnné (pro 
přístup k odkazované proměnné). Viz <a class="xref" href="ch06s08.html" 
title="Reference">„Reference“</a>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a'</code></strong></span></dt><dd><p>Transponovat matici komplexně sdruženou 
(Hermiteovsky sdružená matice). Tj. řádky a sloupce se prohodí a vezmou se komplexně sdružená čísla ke všem 
prvkům. To znamená, že když prvek i,j matice <code class="varname">a</code> je 
 x+iy, pak prvek j,i matice <strong class="userinput"><code>a'</code></strong> je x-iy.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a.'</code></strong></span></dt><dd><p>Transponovat matici (bez 
komplexního sdružení). To znamená, že prvek i,j matice <code class="varname">a</code> se stane prvkem j,i 
matice <strong class="userinput"><code>a.'</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a@(b,c)</code></strong></span></dt><dd><p>Získat prvek matice v řádku <code 
class="varname">b</code> a sloupci <code class="varname">c</code>. Pokud jsou <code class="varname">b</code>, 
<code class="varname">c</code> vektory, získají se odpovídající řádky, sloupce nebo 
podmatice.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a@(b,)</code></strong></span></dt><dd><p>Získat řádek matice (nebo více řádků, pokud 
je <code class="varname">b</code> vektor).</p></dd><dt><span class="term"><strong class="userinp
 ut"><code>a@(b,:)</code></strong></span></dt><dd><p>Stejné jako předchozí.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a@(,c)</code></strong></span></dt><dd><p>Získat sloupec matice 
(nebo sloupce, pokud je <code class="varname">c</code> vektor).</p></dd><dt><span class="term"><strong 
class="userinput"><code>a@(:,c)</code></strong></span></dt><dd><p>Stejné jako předchozí.</p></dd><dt><span 
class="term"><strong class="userinput"><code>a@(b)</code></strong></span></dt><dd><p>Získat prvek z matice, s 
kterou se zachází jako s vektorem. Matice se prochází řádek pro řádku.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a:b</code></strong></span></dt><dd><p>Sestavit vektor od <code 
class="varname">a</code> do <code class="varname">b</code> (nebo zadané části řádku, sloupce pro operátor 
<code class="literal">@</code>). Například pro získání řádků 2 až 4 z matice <code class="varname">A</code> 
byste mohli použít </p><
 pre class="programlisting">A@(2:4,)
             </pre><p>, kdy <strong class="userinput"><code>2:4</code></strong> vrátí vektor <strong 
class="userinput"><code>[2,3,4]</code></strong>.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a:b:c</code></strong></span></dt><dd><p>Sestavit vektor od <code 
class="varname">a</code> do <code class="varname">c</code> s krokem <code class="varname">b</code>. Tj. 
například </p><pre class="programlisting">genius&gt; 1:2:9
 =
 `[1, 3, 5, 7, 9]
-</pre><p>Když jsou použita desetinná čísla, například <strong 
class="userinput"><code>1.0:0.4:3.0</code></strong>, je výstupem to, co očekáváte, přestože se k 1,0 pětkrát 
přidá 0,4, je to jen o něco více než 3,0 z důvodu, jakým jsou desetinná čísla uchována ve dvojkové soustavě 
(není to přesně 0,4, ale uložené číslo je obvykle o trochu větší). Způsob, jakým je to zpracováváno, je 
stejný jako u cyklu a sčítacích a násobících smyček. Pokud je konec v rámci <strong 
class="userinput"><code>2^-20</code></strong>násobku velikosti kroku koncového bodu, je koncový bod použit a 
předpokládá se, že nastaly chyby zaokrouhlení. To sice není perfektní, ale řeší to většinu případů. Tato 
kontrola se provádí až ve verzi 1.0.18 a novějších, takže provádění vašeho kódu může být ve starších verzích 
odlišné. Pokud chcete této záležitosti předejít, používejte opravdová racionální čísla, případn
 ě použijte funkci <code class="function">float</code>, když si přejete na konci dostat desetinné číslo. 
Například <strong class="userinput"><code>1:2/5:3</code></strong> funguje správně a <strong 
class="userinput"><code>float(1:2/5:3)</code></strong> vám poskytne desetinné číslo a přitom to bude nepatrně 
přesnější než <strong class="userinput"><code>1.0:0.4:3.0</code></strong>.</p></dd><dt><span 
class="term"><strong class="userinput"><code>(a)i</code></strong></span></dt><dd><p>
-            Make <code class="varname">a</code> into an imaginary number (multiply <code 
class="varname">a</code> by the
-            imaginary).  Normally the imaginary number <code class="varname">i</code> is
-            written as <strong class="userinput"><code>1i</code></strong>.  So the above is equal to
-            </p><pre class="programlisting">(a)*1i
-            </pre><p>
-           </p></dd><dt><span class="term"><strong 
class="userinput"><code>`a</code></strong></span></dt><dd><p>Uvozovat identifikátor, kterýžto nebude 
vyhodnocen. Nebo uvozovat matici, takže nebude rozšířena.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a swapwith b</code></strong></span></dt><dd><p>Přehodit hodnotu proměnné <code 
class="varname">a</code> s hodnotou proměnné <code class="varname">b</code>. V současnosti nepracuje s částmi 
prvků matice. Vrací <code class="constant">null</code>. Dostupné od verze 1.0.13.</p></dd><dt><span 
class="term"><strong class="userinput"><code>increment a</code></strong></span></dt><dd><p>Zvýšit hodnotu 
proměnné <code class="varname">a</code> o 1. V případě, že <code class="varname">a</code> je matice, je o 1 
zvýšen každý prvek. Dělá to vlastně to stejné co <strong class="userinput"><code>a=a+1</code></strong>, 
akorát o něco rychleji. Vrací <code class="constant">null</code>. Dostup
 né od verze 1.0.13.</p></dd><dt><span class="term"><strong class="userinput"><code>increment a by 
b</code></strong></span></dt><dd><p>Zvýšit hodnotu proměnné <code class="varname">a</code> o <code 
class="varname">b</code>. V případě, že <code class="varname">a</code> je matice, je o zvýšen každý prvek. 
Dělá to vlastně to stejné co <strong class="userinput"><code>a=a+b</code></strong>, akorát o něco rychleji. 
Vrací <code class="constant">null</code>. Dostupné od verze 1.0.13.</p></dd></dl></div><div class="note" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Poznámka</h3><p>Operátor @() dává 
operátoru : více možností. S ním můžete určovat části matice. Takže a@(2:4,6) jsou řádky 2,3,4 sloupce 6. 
Nebo a@(,1:2) vám dá první dva sloupce matice. Do operátoru @() můžete i přiřazovat, stačí když je pravou 
hodnotou matice o stejném rozměru jako určená oblast nebo je to jiný typ hodnoty.</p></div><div class="no
 te" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Poznámka</h3><p>Porovnávací operátory 
(vyjma operátoru &lt;=&gt;, který se chová normálně) nejsou striktně binární operátory, mohou být fakticky 
seskupovány běžným matematickým způsobem, např.: (1&lt;x&lt;=y&lt;5) je platný pravdivostní výraz a znamená 
přesně to, co by měl, tj. (1&lt;x a x≤y a y&lt;5)</p></div><div class="note" style="margin-left: 0.5in; 
margin-right: 0.5in;"><h3 class="title">Poznámka</h3><p>Unární operátor mínus funguje různými způsoby v 
závislosti na tom, kde se vyskytuje. Když se objeví před číslem, váže se přímo k němu. Když se objeví před 
výrazem, má slabší vazbu než mocnina a faktoriál. Například <strong 
class="userinput"><code>-1^k</code></strong> je ve skutečnosti <strong 
class="userinput"><code>(-1)^k</code></strong>, ale <strong 
class="userinput"><code>-neco(1)^k</code></strong> je ve skutečnosti <strong class="useri
 nput"><code>-(neco(1)^k)</code></strong>. Takže věnujte pozornost tomu, jak je používáte a pokud máte 
pochybnosti, raději přidejte závorky.</p></div></div><div class="navfooter"><hr><table width="100%" 
summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch05s06.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch05.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch06.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Modulární aritmetika 
</td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Kapitola 6. Programování s jazykem GEL</td></tr></table></div></body></html>
+</pre><p>Když jsou použita desetinná čísla, například <strong 
class="userinput"><code>1.0:0.4:3.0</code></strong>, je výstupem to, co očekáváte, přestože se k 1,0 pětkrát 
přidá 0,4, je to jen o něco více než 3,0 z důvodu, jakým jsou desetinná čísla uchována ve dvojkové soustavě 
(není to přesně 0,4, ale uložené číslo je obvykle o trochu větší). Způsob, jakým je to zpracováváno, je 
stejný jako u cyklu a sčítacích a násobících smyček. Pokud je konec v rámci <strong 
class="userinput"><code>2^-20</code></strong>násobku velikosti kroku koncového bodu, je koncový bod použit a 
předpokládá se, že nastaly chyby zaokrouhlení. To sice není perfektní, ale řeší to většinu případů. Tato 
kontrola se provádí až ve verzi 1.0.18 a novějších, takže provádění vašeho kódu může být ve starších verzích 
odlišné. Pokud chcete této záležitosti předejít, používejte opravdová racionální čísla, případn
 ě použijte funkci <code class="function">float</code>, když si přejete na konci dostat desetinné číslo. 
Například <strong class="userinput"><code>1:2/5:3</code></strong> funguje správně a <strong 
class="userinput"><code>float(1:2/5:3)</code></strong> vám poskytne desetinné číslo a přitom to bude nepatrně 
přesnější než <strong class="userinput"><code>1.0:0.4:3.0</code></strong>.</p></dd><dt><span 
class="term"><strong class="userinput"><code>(a)i</code></strong></span></dt><dd><p>Udělat z <code 
class="varname">a</code> imaginární číslo (vynásobit <code class="varname">a</code> imaginární hodnotou <code 
class="varname">i</code>). Všimněte si, že normálně se <code class="varname">i</code> zapisuje jako <code 
class="varname">1i</code>. Takže předchozí je vlastně ekvivalentní k </p><pre class="programlisting">(a)*1i
+            </pre></dd><dt><span class="term"><strong 
class="userinput"><code>`a</code></strong></span></dt><dd><p>Uvozovat identifikátor, kterýžto nebude 
vyhodnocen. Nebo uvozovat matici, takže nebude rozšířena.</p></dd><dt><span class="term"><strong 
class="userinput"><code>a swapwith b</code></strong></span></dt><dd><p>Přehodit hodnotu proměnné <code 
class="varname">a</code> s hodnotou proměnné <code class="varname">b</code>. V současnosti nepracuje s částmi 
prvků matice. Vrací <code class="constant">null</code>. Dostupné od verze 1.0.13.</p></dd><dt><span 
class="term"><strong class="userinput"><code>increment a</code></strong></span></dt><dd><p>Zvýšit hodnotu 
proměnné <code class="varname">a</code> o 1. V případě, že <code class="varname">a</code> je matice, je o 1 
zvýšen každý prvek. Dělá to vlastně to stejné co <strong class="userinput"><code>a=a+1</code></strong>, 
akorát o něco rychleji. Vrací <code class="constant">null</code>. Dostupné
  od verze 1.0.13.</p></dd><dt><span class="term"><strong class="userinput"><code>increment a by 
b</code></strong></span></dt><dd><p>Zvýšit hodnotu proměnné <code class="varname">a</code> o <code 
class="varname">b</code>. V případě, že <code class="varname">a</code> je matice, je o zvýšen každý prvek. 
Dělá to vlastně to stejné co <strong class="userinput"><code>a=a+b</code></strong>, akorát o něco rychleji. 
Vrací <code class="constant">null</code>. Dostupné od verze 1.0.13.</p></dd></dl></div><div class="note" 
style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Poznámka</h3><p>Operátor @() dává 
operátoru : více možností. S ním můžete určovat části matice. Takže a@(2:4,6) jsou řádky 2,3,4 sloupce 6. 
Nebo a@(,1:2) vám dá první dva sloupce matice. Do operátoru @() můžete i přiřazovat, stačí když je pravou 
hodnotou matice o stejném rozměru jako určená oblast nebo je to jiný typ hodnoty.</p></div><div class="note"
  style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Poznámka</h3><p>Porovnávací operátory 
(vyjma operátoru &lt;=&gt;, který se chová normálně) nejsou striktně binární operátory, mohou být fakticky 
seskupovány běžným matematickým způsobem, např.: (1&lt;x&lt;=y&lt;5) je platný pravdivostní výraz a znamená 
přesně to, co by měl, tj. (1&lt;x a x≤y a y&lt;5)</p></div><div class="note" style="margin-left: 0.5in; 
margin-right: 0.5in;"><h3 class="title">Poznámka</h3><p>Unární operátor mínus funguje různými způsoby v 
závislosti na tom, kde se vyskytuje. Když se objeví před číslem, váže se přímo k němu. Když se objeví před 
výrazem, má slabší vazbu než mocnina a faktoriál. Například <strong 
class="userinput"><code>-1^k</code></strong> je ve skutečnosti <strong 
class="userinput"><code>(-1)^k</code></strong>, ale <strong 
class="userinput"><code>-neco(1)^k</code></strong> je ve skutečnosti <strong class="userinpu
 t"><code>-(neco(1)^k)</code></strong>. Takže věnujte pozornost tomu, jak je používáte a pokud máte 
pochybnosti, raději přidejte závorky.</p></div></div><div class="navfooter"><hr><table width="100%" 
summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch05s06.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch05.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch06.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Modulární aritmetika 
</td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Kapitola 6. Programování s jazykem GEL</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch06s05.html b/help/cs/html/ch06s05.html
index 50dbc67..59bb53e 100644
--- a/help/cs/html/ch06s05.html
+++ b/help/cs/html/ch06s05.html
@@ -1,12 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Globální proměnné a 
působnost proměnných</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch06.html" title="Kapitola 6. 
Programování s jazykem GEL"><link rel="prev" href="ch06s04.html" title="Porovnávací operátory"><link 
rel="next" href="ch06s06.html" title="Proměnné parametrů"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Globální proměnné a působnost proměnných</th></tr><tr><td 
width="20%" align="left"><a accesskey="p" href="ch06s04.html">Předcházející</a> </td><th width="60%" 
align="center">Kapitola 6. Programování s jazykem GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch06s06.htm
 l">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="genius-gel-variables-global"></a>Globální proměnné a působnost 
proměnných</h2></div></div></div><p>
-         GEL is a
-         <a class="ulink" href="https://en.wikipedia.org/wiki/Scope_%28programming%29"; target="_top">
-         dynamically scoped language</a>.  We will explain what this
-         means below.  That is, normal variables and functions are dynamically
-         scoped.  The exception are 
-         <a class="link" href="ch06s06.html" title="Proměnné parametrů">parameter variables</a>,
-         which are always global.
-       </p><p>Podobně jako většina programovacích jazyků, i GEL má různé typy proměnných. Když je proměnná 
normálně definována ve funkci, je viditelná z této funkce a ze všech funkcí, které jsou z ní volány (všechny 
kontexty s vyšším číslem). Například předpokládejme, že funkce <code class="function">f</code> definuje 
proměnnou <code class="varname">a</code> a pak volá funkci <code class="function">g</code>. Potom se funkce 
<code class="function">g</code> může odkazovat na proměnnou <code class="varname">a</code>. Ale jakmile dojde 
k návratu z funkce <code class="function">f</code>, platnost <code class="varname">a</code> zaniká. Např. 
následují kód vypíše 5. Funkce <code class="function">g</code> nemůže být volána z nejvyšší úrovně (mimo 
funkci <code class="function">f</code>, protože proměnná <code class="varname">a</code> pak není definována). 
</p><pre class="programlisting">function f() = (a:=5; g());
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Globální proměnné a 
působnost proměnných</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch06.html" title="Kapitola 6. 
Programování s jazykem GEL"><link rel="prev" href="ch06s04.html" title="Porovnávací operátory"><link 
rel="next" href="ch06s06.html" title="Proměnné parametrů"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Globální proměnné a působnost proměnných</th></tr><tr><td 
width="20%" align="left"><a accesskey="p" href="ch06s04.html">Předcházející</a> </td><th width="60%" 
align="center">Kapitola 6. Programování s jazykem GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch06s06.htm
 l">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="genius-gel-variables-global"></a>Globální proměnné a působnost 
proměnných</h2></div></div></div><p>GEL je <a class="ulink" 
href="https://en.wikipedia.org/wiki/Scope_%28programming%29"; target="_top">jazyk s dynamickým rozsahem 
platnosti</a>. Co to znamená hned vysvětlíme. Je to to, že normální proměnné a funkce mají dynamicky 
vymezenou platnost. Výjimkou jsou <a class="link" href="ch06s06.html" title="Proměnné parametrů">proměnné 
parametrů</a>, kterou jsou vždy globální.</p><p>Podobně jako většina programovacích jazyků, i GEL má různé 
typy proměnných. Když je proměnná normálně definována ve funkci, je viditelná z této funkce a ze všech 
funkcí, které jsou z ní volány (všechny kontexty s vyšším číslem). Například předpokládejme, že funkce <code 
class="function">f</code> definuje 
 proměnnou <code class="varname">a</code> a pak volá funkci <code class="function">g</code>. Potom se funkce 
<code class="function">g</code> může odkazovat na proměnnou <code class="varname">a</code>. Ale jakmile dojde 
k návratu z funkce <code class="function">f</code>, platnost <code class="varname">a</code> zaniká. Např. 
následují kód vypíše 5. Funkce <code class="function">g</code> nemůže být volána z nejvyšší úrovně (mimo 
funkci <code class="function">f</code>, protože proměnná <code class="varname">a</code> pak není definována). 
</p><pre class="programlisting">function f() = (a:=5; g());
 function g() = print(a);
 f();
 </pre><p>Pokud definujete proměnnou uvnitř funkce, přepíše jinou proměnnou definovanou ve volající funkci. 
Například upravíme předchozí kód a napíšeme: </p><pre class="programlisting">function f() = (a:=5; g());
diff --git a/help/cs/html/ch07s02.html b/help/cs/html/ch07s02.html
index 711839c..66c8258 100644
--- a/help/cs/html/ch07s02.html
+++ b/help/cs/html/ch07s02.html
@@ -1,35 +1,14 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Syntaxe v nejvyšší 
úrovni</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch07.html" title="Kapitola 7. 
Pokročilé programování v jazyce GEL"><link rel="prev" href="ch07.html" title="Kapitola 7. Pokročilé 
programování v jazyce GEL"><link rel="next" href="ch07s03.html" title="Vracení funkcí"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table 
width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Syntaxe v nejvyšší 
úrovni</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch07.html">Předcházející</a> </td><th 
width="60%" align="center">Kapitola 7. Pokročilé programování v jazyce GEL</th><td width="20%" align="right"> 
<a accesskey="n" href="ch07s03.h
 tml">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="genius-gel-toplevel-syntax"></a>Syntaxe v nejvyšší 
úrovni</h2></div></div></div><p>
-       The syntax is slightly different if you enter statements on
-       the top level versus when they are inside parentheses or
-       inside functions.  On the top level, enter acts the same as if
-       you press return on the command line.  Therefore think of programs
-       as just a sequence of lines as if they were entered on the command line.
-       In particular, you do not need to enter the separator at the end of the
-       line (unless it is of course part of several statements inside
-       parentheses).  When a statement does not end with a separator on the
-       top level, the result is printed after being executed.
-      </p><p>
-       For example,
-       </p><pre class="programlisting">function f(x)=x^2
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Syntaxe v nejvyšší 
úrovni</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch07.html" title="Kapitola 7. 
Pokročilé programování v jazyce GEL"><link rel="prev" href="ch07.html" title="Kapitola 7. Pokročilé 
programování v jazyce GEL"><link rel="next" href="ch07s03.html" title="Vracení funkcí"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table 
width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Syntaxe v nejvyšší 
úrovni</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch07.html">Předcházející</a> </td><th 
width="60%" align="center">Kapitola 7. Pokročilé programování v jazyce GEL</th><td width="20%" align="right"> 
<a accesskey="n" href="ch07s03.h
 tml">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="genius-gel-toplevel-syntax"></a>Syntaxe v nejvyšší 
úrovni</h2></div></div></div><p>Syntaxe se lehce liší, když zadáváte příkazy v nejvyšší úrovni a když jsou 
uvnitř závorek nebo uvnitř funkce. Na nejvyšší úrovni zadání funguje stejně, jako když zmáčknete Enter na 
příkazovém řádku. Proto uvažujte o programu, jako o sekvenci řádků, které byste zadávali na příkazovém řádku. 
Především nepotřebujete zadávat oddělovač na konci řádku (ledaže se jedná o část několika příkazů v 
závorkách). Když výraz nekončí na nejvyšší úrovni oddělovačem, bude výsledek vypsán až po 
spuštění.</p><p>Například, </p><pre class="programlisting">function f(x)=x^2
 f(3)
-</pre><p>
-       will print first the result of setting a function (a representation of
-       the function, in this case <code class="computeroutput">(`(x)=(x^2))</code>)
-       and then the expected 9.  To avoid this, enter a separator
-       after the function definition.
-       </p><pre class="programlisting">function f(x)=x^2;
+</pre><p> vypíše se jako první výsledek nastavení funkce (tj. reprezentaci funkce, v tomto případě <code 
class="computeroutput">(`(x)=(x^2))</code>) a teprve pak očekávané číslo 9. Abyste tomu předešli, zadejte za 
definici funkce oddělovače. </p><pre class="programlisting">function f(x)=x^2;
 f(3)
-</pre><p>
-       If you need to put a separator into your function then you have to surround with
-       parenthesis.  For example:
-</p><pre class="programlisting">function f(x)=(
+</pre><p> Když potřebujete oddělovač použít přímo ve své funkci, musíte ji uzavřít do závorek. Například: 
</p><pre class="programlisting">function f(x)=(
   y=1;
   for j=1 to x do
     y = y+j;
   y^2
 );
-</pre><p>
-      </p><p>Následující kód skončí chybou, pokud jej zadáte v nejvyšší úrovni programu, zatímco ve funkci 
bude pracovat bez problémů. </p><pre class="programlisting">if Neco() then
+</pre><p>Následující kód skončí chybou, pokud jej zadáte v nejvyšší úrovni programu, zatímco ve funkci bude 
pracovat bez problémů. </p><pre class="programlisting">if Neco() then
   UdelatNeco()
 else
   UdelatNecoJineho()
diff --git a/help/cs/html/ch11s04.html b/help/cs/html/ch11s04.html
index 9c76f0b..a5f01d9 100644
--- a/help/cs/html/ch11s04.html
+++ b/help/cs/html/ch11s04.html
@@ -1,28 +1 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Konstanty</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka 
k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" 
href="ch11s03.html" title="Parametry"><link rel="next" href="ch11s05.html" title="Práce s čísly"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table 
width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Konstanty</th></tr><tr><td 
width="20%" align="left"><a accesskey="p" href="ch11s03.html">Předcházející</a> </td><th width="60%" 
align="center">Kapitola 11. Seznam funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s05.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class="title" st
 yle="clear: both"><a name="genius-gel-function-list-constants"></a>Konstanty</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-CatalanConstant"></a>CatalanConstant</span></dt><dd><pre 
class="synopsis">CatalanConstant</pre><p>Catalanova konstanta, přibližně 0,915… Je definována jako řada se 
členy <strong class="userinput"><code>(-1^k)/((2*k+1)^2)</code></strong>, kde <code class="varname">k</code> 
je z intervalu 0 až nekonečno.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Catalan%27s_constant"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/CatalansConstant.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-EulerConstant"></a>EulerConstant</span></dt><dd><pre 
class="synopsis">EulerConstant</pre><p>Alternativní názvy: <code class="function">gamma</code></p><p>Eulerova 
konstanta gama. Někdy nazývaná také Eulerova-Mascheroniho konstanta.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Euler-Mascheroni_constant"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/MascheroniConstant"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/Euler-MascheroniConstant.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-GoldenRatio"></a>GoldenRatio</span></dt><dd><pre 
class="synopsis">GoldenRatio</pre><p>Zlatý řez.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Golden_ratio"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/GoldenRatio"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/GoldenRatio.html"; target="_top">Mathworld</a> 
for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-Gravity"></a>Gravity</span></dt><dd><pre 
class="synopsis">Gravity</pre><p>Tíhové zrychlení na úrovni moře v metrech za sekundu na druhou. Jedná se o 
standardní gravitační konstantu 9,80665. Gravitace v končinách vašeho lesa se může lišit, kvůli jiné 
nadmořské výšce a kvůli tomu, že Země není ideálně kulatá a jednolitá.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Standard_gravity"; 
target="_top">Wikipedia</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-e"></a>e</span></dt><dd><pre 
class="synopsis">e</pre><p>Základ přirozeného logaritmu. <strong class="userinput"><code>e^x</code></strong> 
je exponenciální funkce <a class="link" href="ch11s05.html#gel-function-exp"><code 
class="function">exp</code></a>. Hodnota konstanty je přibližně 2,71828182846… Toto číslo bývá někdy nazýváno 
Eulerovo, ačkoliv existuje několik čísel rovněž nazývaných Eulerovo. Například konstanta gamma: <a 
class="link" href="ch11s04.html#gel-function-EulerConstant"><code 
class="function">EulerConstant</code></a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/E_(mathematical_constant)" 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/E"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/e.html"; target="_top">Mathworld</a> for more 
information.
-         </p></dd><dt><span class="term"><a name="gel-function-pi"></a>pi</span></dt><dd><pre 
class="synopsis">pi</pre><p>Číslo pí, což je poměr obvodu kružnice vůči jejímu průměru. Přibližně to je 
3,14159265359…</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Pi"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/Pi"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/Pi.html"; target="_top">Mathworld</a> for more 
information.
-         </p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s03.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s05.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Parametry 
</td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Práce s čísly</td></tr></table></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Konstanty</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka 
k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" 
href="ch11s03.html" title="Parametry"><link rel="next" href="ch11s05.html" title="Práce s čísly"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table 
width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Konstanty</th></tr><tr><td 
width="20%" align="left"><a accesskey="p" href="ch11s03.html">Předcházející</a> </td><th width="60%" 
align="center">Kapitola 11. Seznam funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s05.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class="title" st
 yle="clear: both"><a name="genius-gel-function-list-constants"></a>Konstanty</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-CatalanConstant"></a>CatalanConstant</span></dt><dd><pre 
class="synopsis">CatalanConstant</pre><p>Catalanova konstanta, přibližně 0,915… Je definována jako řada se 
členy <strong class="userinput"><code>(-1^k)/((2*k+1)^2)</code></strong>, kde <code class="varname">k</code> 
je z intervalu 0 až nekonečno.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/CatalansConstant.html"; target="_top">Mathworld</a> (text je v angličtině) 
a <a class="ulink" href="https://en.wikipedia.org/wiki/Catalan%27s_constant"; target="_top">Wikipedia</a> 
(text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-EulerConstant"></a>EulerConstant</span></dt><dd><pre 
class="synopsis">EulerConstant</pre><p>Alternativní názvy: <code
  class="function">gamma</code></p><p>Eulerova konstanta gama. Někdy nazývaná také Eulerova-Mascheroniho 
konstanta.</p><p>Více informací najdete v encyklopediíc <a class="ulink" 
href="http://planetmath.org/MascheroniConstant"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/Euler-MascheroniConstant.html"; target="_top">Mathworld</a> 
(text je v angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Eulerova_konstanta"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-GoldenRatio"></a>GoldenRatio</span></dt><dd><pre 
class="synopsis">GoldenRatio</pre><p>Zlatý řez.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/GoldenRatio"; target="_top">Planetmath</a> (text je v angličtině), 
<a class="ulink" href="http://mathworld.wolfram.com/GoldenRatio.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="
 https://cs.wikipedia.org/wiki/Zlat%C3%BD_%C5%99ez"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-Gravity"></a>Gravity</span></dt><dd><pre 
class="synopsis">Gravity</pre><p>Tíhové zrychlení na úrovni moře v metrech za sekundu na druhou. Jedná se o 
standardní gravitační konstantu 9,80665. Gravitace v končinách vašeho lesa se může lišit, kvůli jiné 
nadmořské výšce a kvůli tomu, že Země není ideálně kulatá a jednolitá.</p><p>Více informací najdete v 
encyklopedii <a class="ulink" href="https://en.wikipedia.org/wiki/Standard_gravity"; 
target="_top">Wikipedia</a>(text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-e"></a>e</span></dt><dd><pre class="synopsis">e</pre><p>Základ přirozeného logaritmu. 
<strong class="userinput"><code>e^x</code></strong> je exponenciální funkce <a class="link" 
href="ch11s05.html#gel-function-exp"><code class="function">exp</code></a>. Hodnota konstanty je př
 ibližně 2,71828182846… Toto číslo bývá někdy nazýváno Eulerovo, ačkoliv existuje několik čísel rovněž 
nazývaných Eulerovo. Například konstanta gamma: <a class="link" 
href="ch11s04.html#gel-function-EulerConstant"><code class="function">EulerConstant</code></a>.</p><p>Více 
informací najdete v encyklopediích <a class="ulink" href="http://planetmath.org/E"; 
target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/e.html"; target="_top">Mathworld</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Eulerovo_%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-pi"></a>pi</span></dt><dd><pre class="synopsis">pi</pre><p>Číslo pí, což je poměr obvodu 
kružnice vůči jejímu průměru. Přibližně to je 3,14159265359…</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/Pi"; target="_top">
 Planetmath</a> (text je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/Pi.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/P%C3%AD_%28%C4%8D%C3%ADslo%29"; 
target="_top">Wikipedia</a>.</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" 
summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch11s03.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s05.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Parametry </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Práce s čísly</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s05.html b/help/cs/html/ch11s05.html
index 943fb85..b344f29 100644
--- a/help/cs/html/ch11s05.html
+++ b/help/cs/html/ch11s05.html
@@ -1,44 +1,8 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Práce s 
čísly</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s04.html" title="Konstanty"><link rel="next" 
href="ch11s06.html" title="Trigonometrie"></head><body bgcolor="white" text="black" link="#0000FF" 
vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Práce s čísly</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s04.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s06.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class
 ="title" style="clear: both"><a name="genius-gel-function-list-numeric"></a>Práce s 
čísly</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-AbsoluteValue"></a>AbsoluteValue</span></dt><dd><pre class="synopsis">AbsoluteValue 
(x)</pre><p>Alternativní názvy: <code class="function">abs</code></p><p>Absolutní hodnota čísla <code 
class="varname">x</code>, případně modul v případě komplexního čísla <code class="varname">x</code>. U 
komplexního čísla to je vlastně vzdálenost <code class="varname">x</code> od počátku. Je to to stejné, jako 
<strong class="userinput"><code>|x|</code></strong>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Absolute_value"; target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/AbsoluteValue"; target="_top">Planetmath (absolute 
value)</a>,
-           <a class="ulink" href="http://planetmath.org/ModulusOfComplexNumber"; target="_top">Planetmath 
(modulus)</a>,
-           <a class="ulink" href="http://mathworld.wolfram.com/AbsoluteValue.html"; target="_top">Mathworld 
(absolute value)</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/ComplexModulus.html"; target="_top">Mathworld 
(complex modulus)</a>
-for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-Chop"></a>Chop</span></dt><dd><pre 
class="synopsis">Chop (x)</pre><p>Nahrazovat velmi malá čísla nulou.</p></dd><dt><span class="term"><a 
name="gel-function-ComplexConjugate"></a>ComplexConjugate</span></dt><dd><pre 
class="synopsis">ComplexConjugate (z)</pre><p>Alternativní názvy: <code class="function">conj</code> <code 
class="function">Conj</code></p><p>Vypočítá komplexně sdružené číslo ke komplexnímu číslu <code 
class="varname">z</code>. Pokud je <code class="varname">z</code> vektor nebo matice, vypočítají se komplexně 
sdružená čísla pro všechny prvky.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Complex_conjugate"; 
target="_top">Wikipedia</a> for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-Denominator"></a>Denominator</span></dt><dd><pre class="synopsis">Denominator 
(x)</pre><p>Získat jmenovatel racionálního čísla.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Denominator"; target="_top">Wikipedia</a> for 
more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-FractionalPart"></a>FractionalPart</span></dt><dd><pre class="synopsis">FractionalPart 
(x)</pre><p>Vrátit část čísla za desetinnou čárkou.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fractional_part"; target="_top">Wikipedia</a> 
for more information.
-          </p></dd><dt><span class="term"><a name="gel-function-Im"></a>Im</span></dt><dd><pre 
class="synopsis">Im (z)</pre><p>Alternativní názvy: <code class="function">ImaginaryPart</code></p><p>Vrátit 
imaginární část komplexního čísla. Například <strong class="userinput"><code>Re(3+4i)</code></strong> vyplodí 
4.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Imaginary_part"; target="_top">Wikipedia</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-IntegerQuotient"></a>IntegerQuotient</span></dt><dd><pre class="synopsis">IntegerQuotient 
(m,n)</pre><p>Dělit beze zbytku.</p></dd><dt><span class="term"><a 
name="gel-function-IsComplex"></a>IsComplex</span></dt><dd><pre class="synopsis">IsComplex 
(num)</pre><p>Zkontrolovat, jestli je argument komplexní (ne reálné) číslo. Tím se míní opravdu číslo, které 
není reálné. Takže <strong class="userinput"><code>IsComplex(3)</code></strong> vrátí <code 
class="constant">false</code>, zatímco <strong class="userinput"><code>IsComplex(3-1i)</code></strong> vrátí 
<code class="constant">true</code>.</p></dd><dt><span class="term"><a 
name="gel-function-IsComplexRational"></a>IsComplexRational</span></dt><dd><pre 
class="synopsis">IsComplexRational (num)</pre><p>Zkontrolovat, zda je argument komplexní racionální číslo. 
Tzn., že jak reální, tak imaginární část jsou zadány jako racionální čís
 la. Racionálním se samozřejmě myslí, že „není uloženo jako desetinné číslo s plovoucí 
čárkou“.</p></dd><dt><span class="term"><a name="gel-function-IsFloat"></a>IsFloat</span></dt><dd><pre 
class="synopsis">IsFloat (num)</pre><p>Zkontrolovat, zda je argument reálné desetinné číslo (ne 
komplexní).</p></dd><dt><span class="term"><a 
name="gel-function-IsGaussInteger"></a>IsGaussInteger</span></dt><dd><pre class="synopsis">IsGaussInteger 
(num)</pre><p>Alternativní názvy: <code class="function">IsComplexInteger</code></p><p>Zkontrolovat, jestli 
je argument celé komplexní číslo. Celé komplexní číslo je číslo ve tvaru <strong 
class="userinput"><code>n+1i*m</code></strong>, kde <code class="varname">n</code> a <code 
class="varname">m</code> jsou celá čísla.</p></dd><dt><span class="term"><a 
name="gel-function-IsInteger"></a>IsInteger</span></dt><dd><pre class="synopsis">IsInteger 
(num)</pre><p>Zkontrolovat, zda je argument celé číslo (ne komp
 lexní).</p></dd><dt><span class="term"><a 
name="gel-function-IsNonNegativeInteger"></a>IsNonNegativeInteger</span></dt><dd><pre 
class="synopsis">IsNonNegativeInteger (num)</pre><p>Zkontrolovat, zda je argument nezáporné reálné celé 
číslo. Tj. buď kladné celé číslo nebo nula.</p></dd><dt><span class="term"><a 
name="gel-function-IsPositiveInteger"></a>IsPositiveInteger</span></dt><dd><pre 
class="synopsis">IsPositiveInteger (num)</pre><p>Alternativní názvy: <code 
class="function">IsNaturalNumber</code></p><p>Zkontrolovat, zda je argument kladné reálné celé číslo. 
Upozorňujeme, že se řídíme konvencí, že 0 není přirozené číslo.</p></dd><dt><span class="term"><a 
name="gel-function-IsRational"></a>IsRational</span></dt><dd><pre class="synopsis">IsRational 
(num)</pre><p>Zkontrolovat, zda je argument racionální (ne komplexní) číslo. Racionální samozřejmě prostě 
znamená „není uloženo jako desetinné číslo s plovoucí čárkou“.</p></
 dd><dt><span class="term"><a name="gel-function-IsReal"></a>IsReal</span></dt><dd><pre 
class="synopsis">IsReal (num)</pre><p>Zkontrolovat, zda je argument reálné číslo.</p></dd><dt><span 
class="term"><a name="gel-function-Numerator"></a>Numerator</span></dt><dd><pre class="synopsis">Numerator 
(x)</pre><p>Získat čitatel racionálního čísla.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Numerator"; target="_top">Wikipedia</a> for 
more information.
-          </p></dd><dt><span class="term"><a name="gel-function-Re"></a>Re</span></dt><dd><pre 
class="synopsis">Re (z)</pre><p>Alternativní názvy: <code class="function">RealPart</code></p><p>Vrátit 
reálnou část komplexního čísla. Například <strong class="userinput"><code>Re(3+4i)</code></strong> vyplodí 
3.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Real_part"; target="_top">Wikipedia</a> for 
more information.
-          </p></dd><dt><span class="term"><a name="gel-function-Sign"></a>Sign</span></dt><dd><pre 
class="synopsis">Sign (x)</pre><p>Alternativní názvy: <code class="function">sign</code></p><p>Vrátit 
znaménko čísla. Konkrétně vrací <code class="literal">-1</code> u záporných čísel, <code 
class="literal">0</code> pro nulu a  <code class="literal">1</code> u kladných čísel. Pokud je <code 
class="varname">x</code> komplexní hodnota, pak <code class="function">Sign</code> vrací směr nebo 
0.</p></dd><dt><span class="term"><a name="gel-function-ceil"></a>ceil</span></dt><dd><pre 
class="synopsis">ceil (x)</pre><p>Alternativní názvy: <code class="function">Ceiling</code></p><p>Získat 
nejnižší celé číslo, které je větší nebo rovno <code class="varname">n</code>. Například: </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>ceil(1.1)</code></strong>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Práce s 
čísly</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s04.html" title="Konstanty"><link rel="next" 
href="ch11s06.html" title="Trigonometrie"></head><body bgcolor="white" text="black" link="#0000FF" 
vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Práce s čísly</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s04.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s06.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class
 ="title" style="clear: both"><a name="genius-gel-function-list-numeric"></a>Práce s 
čísly</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-AbsoluteValue"></a>AbsoluteValue</span></dt><dd><pre class="synopsis">AbsoluteValue 
(x)</pre><p>Alternativní názvy: <code class="function">abs</code></p><p>Absolutní hodnota čísla <code 
class="varname">x</code>, případně modul v případě komplexního čísla <code class="varname">x</code>. U 
komplexního čísla to je vlastně vzdálenost <code class="varname">x</code> od počátku. Je to to stejné, jako 
<strong class="userinput"><code>|x|</code></strong>.</p><p>Více informací najdete v encyklopedii <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Absolutn%C3%AD_hodnota"; target="_top">Wikipedia</a>, <a 
class="ulink" href="http://planetmath.org/AbsoluteValue"; target="_top">Planetmath (absolutní hodnota; text je 
v angličtině)</a>, <a class="ulink" hr
 ef="http://planetmath.org/ModulusOfComplexNumber"; target="_top">Planetmath (absolutní hodnota komplexního 
čísla; text je v angličtině)</a>, <a class="ulink" href="http://mathworld.wolfram.com/AbsoluteValue.html"; 
target="_top">Mathworld (absolutní hodnota; text je v angličtině)</a> a <a class="ulink" 
href="http://mathworld.wolfram.com/ComplexModulus.html"; target="_top">Mathworld (absolutní hodnota 
komplexního čísla; text je v angličtině)</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Chop"></a>Chop</span></dt><dd><pre class="synopsis">Chop (x)</pre><p>Nahrazovat velmi malá 
čísla nulou.</p></dd><dt><span class="term"><a 
name="gel-function-ComplexConjugate"></a>ComplexConjugate</span></dt><dd><pre 
class="synopsis">ComplexConjugate (z)</pre><p>Alternativní názvy: <code class="function">conj</code> <code 
class="function">Conj</code></p><p>Vypočítá komplexně sdružené číslo ke komplexnímu číslu <code 
class="varname">z</code>. Pokud je <code
  class="varname">z</code> vektor nebo matice, vypočítají se komplexně sdružená čísla pro všechny 
prvky.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Komplexn%C4%9B_sdru%C5%BEen%C3%A9_%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Denominator"></a>Denominator</span></dt><dd><pre class="synopsis">Denominator 
(x)</pre><p>Získat jmenovatel racionálního čísla.</p><p>Více informací najdete v encyklopedii <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Jmenovatel"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-FractionalPart"></a>FractionalPart</span></dt><dd><pre 
class="synopsis">FractionalPart (x)</pre><p>Vrátit část čísla za desetinnou čárkou.</p><p>Více informací 
najdete v encyklopedii <a class="ulink" href="https://en.wikipedia.org/wiki/Fractional_part"; 
target="_top">Wikipedia</a> (text je v angličtině).</p
</dd><dt><span class="term"><a name="gel-function-Im"></a>Im</span></dt><dd><pre class="synopsis">Im 
(z)</pre><p>Alternativní názvy: <code class="function">ImaginaryPart</code></p><p>Vrátit imaginární část 
komplexního čísla. Například <strong class="userinput"><code>Re(3+4i)</code></strong> vyplodí 4.</p><p>Více 
informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Imagin%C3%A1rn%C3%AD_%C4%8D%C3%A1st#Z.C3.A1pis_a_souvisej.C3.ADc.C3.AD_pojmy";
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IntegerQuotient"></a>IntegerQuotient</span></dt><dd><pre 
class="synopsis">IntegerQuotient (m,n)</pre><p>Dělit beze zbytku.</p></dd><dt><span class="term"><a 
name="gel-function-IsComplex"></a>IsComplex</span></dt><dd><pre class="synopsis">IsComplex 
(num)</pre><p>Zkontrolovat, jestli je argument komplexní (ne reálné) číslo. Tím se míní opravdu číslo, 
které není reálné. Takže <strong class="userin
 put"><code>IsComplex(3)</code></strong> vrátí <code class="constant">false</code>, zatímco <strong 
class="userinput"><code>IsComplex(3-1i)</code></strong> vrátí <code 
class="constant">true</code>.</p></dd><dt><span class="term"><a 
name="gel-function-IsComplexRational"></a>IsComplexRational</span></dt><dd><pre 
class="synopsis">IsComplexRational (num)</pre><p>Zkontrolovat, zda je argument komplexní racionální číslo. 
Tzn., že jak reální, tak imaginární část jsou zadány jako racionální čísla. Racionálním se samozřejmě myslí, 
že „není uloženo jako desetinné číslo s plovoucí čárkou“.</p></dd><dt><span class="term"><a 
name="gel-function-IsFloat"></a>IsFloat</span></dt><dd><pre class="synopsis">IsFloat 
(num)</pre><p>Zkontrolovat, zda je argument reálné desetinné číslo (ne komplexní).</p></dd><dt><span 
class="term"><a name="gel-function-IsGaussInteger"></a>IsGaussInteger</span></dt><dd><pre 
class="synopsis">IsGaussInteger (num)</pre><p>Al
 ternativní názvy: <code class="function">IsComplexInteger</code></p><p>Zkontrolovat, jestli je argument celé 
komplexní číslo. Celé komplexní číslo je číslo ve tvaru <strong 
class="userinput"><code>n+1i*m</code></strong>, kde <code class="varname">n</code> a <code 
class="varname">m</code> jsou celá čísla.</p></dd><dt><span class="term"><a 
name="gel-function-IsInteger"></a>IsInteger</span></dt><dd><pre class="synopsis">IsInteger 
(num)</pre><p>Zkontrolovat, zda je argument celé číslo (ne komplexní).</p></dd><dt><span class="term"><a 
name="gel-function-IsNonNegativeInteger"></a>IsNonNegativeInteger</span></dt><dd><pre 
class="synopsis">IsNonNegativeInteger (num)</pre><p>Zkontrolovat, zda je argument nezáporné reálné celé 
číslo. Tj. buď kladné celé číslo nebo nula.</p></dd><dt><span class="term"><a 
name="gel-function-IsPositiveInteger"></a>IsPositiveInteger</span></dt><dd><pre 
class="synopsis">IsPositiveInteger (num)</pre><p>Alternativní názvy: <co
 de class="function">IsNaturalNumber</code></p><p>Zkontrolovat, zda je argument kladné reálné celé číslo. 
Upozorňujeme, že se řídíme konvencí, že 0 není přirozené číslo.</p></dd><dt><span class="term"><a 
name="gel-function-IsRational"></a>IsRational</span></dt><dd><pre class="synopsis">IsRational 
(num)</pre><p>Zkontrolovat, zda je argument racionální (ne komplexní) číslo. Racionální samozřejmě prostě 
znamená „není uloženo jako desetinné číslo s plovoucí čárkou“.</p></dd><dt><span class="term"><a 
name="gel-function-IsReal"></a>IsReal</span></dt><dd><pre class="synopsis">IsReal (num)</pre><p>Zkontrolovat, 
zda je argument reálné číslo.</p></dd><dt><span class="term"><a 
name="gel-function-Numerator"></a>Numerator</span></dt><dd><pre class="synopsis">Numerator (x)</pre><p>Získat 
čitatel racionálního čísla.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/%C4%8Citatel"; target="_top"
Wikipedia</a>.</p></dd><dt><span class="term"><a name="gel-function-Re"></a>Re</span></dt><dd><pre 
class="synopsis">Re (z)</pre><p>Alternativní názvy: <code class="function">RealPart</code></p><p>Vrátit 
reálnou část komplexního čísla. Například <strong class="userinput"><code>Re(3+4i)</code></strong> vyplodí 
3.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Re%C3%A1ln%C3%A1_%C4%8D%C3%A1st#Z.C3.A1pis_a_souvisej.C3.ADc.C3.AD_pojmy";
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Sign"></a>Sign</span></dt><dd><pre class="synopsis">Sign (x)</pre><p>Alternativní názvy: 
<code class="function">sign</code></p><p>Vrátit znaménko čísla. Konkrétně vrací <code 
class="literal">-1</code> u záporných čísel, <code class="literal">0</code> pro nulu a  <code 
class="literal">1</code> u kladných čísel. Pokud je <code class="varname">x</code> komplexní hodnota, pak 
<code class="fun
 ction">Sign</code> vrací směr nebo 0.</p></dd><dt><span class="term"><a 
name="gel-function-ceil"></a>ceil</span></dt><dd><pre class="synopsis">ceil (x)</pre><p>Alternativní názvy: 
<code class="function">Ceiling</code></p><p>Získat nejnižší celé číslo, které je větší nebo rovno <code 
class="varname">n</code>. Například: </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>ceil(1.1)</code></strong>
 = 2
 <code class="prompt">genius&gt;</code> <strong class="userinput"><code>ceil(-1.1)</code></strong>
 = -1
-</pre><p>Měli byste být obezřetní a uvědomit si, že desetinná čísla jsou uchovávána v binární podobě, takže 
nemusí mít naprosto přesně tu hodnotu, kterou očekáváte. Například <strong 
class="userinput"><code>ceil(420/4.2)</code></strong> vrací 101 a ne 100, jak byste asi očekávali. To je tím, 
že 4,2 je ve skutečnosti uloženo jako nepatrně méně než 4,2. Pokud chcete přesné výsledky, použijte 
racionální vyjádření <strong class="userinput"><code>42/10</code></strong>.</p></dd><dt><span class="term"><a 
name="gel-function-exp"></a>exp</span></dt><dd><pre class="synopsis">exp (x)</pre><p>Exponenciální funkce. 
Jedná se o funkci <strong class="userinput"><code>e^x</code></strong>, kde <code class="varname">e</code> je 
<a class="link" href="ch11s04.html#gel-function-e">základ přirozeného logaritmu</a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Exponential_function"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/LogarithmFunction"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/ExponentialFunction.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-float"></a>float</span></dt><dd><pre 
class="synopsis">float (x)</pre><p>Udělá z čísla desetinné číslo. Tzn., že vrací hodnotu čísla <code 
class="varname">x</code> v podobě čísla s plovoucí desetinnou čárkou.</p></dd><dt><span class="term"><a 
name="gel-function-floor"></a>floor</span></dt><dd><pre class="synopsis">floor (x)</pre><p>Alternativní 
názvy: <code class="function">Floor</code></p><p>Vrátit nejvyšší celé číslo, které je menší nebo rovno <code 
class="varname">n</code>.</p></dd><dt><span class="term"><a name="gel-function-ln"></a>ln</span></dt><dd><pre 
class="synopsis">ln (x)</pre><p>Přirozený logaritmus, logaritmus o základu <code 
class="varname">e</code>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Natural_logarithm"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/LogarithmFunction"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/NaturalLogarithm.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-log"></a>log</span></dt><dd><pre 
class="synopsis">log (x)</pre><pre class="synopsis">log (x,b)</pre><p>Logaritmus <code 
class="varname">x</code> o základu <code class="varname">b</code> (v režimu modulární aritmetiky nazýván <a 
class="link" href="ch11s07.html#gel-function-DiscreteLog"><code class="function">DiscreteLog</code></a>), 
pokud není základ uveden, použije se <a class="link" href="ch11s04.html#gel-function-e"><code 
class="varname">e</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-log10"></a>log10</span></dt><dd><pre class="synopsis">log10 (x)</pre><p>Logaritmus čísla 
<code class="varname">x</code> o základu 10.</p></dd><dt><span class="term"><a 
name="gel-function-log2"></a>log2</span></dt><dd><pre class="synopsis">log2 (x)</pre><p>Alternativní názvy: 
<code class="function">lg</code></p><p>Logaritmus čísla <code class="varname">x</code> o základu 
2.</p></dd><dt><span class="ter
 m"><a name="gel-function-max"></a>max</span></dt><dd><pre class="synopsis">max 
(a,argumenty...)</pre><p>Alternativní názvy: <code class="function">Max</code> <code 
class="function">Maximum</code></p><p>Vrací maximum z argumentů nebo matice.</p></dd><dt><span 
class="term"><a name="gel-function-min"></a>min</span></dt><dd><pre class="synopsis">min 
(a,argumenty...)</pre><p>Alternativní názvy: <code class="function">Min</code> <code 
class="function">Minimum</code></p><p>Vrátit minimum z argumentů nebo matice.</p></dd><dt><span 
class="term"><a name="gel-function-rand"></a>rand</span></dt><dd><pre class="synopsis">rand 
(velikost...)</pre><p>Generovat náhodné desetinné číslo z intervalu <code class="literal">[0,1)</code>. Pokud 
je zadána velikost, pak se vygeneruje matice (zadána dvě čísla) nebo vektor (zadáno jedno číslo) této 
velikosti.</p></dd><dt><span class="term"><a name="gel-function-randint"></a>randint</span></dt><dd><pre 
class="synopsis">randint (max
 ,velikost...)</pre><p>Generovat náhodné číslo z intervalu <code class="literal">[0,max)</code>. Pokud je 
zadána velikost, pak se vygeneruje matice (zadána dvě čísla) nebo vektor (zadáno jedno číslo) této velikosti. 
Například </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>randint(4)</code></strong>
+</pre><p>Měli byste být obezřetní a uvědomit si, že desetinná čísla jsou uchovávána v binární podobě, takže 
nemusí mít naprosto přesně tu hodnotu, kterou očekáváte. Například <strong 
class="userinput"><code>ceil(420/4.2)</code></strong> vrací 101 a ne 100, jak byste asi očekávali. To je tím, 
že 4,2 je ve skutečnosti uloženo jako nepatrně méně než 4,2. Pokud chcete přesné výsledky, použijte 
racionální vyjádření <strong class="userinput"><code>42/10</code></strong>.</p></dd><dt><span class="term"><a 
name="gel-function-exp"></a>exp</span></dt><dd><pre class="synopsis">exp (x)</pre><p>Exponenciální funkce. 
Jedná se o funkci <strong class="userinput"><code>e^x</code></strong>, kde <code class="varname">e</code> je 
<a class="link" href="ch11s04.html#gel-function-e">základ přirozeného logaritmu</a>.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="http://planetmath.org/LogarithmFunction"; 
target="_top">Planetma
 th</a> (text je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/ExponentialFunction.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Exponenci%C3%A1ln%C3%AD_funkce#Exponenci.C3.A1la_o_z.C3.A1kladu_e"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-float"></a>float</span></dt><dd><pre class="synopsis">float (x)</pre><p>Udělá z čísla 
desetinné číslo. Tzn., že vrací hodnotu čísla <code class="varname">x</code> v podobě čísla s plovoucí 
desetinnou čárkou.</p></dd><dt><span class="term"><a name="gel-function-floor"></a>floor</span></dt><dd><pre 
class="synopsis">floor (x)</pre><p>Alternativní názvy: <code class="function">Floor</code></p><p>Vrátit 
nejvyšší celé číslo, které je menší nebo rovno <code class="varname">n</code>.</p></dd><dt><span 
class="term"><a name="gel-function-ln"></a>ln</span></dt><dd><pre class="synopsis">ln (x)</pr
 e><p>Přirozený logaritmus, logaritmus o základu <code class="varname">e</code>.</p><p>Více informací najdete 
v encyklopediích <a class="ulink" href="http://planetmath.org/LogarithmFunction"; target="_top">Planetmath</a> 
(text je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/NaturalLogarithm.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Logaritmus#P.C5.99irozen.C3.BD_logaritmus"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-log"></a>log</span></dt><dd><pre class="synopsis">log (x)</pre><pre class="synopsis">log 
(x,b)</pre><p>Logaritmus <code class="varname">x</code> o základu <code class="varname">b</code> (v režimu 
modulární aritmetiky nazýván <a class="link" href="ch11s07.html#gel-function-DiscreteLog"><code 
class="function">DiscreteLog</code></a>), pokud není základ uveden, použije se <a class="link" 
href="ch11s04.html#gel-function-e"
<code class="varname">e</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-log10"></a>log10</span></dt><dd><pre class="synopsis">log10 (x)</pre><p>Logaritmus čísla 
<code class="varname">x</code> o základu 10.</p></dd><dt><span class="term"><a 
name="gel-function-log2"></a>log2</span></dt><dd><pre class="synopsis">log2 (x)</pre><p>Alternativní názvy: 
<code class="function">lg</code></p><p>Logaritmus čísla <code class="varname">x</code> o základu 
2.</p></dd><dt><span class="term"><a name="gel-function-max"></a>max</span></dt><dd><pre 
class="synopsis">max (a,argumenty...)</pre><p>Alternativní názvy: <code class="function">Max</code> <code 
class="function">Maximum</code></p><p>Vrací maximum z argumentů nebo matice.</p></dd><dt><span 
class="term"><a name="gel-function-min"></a>min</span></dt><dd><pre class="synopsis">min 
(a,argumenty...)</pre><p>Alternativní názvy: <code class="function">Min</code> <code 
class="function">Minimum</code></p><p>Vrátit mi
 nimum z argumentů nebo matice.</p></dd><dt><span class="term"><a 
name="gel-function-rand"></a>rand</span></dt><dd><pre class="synopsis">rand (velikost...)</pre><p>Generovat 
náhodné desetinné číslo z intervalu <code class="literal">[0,1)</code>. Pokud je zadána velikost, pak se 
vygeneruje matice (zadána dvě čísla) nebo vektor (zadáno jedno číslo) této velikosti.</p></dd><dt><span 
class="term"><a name="gel-function-randint"></a>randint</span></dt><dd><pre class="synopsis">randint 
(max,velikost...)</pre><p>Generovat náhodné číslo z intervalu <code class="literal">[0,max)</code>. Pokud je 
zadána velikost, pak se vygeneruje matice (zadána dvě čísla) nebo vektor (zadáno jedno číslo) této velikosti. 
Například </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>randint(4)</code></strong>
 = 3
 <code class="prompt">genius&gt;</code> <strong class="userinput"><code>randint(4,2)</code></strong>
 =
diff --git a/help/cs/html/ch11s06.html b/help/cs/html/ch11s06.html
index baf23b5..5422541 100644
--- a/help/cs/html/ch11s06.html
+++ b/help/cs/html/ch11s06.html
@@ -1,34 +1,2 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Trigonometrie</title><meta name="generator" content="DocBook XSL Stylesheets 
V1.79.1"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" 
href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" href="ch11s05.html" title="Práce s 
čísly"><link rel="next" href="ch11s07.html" title="Teorie čísel"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Trigonometrie</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s05.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s07.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 cla
 ss="title" style="clear: both"><a 
name="genius-gel-function-list-trigonometry"></a>Trigonometrie</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-acos"></a>acos</span></dt><dd><pre class="synopsis">acos (x)</pre><p>Alternativní názvy: 
<code class="function">arccos</code></p><p>Funkce arkus kosinus (inverzní kosinus).</p></dd><dt><span 
class="term"><a name="gel-function-acosh"></a>acosh</span></dt><dd><pre class="synopsis">acosh 
(x)</pre><p>Alternativní názvy: <code class="function">arccosh</code></p><p>Funkce arkus hyperbolický kosinus 
(inverzní cosh).</p></dd><dt><span class="term"><a name="gel-function-acot"></a>acot</span></dt><dd><pre 
class="synopsis">acot (x)</pre><p>Alternativní názvy: <code class="function">arccot</code></p><p>Funkce arkus 
kotangens (inverzní kotangens).</p></dd><dt><span class="term"><a 
name="gel-function-acoth"></a>acoth</span></dt><dd><pre class="synopsis">acoth (x)</pre
<p>Alternativní názvy: <code class="function">arccoth</code></p><p>Funkce arkus hyperbolický kotangens 
(inverzní coth).</p></dd><dt><span class="term"><a name="gel-function-acsc"></a>acsc</span></dt><dd><pre 
class="synopsis">acsc (x)</pre><p>Alternativní názvy: <code class="function">arccsc</code></p><p>Funkce 
inverzní kosekans.</p></dd><dt><span class="term"><a 
name="gel-function-acsch"></a>acsch</span></dt><dd><pre class="synopsis">acsch (x)</pre><p>Alternativní 
názvy: <code class="function">arccsch</code></p><p>Funkce inverzní hyperbolický kosekans.</p></dd><dt><span 
class="term"><a name="gel-function-asec"></a>asec</span></dt><dd><pre class="synopsis">asec 
(x)</pre><p>Alternativní názvy: <code class="function">arcsec</code></p><p>Funkce inverzní 
sekans.</p></dd><dt><span class="term"><a name="gel-function-asech"></a>asech</span></dt><dd><pre 
class="synopsis">asech (x)</pre><p>Alternativní názvy: <code class="function">arcsech</code></p><p>Funkce 
inverzn�
 � hyperbolický sekans.</p></dd><dt><span class="term"><a 
name="gel-function-asin"></a>asin</span></dt><dd><pre class="synopsis">asin (x)</pre><p>Alternativní názvy: 
<code class="function">arcsin</code></p><p>Funkce arkus sinus (inverzní sinus).</p></dd><dt><span 
class="term"><a name="gel-function-asinh"></a>asinh</span></dt><dd><pre class="synopsis">asinh 
(x)</pre><p>Alternativní názvy: <code class="function">arcsinh</code></p><p>Funkce arkus hyperbolický sinus 
(inverzní sinh).</p></dd><dt><span class="term"><a name="gel-function-atan"></a>atan</span></dt><dd><pre 
class="synopsis">atan (x)</pre><p>Alternativní názvy: <code class="function">arctan</code></p><p>Vypočítat 
funkce arkus tangens (inverzní tangens).</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Arctangent"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/InverseTangent.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-atanh"></a>atanh</span></dt><dd><pre 
class="synopsis">atanh (x)</pre><p>Alternativní názvy: <code class="function">arctanh</code></p><p>Funkce 
arkus hyperbolický tangens (inverzní tanh).</p></dd><dt><span class="term"><a 
name="gel-function-atan2"></a>atan2</span></dt><dd><pre class="synopsis">atan2 (y, x)</pre><p>Alternativní 
názvy: <code class="function">arctan2</code></p><p>Vypočítat funkci arctan2. Jestliže je <strong 
class="userinput"><code>x&gt;0</code></strong>, pak vrací <strong 
class="userinput"><code>atan(y/x)</code></strong>. Jestliže je <strong 
class="userinput"><code>x&lt;0</code></strong>, vrací <strong class="userinput"><code>sign(y) * (pi - 
atan(|y/x|)</code></strong>. A při <strong class="userinput"><code>x=0</code></strong> vrací <strong 
class="userinput"><code>sign(y) *
-         pi/2</code></strong>. Volání <strong class="userinput"><code>atan2(0,0)</code></strong> vrací 0 
namísto selhání.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Atan2"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/InverseTangent.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-cos"></a>cos</span></dt><dd><pre 
class="synopsis">cos (x)</pre><p>Vypočítat funkci kosinus.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Trigonometric_functions"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/DefinitionsInTrigonometry"; 
target="_top">Planetmath</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-cosh"></a>cosh</span></dt><dd><pre 
class="synopsis">cosh (x)</pre><p>Vypočítat funkci hyperbolický kosinus.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; 
target="_top">Wikipedia</a> a <a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-cot"></a>cot</span></dt><dd><pre class="synopsis">cot (x)</pre><p>Funkce kotangens.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Trigonometric_functions"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/DefinitionsInTrigonometry"; 
target="_top">Planetmath</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-coth"></a>coth</span></dt><dd><pre 
class="synopsis">coth (x)</pre><p>Funkce hyperbolický kotangens.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; 
target="_top">Wikipedia</a> a <a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-csc"></a>csc</span></dt><dd><pre class="synopsis">csc (x)</pre><p>Funkce kosekans.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Trigonometric_functions"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/DefinitionsInTrigonometry"; 
target="_top">Planetmath</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-csch"></a>csch</span></dt><dd><pre 
class="synopsis">csch (x)</pre><p>Funkce hyperbolický kosekans.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; target="_top">Wikipedia</a> a 
<a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-sec"></a>sec</span></dt><dd><pre 
class="synopsis">sec (x)</pre><p>Funkce sekans.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Trigonometric_functions"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/DefinitionsInTrigonometry"; 
target="_top">Planetmath</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-sech"></a>sech</span></dt><dd><pre 
class="synopsis">sech (x)</pre><p>Funkce hyperbolický sekans.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; target="_top">Wikipedia</a> a 
<a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-sin"></a>sin</span></dt><dd><pre 
class="synopsis">sin (x)</pre><p>Vypočítat funkci sinus.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Trigonometric_functions"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/DefinitionsInTrigonometry"; 
target="_top">Planetmath</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-sinh"></a>sinh</span></dt><dd><pre 
class="synopsis">sinh (x)</pre><p>Vypočítat funkci hyperbolický sinus.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; 
target="_top">Wikipedia</a> a <a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-tan"></a>tan</span></dt><dd><pre class="synopsis">tan (x)</pre><p>Vypočítat funkci 
tangens.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Trigonometric_functions"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/DefinitionsInTrigonometry"; 
target="_top">Planetmath</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-tanh"></a>tanh</span></dt><dd><pre 
class="synopsis">tanh (x)</pre><p>Funkce hyperbolický tangens.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; target="_top">Wikipedia</a> a 
<a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s05.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s07.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Práce s 
čísly </td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign=
 "top"> Teorie čísel</td></tr></table></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Trigonometrie</title><meta name="generator" content="DocBook XSL Stylesheets 
V1.79.1"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" 
href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" href="ch11s05.html" title="Práce s 
čísly"><link rel="next" href="ch11s07.html" title="Teorie čísel"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Trigonometrie</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s05.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s07.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 cla
 ss="title" style="clear: both"><a 
name="genius-gel-function-list-trigonometry"></a>Trigonometrie</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-acos"></a>acos</span></dt><dd><pre class="synopsis">acos (x)</pre><p>Alternativní názvy: 
<code class="function">arccos</code></p><p>Funkce arkus kosinus (inverzní kosinus).</p></dd><dt><span 
class="term"><a name="gel-function-acosh"></a>acosh</span></dt><dd><pre class="synopsis">acosh 
(x)</pre><p>Alternativní názvy: <code class="function">arccosh</code></p><p>Funkce arkus hyperbolický kosinus 
(inverzní cosh).</p></dd><dt><span class="term"><a name="gel-function-acot"></a>acot</span></dt><dd><pre 
class="synopsis">acot (x)</pre><p>Alternativní názvy: <code class="function">arccot</code></p><p>Funkce arkus 
kotangens (inverzní kotangens).</p></dd><dt><span class="term"><a 
name="gel-function-acoth"></a>acoth</span></dt><dd><pre class="synopsis">acoth (x)</pre
<p>Alternativní názvy: <code class="function">arccoth</code></p><p>Funkce arkus hyperbolický kotangens 
(inverzní coth).</p></dd><dt><span class="term"><a name="gel-function-acsc"></a>acsc</span></dt><dd><pre 
class="synopsis">acsc (x)</pre><p>Alternativní názvy: <code class="function">arccsc</code></p><p>Funkce 
inverzní kosekans.</p></dd><dt><span class="term"><a 
name="gel-function-acsch"></a>acsch</span></dt><dd><pre class="synopsis">acsch (x)</pre><p>Alternativní 
názvy: <code class="function">arccsch</code></p><p>Funkce inverzní hyperbolický kosekans.</p></dd><dt><span 
class="term"><a name="gel-function-asec"></a>asec</span></dt><dd><pre class="synopsis">asec 
(x)</pre><p>Alternativní názvy: <code class="function">arcsec</code></p><p>Funkce inverzní 
sekans.</p></dd><dt><span class="term"><a name="gel-function-asech"></a>asech</span></dt><dd><pre 
class="synopsis">asech (x)</pre><p>Alternativní názvy: <code class="function">arcsech</code></p><p>Funkce 
inverzn�
 � hyperbolický sekans.</p></dd><dt><span class="term"><a 
name="gel-function-asin"></a>asin</span></dt><dd><pre class="synopsis">asin (x)</pre><p>Alternativní názvy: 
<code class="function">arcsin</code></p><p>Funkce arkus sinus (inverzní sinus).</p></dd><dt><span 
class="term"><a name="gel-function-asinh"></a>asinh</span></dt><dd><pre class="synopsis">asinh 
(x)</pre><p>Alternativní názvy: <code class="function">arcsinh</code></p><p>Funkce arkus hyperbolický sinus 
(inverzní sinh).</p></dd><dt><span class="term"><a name="gel-function-atan"></a>atan</span></dt><dd><pre 
class="synopsis">atan (x)</pre><p>Alternativní názvy: <code class="function">arctan</code></p><p>Vypočítat 
funkce arkus tangens (inverzní tangens).</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/InverseTangent.html"; target="_top">Mathworld</a> (text je v angličtině) a 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Arkus_tangens"; target="_top
 ">Wikipedia</a>.</p></dd><dt><span class="term"><a name="gel-function-atanh"></a>atanh</span></dt><dd><pre 
class="synopsis">atanh (x)</pre><p>Alternativní názvy: <code class="function">arctanh</code></p><p>Funkce 
arkus hyperbolický tangens (inverzní tanh).</p></dd><dt><span class="term"><a 
name="gel-function-atan2"></a>atan2</span></dt><dd><pre class="synopsis">atan2 (y, x)</pre><p>Alternativní 
názvy: <code class="function">arctan2</code></p><p>Vypočítat funkci arctan2. Jestliže je <strong 
class="userinput"><code>x&gt;0</code></strong>, pak vrací <strong 
class="userinput"><code>atan(y/x)</code></strong>. Jestliže je <strong 
class="userinput"><code>x&lt;0</code></strong>, vrací <strong class="userinput"><code>sign(y) * (pi - 
atan(|y/x|)</code></strong>. A při <strong class="userinput"><code>x=0</code></strong> vrací <strong 
class="userinput"><code>sign(y) *
+         pi/2</code></strong>. Volání <strong class="userinput"><code>atan2(0,0)</code></strong> vrací 0 
namísto selhání.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/InverseTangent.html"; target="_top">Mathworld</a> (text je v angličtině) a 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Arctg2"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-cos"></a>cos</span></dt><dd><pre class="synopsis">cos 
(x)</pre><p>Vypočítat funkci kosinus.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce"; target="_top">Wikipedia</a> a <a class="ulink" 
href="http://planetmath.org/DefinitionsInTrigonometry"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-cosh"></a>cosh</span></dt><dd><pre 
class="synopsis">cosh (x)</pre><p>Vypočítat funkci hyperbolický kosinus.</p>
 <p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; target="_top">Wikipedia</a> a <a class="ulink" 
href="http://planetmath.org/HyperbolicFunctions"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-cot"></a>cot</span></dt><dd><pre 
class="synopsis">cot (x)</pre><p>Funkce kotangens.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce"; target="_top">Wikipedia</a> a <a 
class="ulink" href="http://planetmath.org/DefinitionsInTrigonometry"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-coth"></a>coth</span></dt><dd><pre 
class="synopsis">coth (x)</pre><p>Funkce hyperbolický kotangens.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; target="
 _top">Wikipedia</a> a <a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-csc"></a>csc</span></dt><dd><pre class="synopsis">csc (x)</pre><p>Funkce 
kosekans.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce"; target="_top">Wikipedia</a> a <a class="ulink" 
href="http://planetmath.org/DefinitionsInTrigonometry"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-csch"></a>csch</span></dt><dd><pre 
class="synopsis">csch (x)</pre><p>Funkce hyperbolický kosekans.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; target="_top">Wikipedia</a> a 
<a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; target="_top">Planetmath</a> (text je v 
anglič
 tině).</p></dd><dt><span class="term"><a name="gel-function-sec"></a>sec</span></dt><dd><pre 
class="synopsis">sec (x)</pre><p>Funkce sekans.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce"; target="_top">Wikipedia</a> a <a 
class="ulink" href="http://planetmath.org/DefinitionsInTrigonometry"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-sech"></a>sech</span></dt><dd><pre 
class="synopsis">sech (x)</pre><p>Funkce hyperbolický sekans.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; target="_top">Wikipedia</a> a 
<a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-sin"></a>sin</span></dt><dd><pre 
class="synopsis">sin (x)</pre><p>Vypočítat 
 funkci sinus.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Goniometrick%C3%A1_funkce"; target="_top">Wikipedia</a> a <a class="ulink" 
href="http://planetmath.org/DefinitionsInTrigonometry"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-sinh"></a>sinh</span></dt><dd><pre 
class="synopsis">sinh (x)</pre><p>Vypočítat funkci hyperbolický sinus.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; 
target="_top">Wikipedia</a> a <a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-tan"></a>tan</span></dt><dd><pre class="synopsis">tan (x)</pre><p>Vypočítat funkci 
tangens.</p><p>Více informací najdete v encyklopediích <a class="ulink" href="https://cs.wikipedia.org/wiki
 /Goniometrick%C3%A1_funkce" target="_top">Wikipedia</a> a <a class="ulink" 
href="http://planetmath.org/DefinitionsInTrigonometry"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-tanh"></a>tanh</span></dt><dd><pre 
class="synopsis">tanh (x)</pre><p>Funkce hyperbolický tangens.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Hyperbolick%C3%A9_funkce"; target="_top">Wikipedia</a> a 
<a class="ulink" href="http://planetmath.org/HyperbolicFunctions"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s05.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s07.html">Další</a></td></tr><tr><
 td width="40%" align="left" valign="top">Práce s čísly </td><td width="20%" align="center"><a accesskey="h" 
href="index.html">Domů</a></td><td width="40%" align="right" valign="top"> Teorie 
čísel</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s07.html b/help/cs/html/ch11s07.html
index b6c32fd..69f1416 100644
--- a/help/cs/html/ch11s07.html
+++ b/help/cs/html/ch11s07.html
@@ -1,71 +1,8 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Teorie 
čísel</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s06.html" title="Trigonometrie"><link rel="next" 
href="ch11s08.html" title="Práce s maticemi"></head><body bgcolor="white" text="black" link="#0000FF" 
vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Teorie čísel</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s06.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s08.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 c
 lass="title" style="clear: both"><a name="genius-gel-function-list-number-theory"></a>Teorie 
čísel</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-AreRelativelyPrime"></a>AreRelativelyPrime</span></dt><dd><pre 
class="synopsis">AreRelativelyPrime (a,b)</pre><p>Jsou reálná celá čísla <code class="varname">a</code> a 
<code class="varname">b</code> nesoudělná? Vrací <code class="constant">true</code> nebo <code 
class="constant">false</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/RelativelyPrime"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/RelativelyPrime.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Nesoud%C4%9Bln%C3%A1_%C4%8D%C3%ADsla"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a name="gel-function
 -BernoulliNumber"></a>BernoulliNumber</span></dt><dd><pre class="synopsis">BernoulliNumber 
(n)</pre><p>Vrátit <code class="varname">n</code>-té Bernoulliho číslo.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Bernoulli_number"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/BernoulliNumber.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-ChineseRemainder"></a>ChineseRemainder</span></dt><dd><pre 
class="synopsis">ChineseRemainder (a,m)</pre><p>Alternativní názvy: <code 
class="function">CRT</code></p><p>Najít pomocí čínské věty o zbytcích <code class="varname">x</code>, které 
řeší systém zadaný vektorem <code class="varname">a</code>, a zbytky prvků <code 
class="varname">m</code>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Chinese_remainder_theorem"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/ChineseRemainderTheorem"; 
target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/ChineseRemainderTheorem.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-CombineFactorizations"></a>CombineFactorizations</span></dt><dd><pre 
class="synopsis">CombineFactorizations (a,b)</pre><p>Jsou-li dány dva rozklady, vrátit rozklad (faktorizaci) 
součinu.</p><p>Viz <a class="link" 
href="ch11s07.html#gel-function-Factorize">Factorize</a>.</p></dd><dt><span class="term"><a 
name="gel-function-ConvertFromBase"></a>ConvertFromBase</span></dt><dd><pre class="synopsis">ConvertFromBase 
(v,b)</pre><p>Převést vektor hodnot udávajících mocniny <code class="varname">b</code> na 
číslo.</p></dd><dt><span class="term"><a 
name="gel-function-ConvertToBase"></a>ConvertToBase</span></dt><dd><pre class="synopsis">ConvertToBase 
(n,b)</pre><p>Převést číslo na vektor mocnin prvků o základu <code 
class="varname">b</code>.</p></dd><dt><span class="term"><a 
name="gel-function-DiscreteLog"></a>DiscreteLog</span></dt><dd><pre class="synopsis">DiscreteLog 
(n,b,q)</pre><p>Najít diskrétní logaritmu
 s <code class="varname">n</code> o základu <code class="varname">b</code> v F<sub>q</sub>, konečné grupě 
řádu <code class="varname">q</code>, kde <code class="varname">q</code> je prvočíslo, pomocí 
Silverova-Pohligova-Hellmanova algoritmu.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Discrete_logarithm"; 
target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/DiscreteLogarithm"; target="_top">Planetmath</a>, or
-           <a class="ulink" href="http://mathworld.wolfram.com/DiscreteLogarithm.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-Divides"></a>Divides</span></dt><dd><pre 
class="synopsis">Divides (m,n)</pre><p>Zkontrolovat dělitelnost (zda <code class="varname">m</code> dělí 
<code class="varname">n</code>).</p></dd><dt><span class="term"><a 
name="gel-function-EulerPhi"></a>EulerPhi</span></dt><dd><pre class="synopsis">EulerPhi (n)</pre><p>Spočítat 
Eulerovu funkci fí pro <code class="varname">n</code>, to je počet celých čísel mezi 1 a <code 
class="varname">n</code>, relativně prvočíselných vůči <code class="varname">n</code>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Euler_phi"; target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/EulerPhifunction"; target="_top">Planetmath</a>, or
-           <a class="ulink" href="http://mathworld.wolfram.com/TotientFunction.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-ExactDivision"></a>ExactDivision</span></dt><dd><pre class="synopsis">ExactDivision 
(n,d)</pre><p>Vrátit <strong class="userinput"><code>n/d</code></strong>, ale jen pokud <code 
class="varname">d</code> dělí <code class="varname">n</code>. Pokud <code class="varname">d</code> nedělí 
<code class="varname">n</code>, vrací funkce nesmysly. Pro velmi velká čísla je to rychlejší než operace 
<strong class="userinput"><code>n/d</code></strong>, ale je to samozřejmě použitelné jen v případě, kdy 
přesně víte, co dělíte.</p></dd><dt><span class="term"><a 
name="gel-function-Factorize"></a>Factorize</span></dt><dd><pre class="synopsis">Factorize (n)</pre><p>Vrátit 
rozklad (faktorizaci) čísla jako matici. První řádek jsou prvočísla v rozkladu (včetně 1) a druhý řádek jsou 
mocnitelé. Takže například </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code
Factorize(11*11*13)</code></strong>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Teorie 
čísel</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s06.html" title="Trigonometrie"><link rel="next" 
href="ch11s08.html" title="Práce s maticemi"></head><body bgcolor="white" text="black" link="#0000FF" 
vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Teorie čísel</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s06.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s08.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 c
 lass="title" style="clear: both"><a name="genius-gel-function-list-number-theory"></a>Teorie 
čísel</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-AreRelativelyPrime"></a>AreRelativelyPrime</span></dt><dd><pre 
class="synopsis">AreRelativelyPrime (a,b)</pre><p>Jsou reálná celá čísla <code class="varname">a</code> a 
<code class="varname">b</code> nesoudělná? Vrací <code class="constant">true</code> nebo <code 
class="constant">false</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/RelativelyPrime"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/RelativelyPrime.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Nesoud%C4%9Bln%C3%A1_%C4%8D%C3%ADsla"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a name="gel-function
 -BernoulliNumber"></a>BernoulliNumber</span></dt><dd><pre class="synopsis">BernoulliNumber 
(n)</pre><p>Vrátit <code class="varname">n</code>-té Bernoulliho číslo.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Bernoulli_number"; 
target="_top">Wikipedia</a> (text je v angličtině) a <a class="ulink" 
href="http://mathworld.wolfram.com/BernoulliNumber.html"; target="_top">Mathworld</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-ChineseRemainder"></a>ChineseRemainder</span></dt><dd><pre 
class="synopsis">ChineseRemainder (a,m)</pre><p>Alternativní názvy: <code 
class="function">CRT</code></p><p>Najít pomocí čínské věty o zbytcích <code class="varname">x</code>, které 
řeší systém zadaný vektorem <code class="varname">a</code>, a zbytky prvků <code 
class="varname">m</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/ChineseR
 emainderTheorem" target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/ChineseRemainderTheorem.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/%C4%8C%C3%ADnsk%C3%A1_v%C4%9Bta_o_zbytc%C3%ADch"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-CombineFactorizations"></a>CombineFactorizations</span></dt><dd><pre 
class="synopsis">CombineFactorizations (a,b)</pre><p>Jsou-li dány dva rozklady, vrátit rozklad (faktorizaci) 
součinu.</p><p>Viz <a class="link" 
href="ch11s07.html#gel-function-Factorize">Factorize</a>.</p></dd><dt><span class="term"><a 
name="gel-function-ConvertFromBase"></a>ConvertFromBase</span></dt><dd><pre class="synopsis">ConvertFromBase 
(v,b)</pre><p>Převést vektor hodnot udávajících mocniny <code class="varname">b</code> na 
číslo.</p></dd><dt><span class="term"><a name="gel-function-ConvertToBase"></a>Con
 vertToBase</span></dt><dd><pre class="synopsis">ConvertToBase (n,b)</pre><p>Převést číslo na vektor mocnin 
prvků o základu <code class="varname">b</code>.</p></dd><dt><span class="term"><a 
name="gel-function-DiscreteLog"></a>DiscreteLog</span></dt><dd><pre class="synopsis">DiscreteLog 
(n,b,q)</pre><p>Najít diskrétní logaritmus <code class="varname">n</code> o základu <code 
class="varname">b</code> v F<sub>q</sub>, konečné grupě řádu <code class="varname">q</code>, kde <code 
class="varname">q</code> je prvočíslo, pomocí Silverova-Pohligova-Hellmanova algoritmu.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="http://planetmath.org/DiscreteLogarithm"; 
target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/DiscreteLogarithm.html"; target="_top">Mathworld</a> (text je v angličtině) 
a <a class="ulink" href="https://cs.wikipedia.org/wiki/Diskr%C3%A9tn%C3%AD_logaritmus"; target="_top">Wikipe
 dia</a>.</p></dd><dt><span class="term"><a name="gel-function-Divides"></a>Divides</span></dt><dd><pre 
class="synopsis">Divides (m,n)</pre><p>Zkontrolovat dělitelnost (zda <code class="varname">m</code> dělí 
<code class="varname">n</code>).</p></dd><dt><span class="term"><a 
name="gel-function-EulerPhi"></a>EulerPhi</span></dt><dd><pre class="synopsis">EulerPhi (n)</pre><p>Spočítat 
Eulerovu funkci fí pro <code class="varname">n</code>, to je počet celých čísel mezi 1 a <code 
class="varname">n</code>, relativně prvočíselných vůči <code class="varname">n</code>.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="http://planetmath.org/EulerPhifunction"; 
target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/TotientFunction.html"; target="_top">Mathworld</a> (text je v angličtině) a 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Eulerova_funkce"; 
target="_top">Wikipedia</a>.</p></dd><dt>
 <span class="term"><a name="gel-function-ExactDivision"></a>ExactDivision</span></dt><dd><pre 
class="synopsis">ExactDivision (n,d)</pre><p>Vrátit <strong class="userinput"><code>n/d</code></strong>, ale 
jen pokud <code class="varname">d</code> dělí <code class="varname">n</code>. Pokud <code 
class="varname">d</code> nedělí <code class="varname">n</code>, vrací funkce nesmysly. Pro velmi velká čísla 
je to rychlejší než operace <strong class="userinput"><code>n/d</code></strong>, ale je to samozřejmě 
použitelné jen v případě, kdy přesně víte, co dělíte.</p></dd><dt><span class="term"><a 
name="gel-function-Factorize"></a>Factorize</span></dt><dd><pre class="synopsis">Factorize (n)</pre><p>Vrátit 
rozklad (faktorizaci) čísla jako matici. První řádek jsou prvočísla v rozkladu (včetně 1) a druhý řádek jsou 
mocnitelé. Takže například </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>Factorize(11*11
 *13)</code></strong>
 =
 [1      11      13
- 1      2       1]</pre><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Factorization"; target="_top">Wikipedia</a> 
for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-Factors"></a>Factors</span></dt><dd><pre 
class="synopsis">Factors (n)</pre><p>Vrátit všechny činitele čísla <code class="varname">n</code> jako 
vektor. Součástí jsou i neprvočíselní činitelé, což zahrnuje také 1 a přímo ono číslo. Takže například pro 
výpis všech dokonalých čísel (to jsou taková, která jsou součtem všech svých činitelů) až do 1000 můžete 
udělat toto (je to však značně neefektivní) </p><pre class="programlisting">for n=1 to 1000 do (
+ 1      2       1]</pre><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Faktorizace"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-Factors"></a>Factors</span></dt><dd><pre class="synopsis">Factors 
(n)</pre><p>Vrátit všechny činitele čísla <code class="varname">n</code> jako vektor. Součástí jsou i 
neprvočíselní činitelé, což zahrnuje také 1 a přímo ono číslo. Takže například pro výpis všech dokonalých 
čísel (to jsou taková, která jsou součtem všech svých činitelů) až do 1000 můžete udělat toto (je to však 
značně neefektivní) </p><pre class="programlisting">for n=1 to 1000 do (
     if MatrixSum (Factors(n)) == 2*n then
         print(n)
 )
-</pre></dd><dt><span class="term"><a 
name="gel-function-FermatFactorization"></a>FermatFactorization</span></dt><dd><pre 
class="synopsis">FermatFactorization (n,pokusy)</pre><p>Zkusit Fermatův rozklad <code 
class="varname">n</code> na <strong class="userinput"><code>(t-s)*(t+s)</code></strong>. Pokud to je možné, 
vrací <code class="varname">t</code> a <code class="varname">s</code> jako vektor, jinak vrací <code 
class="constant">null</code>. Argument <code class="varname">pokusy</code> určuje počet pokusu, než se 
výpočet vzdá.</p><p>Jedná se o docela dobrý rozklad za předpokladu, že je vaše číslo součinem dvou přibližně 
stejně velkých čísel.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fermat_factorization"; 
target="_top">Wikipedia</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-FindPrimitiveElementMod"></a>FindPrimitiveElementMod</span></dt><dd><pre 
class="synopsis">FindPrimitiveElementMod (q)</pre><p>Najít první primitivní prvek v F<sub>q</sub>, konečné 
grupě řádu <code class="varname">q</code>. Je samozřejmé, že <code class="varname">q</code> musí být 
prvočíslo.</p></dd><dt><span class="term"><a 
name="gel-function-FindRandomPrimitiveElementMod"></a>FindRandomPrimitiveElementMod</span></dt><dd><pre 
class="synopsis">FindRandomPrimitiveElementMod (q)</pre><p>Najít náhodný primitivní prvek v F<sub>q</sub>, 
konečné grupě řádu <code class="varname">q</code>. Je samozřejmé, že <code class="varname">q</code> musí být 
prvočíslo.</p></dd><dt><span class="term"><a 
name="gel-function-IndexCalculus"></a>IndexCalculus</span></dt><dd><pre class="synopsis">IndexCalculus 
(n,b,q,S)</pre><p>Spočítat diskrétní logaritmus <code class="varname">n</code> o základu <code class="
 varname">b</code> v F<sub>q</sub>, konečné grupě řádu <code class="varname">q</code> (<code 
class="varname">q</code> prvočíslo) pomocí faktorizační báze <code class="varname">S</code>. <code 
class="varname">S</code> by měl být sloupec prvočísel, pokud možno s druhým sloupcem předpočítaným pomocí <a 
class="link" href="ch11s07.html#gel-function-IndexCalculusPrecalculation"><code 
class="function">IndexCalculusPrecalculation</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-IndexCalculusPrecalculation"></a>IndexCalculusPrecalculation</span></dt><dd><pre 
class="synopsis">IndexCalculusPrecalculation (b,q,S)</pre><p>Provést přípravný krok výpočtu funkce <a 
class="link" href="ch11s07.html#gel-function-IndexCalculus"><code class="function">IndexCalculus</code></a> 
pro logaritmy o základu <code class="varname">b</code> v F<sub>q</sub>, konečné grupě řádu <code 
class="varname">q</code> (<code class="varname">q</code> prvočíslo), pro fa
 ktorizační bázi <code class="varname">S</code> (kde <code class="varname">S</code> je sloupcový vektor 
prvočísel). Logaritmy budou předpočítány a vráceny v druhém sloupci.</p></dd><dt><span class="term"><a 
name="gel-function-IsEven"></a>IsEven</span></dt><dd><pre class="synopsis">IsEven (n)</pre><p>Otestovat, zda 
je celé číslo sudé.</p></dd><dt><span class="term"><a 
name="gel-function-IsMersennePrimeExponent"></a>IsMersennePrimeExponent</span></dt><dd><pre 
class="synopsis">IsMersennePrimeExponent (p)</pre><p>Zjistit, jestli je kladné celé číslo <code 
class="varname">p</code> Mersennovo prvočíslo. Tj. zda 2<sup>p</sup>-1 je prvočíslo. Provádí se to hledáním v 
tabulce známých hodnot, která je relativně krátká. Viz také <a class="link" 
href="ch11s07.html#gel-function-MersennePrimeExponents">MersennePrimeExponents</a> a <a class="link" 
href="ch11s07.html#gel-function-LucasLehmer">LucasLehmer</a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Mersenne_prime"; target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/MersenneNumbers"; target="_top">Planetmath</a>,
-           <a class="ulink" href="http://mathworld.wolfram.com/MersennePrime.html"; 
target="_top">Mathworld</a> or 
-           <a class="ulink" href="http://www.mersenne.org/"; target="_top">GIMPS</a>
- for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-IsNthPower"></a>IsNthPower</span></dt><dd><pre class="synopsis">IsNthPower 
(m,n)</pre><p>Zjistit, jestli je racionální číslo <code class="varname">m</code> perfektní <code 
class="varname">n</code>-tou mocninou . Viz také <a class="link" 
href="ch11s07.html#gel-function-IsPerfectPower">IsPerfectPower</a> a <a class="link" 
href="ch11s07.html#gel-function-IsPerfectSquare">IsPerfectSquare</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IsOdd"></a>IsOdd</span></dt><dd><pre class="synopsis">IsOdd (n)</pre><p>Otestovat, zda je 
celé číslo liché.</p></dd><dt><span class="term"><a 
name="gel-function-IsPerfectPower"></a>IsPerfectPower</span></dt><dd><pre class="synopsis">IsPerfectPower 
(n)</pre><p>Zkontrolovat, zda je celé číslo perfekntí mocninou a<sup>b</sup>.</p></dd><dt><span 
class="term"><a name="gel-function-IsPerfectSquare"></a>IsPerfectSquare</span></dt><dd><pre 
class="synopsis">IsPerfectSquare (n)<
 /pre><p>
-           Check an integer for being a perfect square of an integer.  The number must
-           be an integer.  Negative integers are of course never perfect
-           squares of integers.
-         </p></dd><dt><span class="term"><a name="gel-function-IsPrime"></a>IsPrime</span></dt><dd><pre 
class="synopsis">IsPrime (n)</pre><p>Testuje prvočíselnost celých čísel, pro čísla menší než 2.5e10 je 
odpověď deterministická (tedy pokud je Riemannova hypotéza platná). Pro větší čísla závisí falešné kladné 
odpovědi na <a class="link" href="ch11s03.html#gel-function-IsPrimeMillerRabinReps"><code 
class="function">IsPrimeMillerRabinReps</code></a>. Což znamená, že pravděpodobnost nesprávné kladné odpovědi 
je ¼ umocněná na <code class="function">IsPrimeMillerRabinReps</code>. Výchozí hodnota 22 dává 
pravděpodobnost zhruba 5.7e-14.</p><p>Když je vráceno <code class="constant">false</code>, můžete si být 
jisti, že se jedná o složené číslo. Jestliže si potřebujete být absolutně jistí, že máte prvočíslo, můžete 
použít funkci <a class="link" href="ch11s07.html#gel-function-MillerRabinTestSure"><code class="function">Mil
 lerRabinTestSure</code></a>, ale může to trvat trochu déle.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/PrimeNumber"; target="_top">Planetmath</a> (text je v angličtině), 
<a class="ulink" href="http://mathworld.wolfram.com/PrimeNumber.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IsPrimitiveMod"></a>IsPrimitiveMod</span></dt><dd><pre class="synopsis">IsPrimitiveMod 
(g,q)</pre><p>Zkontrolovat, zda je <code class="varname">g</code> primitivní v F<sub>q</sub>, konečné grupě 
řádu <code class="varname">q</code>, kde <code class="varname">q</code> je prvočíslo. Pokud <code 
class="varname">q</code> není prvočíslo, jsou výsledky nesmyslné.</p></dd><dt><span class="term"><a 
name="gel-function-IsPrimitiveModWithPrimeFactors"></a>IsPrimitiveModWithPrime
 Factors</span></dt><dd><pre class="synopsis">IsPrimitiveModWithPrimeFactors (g,q,f)</pre><p>Zkontrolovat, 
zda je <code class="varname">g</code> primitivní v F<sub>q</sub>, konečné grupě řádu <code 
class="varname">q</code>, kde <code class="varname">q</code> je prvočíslo a <code class="varname">f</code> je 
vektor prvočíselných činitelů <code class="varname">q</code>-1. Pokud <code class="varname">q</code> není 
prvočíslo, jsou výsledky nesmyslné.</p></dd><dt><span class="term"><a 
name="gel-function-IsPseudoprime"></a>IsPseudoprime</span></dt><dd><pre class="synopsis">IsPseudoprime 
(n,b)</pre><p>Zda je <code class="varname">n</code> pseudoprvočíslo o základu <code class="varname">b</code>, 
ale ne prvočíslo, tj. jestli <strong class="userinput"><code>b^(n-1) == 1 mod n</code></strong>. Volá se 
funkce <a class="link" href="ch11s07.html#gel-function-PseudoprimeTest"><code 
class="function">PseudoprimeTest</code></a>.</p></dd><dt><span class="term"><a name="g
 el-function-IsStrongPseudoprime"></a>IsStrongPseudoprime</span></dt><dd><pre 
class="synopsis">IsStrongPseudoprime (n,b)</pre><p>Zjistit, zda je <code class="varname">n</code> silné 
pseudoprvočíslo o základu <code class="varname">b</code>, ale ne prvočíslo.</p></dd><dt><span class="term"><a 
name="gel-function-Jacobi"></a>Jacobi</span></dt><dd><pre class="synopsis">Jacobi (a,b)</pre><p>Alternativní 
názvy: <code class="function">JacobiSymbol</code></p><p>Spočítat Jacobiho symbol (a/b) (b by mělo být 
liché).</p></dd><dt><span class="term"><a 
name="gel-function-JacobiKronecker"></a>JacobiKronecker</span></dt><dd><pre class="synopsis">JacobiKronecker 
(a,b)</pre><p>Alternativní názvy: <code class="function">JacobiKroneckerSymbol</code></p><p>Spočítat Jacobiho 
symbol (a/b) s Kroneckerovým rozšířením (a/2)=(2/a), když <code class="varname">a</code> je liché, nebo 
(a/2)=0, když <code class="varname">a</code> je sudé.</p></dd><dt><span class="term"><a name="ge
 l-function-LeastAbsoluteResidue"></a>LeastAbsoluteResidue</span></dt><dd><pre 
class="synopsis">LeastAbsoluteResidue (a,n)</pre><p>Vrátit zbytek <code class="varname">a</code> mod <code 
class="varname">n</code> s nejmenší absolutní hodnotou (v intervalu -n/2 až n/2).</p></dd><dt><span 
class="term"><a name="gel-function-Legendre"></a>Legendre</span></dt><dd><pre class="synopsis">Legendre 
(a,p)</pre><p>Alternativní názvy: <code class="function">LegendreSymbol</code></p><p>Spočítat Legendrův 
symbol (a/p).</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/LegendreSymbol"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/LegendreSymbol.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Legendre%C5%AFv_symbol"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a name="gel-function-LucasLehmer"></a>Luc
 asLehmer</span></dt><dd><pre class="synopsis">LucasLehmer (p)</pre><p>Zjistit pomocí Lucasova-Lehmerova 
testu, zda je 2<sup>p</sup>-1 Mersennovo prvočíslo. Viz také <a class="link" 
href="ch11s07.html#gel-function-MersennePrimeExponents">MersennePrimeExponents</a> a <a class="link" 
href="ch11s07.html#gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test"; 
target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/LucasLhemer"; target="_top">Planetmath</a>, or
-           <a class="ulink" href="http://mathworld.wolfram.com/Lucas-LehmerTest.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-LucasNumber"></a>LucasNumber</span></dt><dd><pre class="synopsis">LucasNumber 
(n)</pre><p>Vrátit <code class="varname">n</code>-té Lucasovo číslo.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Lucas_number"; target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/LucasNumbers"; target="_top">Planetmath</a>, or
-           <a class="ulink" href="http://mathworld.wolfram.com/LucasNumber.html"; target="_top">Mathworld</a> 
for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-MaximalPrimePowerFactors"></a>MaximalPrimePowerFactors</span></dt><dd><pre 
class="synopsis">MaximalPrimePowerFactors (n)</pre><p>Vrátit všechny maximální mocniny prvočísel v rozkladu 
čísla.</p></dd><dt><span class="term"><a 
name="gel-function-MersennePrimeExponents"></a>MersennePrimeExponents</span></dt><dd><pre 
class="synopsis">MersennePrimeExponents</pre><p>Vektor se známými exponenty Mersennových prvočísel, což je 
seznam kladných celých čísel <code class="varname">p</code> takových, že 2<sup>p</sup>-1 je prvočíslo. Viz 
také <a class="link" href="ch11s07.html#gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</a> a 
<a class="link" href="ch11s07.html#gel-function-LucasLehmer">LucasLehmer</a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Mersenne_prime"; target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/MersenneNumbers"; target="_top">Planetmath</a>,
-           <a class="ulink" href="http://mathworld.wolfram.com/MersennePrime.html"; 
target="_top">Mathworld</a> or 
-           <a class="ulink" href="http://www.mersenne.org/"; target="_top">GIMPS</a>
- for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-MillerRabinTest"></a>MillerRabinTest</span></dt><dd><pre class="synopsis">MillerRabinTest 
(n,opak)</pre><p>Použít Millerův-Rabinův test prvočíselnosti na <code class="varname">n</code>, <code 
class="varname">opak</code> udává kolikrát. Pravděpodobnost falešné kladné odpovědi je <strong 
class="userinput"><code>(1/4)^opak</code></strong>. Pravděpodobně je obvykle lepší použít funkci <a 
class="link" href="ch11s07.html#gel-function-IsPrime"><code class="function">IsPrime</code></a>, protože je 
rychlejší a lepší u menších celých čísel.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/MillerRabinPrimeTest"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-MillerRabinTestSure"></a>MillerRabinTestSure</span></dt><dd><pre 
class="synopsis">MillerRabinTestSure (n)</pre><p>Použít Millerův-Rabinův test prvočíselnosti na <code 
class="varname">n</code> s tolika bázemi, že za předpokladu zobecněné Riemannovy hypotézy je výsledek 
deterministický.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test"; 
target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/MillerRabinPrimeTest"; target="_top">Planetmath</a>, 
or
-           <a class="ulink" href="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-ModInvert"></a>ModInvert</span></dt><dd><pre 
class="synopsis">ModInvert (n,m)</pre><p>Vrátit převrácenou hodnotu n mod m.</p><p>Více informací najdete v 
encyklopedii <a class="ulink" href="http://mathworld.wolfram.com/ModularInverse.html"; 
target="_top">Mathworld</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMu"></a>MoebiusMu</span></dt><dd><pre class="synopsis">MoebiusMu (n)</pre><p>Vrátit 
Möbiovu funkci μ vyhodnocenu na <code class="varname">n</code>. Což znamená, že vrátí 0 v případě, že <code 
class="varname">n</code> není součin různých prvočísel, a <strong 
class="userinput"><code>(-1)^k</code></strong> v případě, že je součin <code class="varname">k</code> různých 
prvočísel.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/MoebiusFunction"; target="_top">Planetmath</a> (text je v angličtině), <a
  class="ulink" href="http://mathworld.wolfram.com/MoebiusFunction.html"; target="_top">Mathworld</a> (text je 
v angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/M%C3%B6biova_funkce"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-NextPrime"></a>NextPrime</span></dt><dd><pre class="synopsis">NextPrime (n)</pre><p>Vrátit 
nejmenší prvočíslo větší než <code class="varname">n</code>. Záporná prvočísla jsou považována za prvočísla, 
takže předchozí prvočíslo můžete získat jako <strong 
class="userinput"><code>-NextPrime(-n)</code></strong>.</p><p>Tato funkce používá funkci <code 
class="function">mpz_nextprime</code> z knihovny GMP, která zase používá pravděpodobnostní Millerův-Rabinův 
test (viz také <a class="link" href="ch11s07.html#gel-function-MillerRabinTest"><code 
class="function">MillerRabinTest</code></a>). Pravděpodobnost falešné kladné odpovědi není nastavitelná, ale 
je dostateč
 ně malá pro praktické účely.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/PrimeNumber"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/PrimeNumber.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-PadicValuation"></a>PadicValuation</span></dt><dd><pre class="synopsis">PadicValuation 
(n,p)</pre><p>Vrátit p-adické ohodnocení (počet koncových nul v základu <code 
class="varname">p</code>).</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/P-adic_order"; target="_top">Wikipedia</a> (text je v angličtině) a <a 
class="ulink" href="http://planetmath.org/PAdicValuation"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="ter
 m"><a name="gel-function-PowerMod"></a>PowerMod</span></dt><dd><pre class="synopsis">PowerMod 
(a,b,m)</pre><p>Spočítat <strong class="userinput"><code>a^b mod m</code></strong>. <code 
class="varname">b</code>-tá mocnina čísla <code class="varname">a</code> modulo <code 
class="varname">m</code>. Tuto funkci není nutné používat, protože se automaticky použije v režimu modulární 
aritmetiky. Z tohoto důvodu je <strong class="userinput"><code>a^b mod m</code></strong> stejně 
rychlé.</p></dd><dt><span class="term"><a name="gel-function-Prime"></a>Prime</span></dt><dd><pre 
class="synopsis">Prime (n)</pre><p>Alternativní názvy: <code class="function">prime</code></p><p>Vrátit <code 
class="varname">n</code>-té prvočíslo (až do limitu).</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/PrimeNumber"; target="_top">Planetmath</a> (text je v angličtině), 
<a class="ulink" href="http://mathworld.wolfram.com/PrimeNumber.ht
 ml" target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-PrimeFactors"></a>PrimeFactors</span></dt><dd><pre 
class="synopsis">PrimeFactors (n)</pre><p>Vrátit v podobě vektoru všechny prvočinitele čísla.</p><p>Více 
informací najdete v encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/PrimeFactor.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="http://mathworld.wolfram.com/PrimeFactor.html"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-PseudoprimeTest"></a>PseudoprimeTest</span></dt><dd><pre class="synopsis">PseudoprimeTest 
(n,b)</pre><p>Test pseudoprvočíselnosti, vrací <code class="constant">true</code> když a jen když <strong 
class="userinput"><code>b^(n-1) == 1  mod n</code></strong>.</p><p>Více
  informací najdete v encyklopediích <a class="ulink" href="http://planetmath.org/Pseudoprime"; 
target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/Pseudoprime.html"; target="_top">Mathworld</a> (text je v angličtině) a <a 
class="ulink" href="http://cs.wikipedia.org/wiki/Pseudoprvo%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-RemoveFactor"></a>RemoveFactor</span></dt><dd><pre class="synopsis">RemoveFactor 
(n,m)</pre><p>Odstranit všechny instance činitele <code class="varname">m</code> z čísla <code 
class="varname">n</code>. Prakticky to znamená, že je poděleno nejvyšší mocninou čísla <code 
class="varname">m</code>, která je dělitelem <code class="varname">n</code>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/Divisibility"; target="_top">Planetmath</a> (text 
je v angličtině), <a class="ulink" href="http:/
 /mathworld.wolfram.com/Factor.html" target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="http://cs.wikipedia.org/wiki/D%C4%9Blitelnost"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a 
name="gel-function-SilverPohligHellmanWithFactorization"></a>SilverPohligHellmanWithFactorization</span></dt><dd><pre
 class="synopsis">SilverPohligHellmanWithFactorization (n,b,q,f)</pre><p>Najít diskrétní logaritmus <code 
class="varname">n</code> o základu <code class="varname">b</code> v F<sub>q</sub>, konečné grupě řádu <code 
class="varname">q</code>, kde <code class="varname">q</code> je prvočíslo, pomocí 
Silverova-Pohligova-Hellmanova algoritmu, dané <code class="varname">f</code> je rozkladem <code 
class="varname">q</code>-1.</p></dd><dt><span class="term"><a 
name="gel-function-SqrtModPrime"></a>SqrtModPrime</span></dt><dd><pre class="synopsis">SqrtModPrime 
(n,p)</pre><p>Najít druhou odmocninu z <code class="varname">n</code> modulo <c
 ode class="varname">p</code> (kde <code class="varname">p</code> je prvočíslo). Pokud není kvadratickým 
zbytkem, je vráceno null.</p><p>Více informací najdete v encyklopedicíh <a class="ulink" 
href="http://planetmath.org/QuadraticResidue"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="http://mathworld.wolfram.com/QuadraticResidue.html"; target="_top">Mathworld</a> (text je 
v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-StrongPseudoprimeTest"></a>StrongPseudoprimeTest</span></dt><dd><pre 
class="synopsis">StrongPseudoprimeTest (n,b)</pre><p>Spustit silný test pseudoprvočíselnosti o základu <code 
class="varname">b</code> na <code class="varname">n</code>.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/StrongPseudoprime"; target="_top">Planetmath</a> (text je v 
angličtině), <a class="ulink" href="http://mathworld.wolfram.com/StrongPseudoprime.html"; target="_top">Math
 world</a> (text je v angličtině) a <a class="ulink" href="https://en.wikipedia.org/wiki/Strong_pseudoprime"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-gcd"></a>gcd</span></dt><dd><pre class="synopsis">gcd 
(a,argumenty...)</pre><p>Alternativní názvy: <code class="function">GCD</code></p><p>Největší společný 
dělitel celých čísel. V seznamu argumentů můžete uvést libovolný počet celých čísel, nebo je můžete zadat 
jako vektor nebo matici celých čísel. Pokud zadáte více než jednu matici stejné velikosti, bude největší 
společný dělitel určen prvek po prvku.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/GreatestCommonDivisor"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/GreatestCommonDivisor.html"; target="_top">Mathworld</a> 
(text je v angličtině) a <a class="ulink" href=
 "https://cs.wikipedia.org/wiki/Nejv%C4%9Bt%C5%A1%C3%AD_spole%C4%8Dn%C3%BD_d%C4%9Blitel"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-lcm"></a>lcm</span></dt><dd><pre class="synopsis">lcm 
(a,argumenty...)</pre><p>Alternativní názvy: <code class="function">LCM</code></p><p>Nejmenší společný 
násobek celých čísel. V seznamu argumentů můžete uvést libovolný počet celých čísel, nebo je můžete zadat 
jako vektor nebo matici celých čísel. Pokud zadáte více než jednu matici stejné velikosti, bude nejmenší 
společný násobek určen prvek po prvku.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/LeastCommonMultiple"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/LeastCommonMultiple.html"; target="_top">Mathworld</a> (text 
je v angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Nejmen%C5%A1%C3%AD_spo
 le%C4%8Dn%C3%BD_n%C3%A1sobek" target="_top">Wikipedia</a>.</p></dd></dl></div></div><div 
class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a 
accesskey="p" href="ch11s06.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s08.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Trigonometrie </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Práce s maticemi</td></tr></table></div></body></html>
+</pre></dd><dt><span class="term"><a 
name="gel-function-FermatFactorization"></a>FermatFactorization</span></dt><dd><pre 
class="synopsis">FermatFactorization (n,pokusy)</pre><p>Zkusit Fermatův rozklad <code 
class="varname">n</code> na <strong class="userinput"><code>(t-s)*(t+s)</code></strong>. Pokud to je možné, 
vrací <code class="varname">t</code> a <code class="varname">s</code> jako vektor, jinak vrací <code 
class="constant">null</code>. Argument <code class="varname">pokusy</code> určuje počet pokusu, než se 
výpočet vzdá.</p><p>Jedná se o docela dobrý rozklad za předpokladu, že je vaše číslo součinem dvou přibližně 
stejně velkých čísel.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Fermat_factorization"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-FindPrimitiveElementMod"></a>FindPrimitiveElementMod</span></dt><dd><pre class="synop
 sis">FindPrimitiveElementMod (q)</pre><p>Najít první primitivní prvek v F<sub>q</sub>, konečné grupě řádu 
<code class="varname">q</code>. Je samozřejmé, že <code class="varname">q</code> musí být 
prvočíslo.</p></dd><dt><span class="term"><a 
name="gel-function-FindRandomPrimitiveElementMod"></a>FindRandomPrimitiveElementMod</span></dt><dd><pre 
class="synopsis">FindRandomPrimitiveElementMod (q)</pre><p>Najít náhodný primitivní prvek v F<sub>q</sub>, 
konečné grupě řádu <code class="varname">q</code>. Je samozřejmé, že <code class="varname">q</code> musí být 
prvočíslo.</p></dd><dt><span class="term"><a 
name="gel-function-IndexCalculus"></a>IndexCalculus</span></dt><dd><pre class="synopsis">IndexCalculus 
(n,b,q,S)</pre><p>Spočítat diskrétní logaritmus <code class="varname">n</code> o základu <code 
class="varname">b</code> v F<sub>q</sub>, konečné grupě řádu <code class="varname">q</code> (<code 
class="varname">q</code> prvočíslo) pomocí
  faktorizační báze <code class="varname">S</code>. <code class="varname">S</code> by měl být sloupec 
prvočísel, pokud možno s druhým sloupcem předpočítaným pomocí <a class="link" 
href="ch11s07.html#gel-function-IndexCalculusPrecalculation"><code 
class="function">IndexCalculusPrecalculation</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-IndexCalculusPrecalculation"></a>IndexCalculusPrecalculation</span></dt><dd><pre 
class="synopsis">IndexCalculusPrecalculation (b,q,S)</pre><p>Provést přípravný krok výpočtu funkce <a 
class="link" href="ch11s07.html#gel-function-IndexCalculus"><code class="function">IndexCalculus</code></a> 
pro logaritmy o základu <code class="varname">b</code> v F<sub>q</sub>, konečné grupě řádu <code 
class="varname">q</code> (<code class="varname">q</code> prvočíslo), pro faktorizační bázi <code 
class="varname">S</code> (kde <code class="varname">S</code> je sloupcový vektor prvočísel). Logaritmy budou 
před
 počítány a vráceny v druhém sloupci.</p></dd><dt><span class="term"><a 
name="gel-function-IsEven"></a>IsEven</span></dt><dd><pre class="synopsis">IsEven (n)</pre><p>Otestovat, zda 
je celé číslo sudé.</p></dd><dt><span class="term"><a 
name="gel-function-IsMersennePrimeExponent"></a>IsMersennePrimeExponent</span></dt><dd><pre 
class="synopsis">IsMersennePrimeExponent (p)</pre><p>Zjistit, jestli je kladné celé číslo <code 
class="varname">p</code> Mersennovo prvočíslo. Tj. zda 2<sup>p</sup>-1 je prvočíslo. Provádí se to hledáním v 
tabulce známých hodnot, která je relativně krátká. Viz také <a class="link" 
href="ch11s07.html#gel-function-MersennePrimeExponents">MersennePrimeExponents</a> a <a class="link" 
href="ch11s07.html#gel-function-LucasLehmer">LucasLehmer</a>.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="http://planetmath.org/MersenneNumbers"; target="_top">Planetmath</a> (text je v 
angličtině), <a class="ulink" href="h
 ttp://mathworld.wolfram.com/MersennePrime.html" target="_top">Mathworld</a> (text je v angličtině), <a 
class="ulink" href="http://www.mersenne.org/"; target="_top">GIMPS</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Mersennovo_prvo%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IsNthPower"></a>IsNthPower</span></dt><dd><pre class="synopsis">IsNthPower 
(m,n)</pre><p>Zjistit, jestli je racionální číslo <code class="varname">m</code> perfektní <code 
class="varname">n</code>-tou mocninou . Viz také <a class="link" 
href="ch11s07.html#gel-function-IsPerfectPower">IsPerfectPower</a> a <a class="link" 
href="ch11s07.html#gel-function-IsPerfectSquare">IsPerfectSquare</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IsOdd"></a>IsOdd</span></dt><dd><pre class="synopsis">IsOdd (n)</pre><p>Otestovat, zda je 
celé číslo liché.</p></dd><dt><span class="term"><a name="gel-function-IsPe
 rfectPower"></a>IsPerfectPower</span></dt><dd><pre class="synopsis">IsPerfectPower (n)</pre><p>Zkontrolovat, 
zda je celé číslo perfekntí mocninou a<sup>b</sup>.</p></dd><dt><span class="term"><a 
name="gel-function-IsPerfectSquare"></a>IsPerfectSquare</span></dt><dd><pre class="synopsis">IsPerfectSquare 
(n)</pre><p>Zkontrolovat, zda je celé číslo perfektní druhou mocninou celého čísla. Číslo musí být celé 
číslo. Záporná celá čísla samozřejmě perfektními druhými mocninami celých čísel být 
nemohou.</p></dd><dt><span class="term"><a name="gel-function-IsPrime"></a>IsPrime</span></dt><dd><pre 
class="synopsis">IsPrime (n)</pre><p>Testuje prvočíselnost celých čísel, pro čísla menší než 2.5e10 je 
odpověď deterministická (tedy pokud je Riemannova hypotéza platná). Pro větší čísla závisí falešné kladné 
odpovědi na <a class="link" href="ch11s03.html#gel-function-IsPrimeMillerRabinReps"><code 
class="function">IsPrimeMillerRabinRep
 s</code></a>. Což znamená, že pravděpodobnost nesprávné kladné odpovědi je ¼ umocněná na <code 
class="function">IsPrimeMillerRabinReps</code>. Výchozí hodnota 22 dává pravděpodobnost zhruba 
5.7e-14.</p><p>Když je vráceno <code class="constant">false</code>, můžete si být jisti, že se jedná o 
složené číslo. Jestliže si potřebujete být absolutně jistí, že máte prvočíslo, můžete použít funkci <a 
class="link" href="ch11s07.html#gel-function-MillerRabinTestSure"><code 
class="function">MillerRabinTestSure</code></a>, ale může to trvat trochu déle.</p><p>Více informací najdete 
v encyklopediích <a class="ulink" href="http://planetmath.org/PrimeNumber"; target="_top">Planetmath</a> (text 
je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/PrimeNumber.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo"; target="_top">Wikipedia</a>.</p></dd><
 dt><span class="term"><a name="gel-function-IsPrimitiveMod"></a>IsPrimitiveMod</span></dt><dd><pre 
class="synopsis">IsPrimitiveMod (g,q)</pre><p>Zkontrolovat, zda je <code class="varname">g</code> primitivní 
v F<sub>q</sub>, konečné grupě řádu <code class="varname">q</code>, kde <code class="varname">q</code> je 
prvočíslo. Pokud <code class="varname">q</code> není prvočíslo, jsou výsledky nesmyslné.</p></dd><dt><span 
class="term"><a 
name="gel-function-IsPrimitiveModWithPrimeFactors"></a>IsPrimitiveModWithPrimeFactors</span></dt><dd><pre 
class="synopsis">IsPrimitiveModWithPrimeFactors (g,q,f)</pre><p>Zkontrolovat, zda je <code 
class="varname">g</code> primitivní v F<sub>q</sub>, konečné grupě řádu <code class="varname">q</code>, kde 
<code class="varname">q</code> je prvočíslo a <code class="varname">f</code> je vektor prvočíselných činitelů 
<code class="varname">q</code>-1. Pokud <code class="varname">q</code> není prvočíslo, jsou výsledky nesmys
 lné.</p></dd><dt><span class="term"><a 
name="gel-function-IsPseudoprime"></a>IsPseudoprime</span></dt><dd><pre class="synopsis">IsPseudoprime 
(n,b)</pre><p>Zda je <code class="varname">n</code> pseudoprvočíslo o základu <code class="varname">b</code>, 
ale ne prvočíslo, tj. jestli <strong class="userinput"><code>b^(n-1) == 1 mod n</code></strong>. Volá se 
funkce <a class="link" href="ch11s07.html#gel-function-PseudoprimeTest"><code 
class="function">PseudoprimeTest</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-IsStrongPseudoprime"></a>IsStrongPseudoprime</span></dt><dd><pre 
class="synopsis">IsStrongPseudoprime (n,b)</pre><p>Zjistit, zda je <code class="varname">n</code> silné 
pseudoprvočíslo o základu <code class="varname">b</code>, ale ne prvočíslo.</p></dd><dt><span class="term"><a 
name="gel-function-Jacobi"></a>Jacobi</span></dt><dd><pre class="synopsis">Jacobi (a,b)</pre><p>Alternativní 
názvy: <code class="function">JacobiSymbol</code></p>
 <p>Spočítat Jacobiho symbol (a/b) (b by mělo být liché).</p></dd><dt><span class="term"><a 
name="gel-function-JacobiKronecker"></a>JacobiKronecker</span></dt><dd><pre class="synopsis">JacobiKronecker 
(a,b)</pre><p>Alternativní názvy: <code class="function">JacobiKroneckerSymbol</code></p><p>Spočítat Jacobiho 
symbol (a/b) s Kroneckerovým rozšířením (a/2)=(2/a), když <code class="varname">a</code> je liché, nebo 
(a/2)=0, když <code class="varname">a</code> je sudé.</p></dd><dt><span class="term"><a 
name="gel-function-LeastAbsoluteResidue"></a>LeastAbsoluteResidue</span></dt><dd><pre 
class="synopsis">LeastAbsoluteResidue (a,n)</pre><p>Vrátit zbytek <code class="varname">a</code> mod <code 
class="varname">n</code> s nejmenší absolutní hodnotou (v intervalu -n/2 až n/2).</p></dd><dt><span 
class="term"><a name="gel-function-Legendre"></a>Legendre</span></dt><dd><pre class="synopsis">Legendre 
(a,p)</pre><p>Alternativní názvy: <code class="function">Legendre
 Symbol</code></p><p>Spočítat Legendrův symbol (a/p).</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/LegendreSymbol"; target="_top">Planetmath</a> (text je v 
angličtině), <a class="ulink" href="http://mathworld.wolfram.com/LegendreSymbol.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Legendre%C5%AFv_symbol"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-LucasLehmer"></a>LucasLehmer</span></dt><dd><pre 
class="synopsis">LucasLehmer (p)</pre><p>Zjistit pomocí Lucasova-Lehmerova testu, zda je 2<sup>p</sup>-1 
Mersennovo prvočíslo. Viz také <a class="link" 
href="ch11s07.html#gel-function-MersennePrimeExponents">MersennePrimeExponents</a> a <a class="link" 
href="ch11s07.html#gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</a>.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="https://en.wikipe
 dia.org/wiki/Lucas%E2%80%93Lehmer_primality_test" target="_top">Wikipedia</a> (text je v angličtině), <a 
class="ulink" href="http://planetmath.org/LucasLhemer"; target="_top">Planetmath</a> (text je v angličtině) a 
<a class="ulink" href="http://mathworld.wolfram.com/Lucas-LehmerTest.html"; target="_top">Mathworld</a> (text 
je v agličtině).</p></dd><dt><span class="term"><a 
name="gel-function-LucasNumber"></a>LucasNumber</span></dt><dd><pre class="synopsis">LucasNumber 
(n)</pre><p>Vrátit <code class="varname">n</code>-té Lucasovo číslo.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Lucas_number"; target="_top">Wikipedia</a> 
(text je v angličtině), <a class="ulink" href="http://planetmath.org/LucasNumbers"; 
target="_top">Planetmath</a> (text je v angličtině) a <a class="ulink" 
href="http://mathworld.wolfram.com/LucasNumber.html"; target="_top">Mathworld</a> (text je v 
angličtině).</p></dd><dt><span class="term"
<a name="gel-function-MaximalPrimePowerFactors"></a>MaximalPrimePowerFactors</span></dt><dd><pre 
class="synopsis">MaximalPrimePowerFactors (n)</pre><p>Vrátit všechny maximální mocniny prvočísel v rozkladu 
čísla.</p></dd><dt><span class="term"><a 
name="gel-function-MersennePrimeExponents"></a>MersennePrimeExponents</span></dt><dd><pre 
class="synopsis">MersennePrimeExponents</pre><p>Vektor se známými exponenty Mersennových prvočísel, což je 
seznam kladných celých čísel <code class="varname">p</code> takových, že 2<sup>p</sup>-1 je prvočíslo. Viz 
také <a class="link" href="ch11s07.html#gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</a> a 
<a class="link" href="ch11s07.html#gel-function-LucasLehmer">LucasLehmer</a>.</p><p>Více informací najdete 
v encyklopediích <a class="ulink" href="http://planetmath.org/MersenneNumbers"; target="_top">Planetmath</a> 
(text je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/MersennePri
 me.html" target="_top">Mathworld</a> (text je v angličtině), <a class="ulink" 
href="http://www.mersenne.org/"; target="_top">GIMPS</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Mersennovo_prvo%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-MillerRabinTest"></a>MillerRabinTest</span></dt><dd><pre class="synopsis">MillerRabinTest 
(n,opak)</pre><p>Použít Millerův-Rabinův test prvočíselnosti na <code class="varname">n</code>, <code 
class="varname">opak</code> udává kolikrát. Pravděpodobnost falešné kladné odpovědi je <strong 
class="userinput"><code>(1/4)^opak</code></strong>. Pravděpodobně je obvykle lepší použít funkci <a 
class="link" href="ch11s07.html#gel-function-IsPrime"><code class="function">IsPrime</code></a>, protože je 
rychlejší a lepší u menších celých čísel.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.or
 g/MillerRabinPrimeTest" target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html"; target="_top">Mathworld</a> (text 
je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Miller%C5%AFv-Rabin%C5%AFv_test_prvo%C4%8D%C3%ADselnosti"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-MillerRabinTestSure"></a>MillerRabinTestSure</span></dt><dd><pre 
class="synopsis">MillerRabinTestSure (n)</pre><p>Použít Millerův-Rabinův test prvočíselnosti na <code 
class="varname">n</code> s tolika bázemi, že za předpokladu zobecněné Riemannovy hypotézy je výsledek 
deterministický.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/MillerRabinPrimeTest"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html"; target=
 "_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Miller%C5%AFv-Rabin%C5%AFv_test_prvo%C4%8D%C3%ADselnosti"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-ModInvert"></a>ModInvert</span></dt><dd><pre class="synopsis">ModInvert 
(n,m)</pre><p>Vrátit převrácenou hodnotu n mod m.</p><p>Více informací najdete v encyklopedii <a 
class="ulink" href="http://mathworld.wolfram.com/ModularInverse.html"; target="_top">Mathworld</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMu"></a>MoebiusMu</span></dt><dd><pre class="synopsis">MoebiusMu (n)</pre><p>Vrátit 
Möbiovu funkci μ vyhodnocenu na <code class="varname">n</code>. Což znamená, že vrátí 0 v případě, že <code 
class="varname">n</code> není součin různých prvočísel, a <strong 
class="userinput"><code>(-1)^k</code></strong> v případě, že je součin <code class="varname">k</code> různý
 ch prvočísel.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/MoebiusFunction"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/MoebiusFunction.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/M%C3%B6biova_funkce"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-NextPrime"></a>NextPrime</span></dt><dd><pre class="synopsis">NextPrime (n)</pre><p>Vrátit 
nejmenší prvočíslo větší než <code class="varname">n</code>. Záporná prvočísla jsou považována za prvočísla, 
takže předchozí prvočíslo můžete získat jako <strong 
class="userinput"><code>-NextPrime(-n)</code></strong>.</p><p>Tato funkce používá funkci <code 
class="function">mpz_nextprime</code> z knihovny GMP, která zase používá pravděpodobnostní Millerův-Rabinův 
test (viz také <a class="link"
  href="ch11s07.html#gel-function-MillerRabinTest"><code class="function">MillerRabinTest</code></a>). 
Pravděpodobnost falešné kladné odpovědi není nastavitelná, ale je dostatečně malá pro praktické 
účely.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/PrimeNumber"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/PrimeNumber.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-PadicValuation"></a>PadicValuation</span></dt><dd><pre class="synopsis">PadicValuation 
(n,p)</pre><p>Vrátit p-adické ohodnocení (počet koncových nul v základu <code 
class="varname">p</code>).</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/P-adic_order"; target="_top">W
 ikipedia</a> (text je v angličtině) a <a class="ulink" href="http://planetmath.org/PAdicValuation"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-PowerMod"></a>PowerMod</span></dt><dd><pre class="synopsis">PowerMod 
(a,b,m)</pre><p>Spočítat <strong class="userinput"><code>a^b mod m</code></strong>. <code 
class="varname">b</code>-tá mocnina čísla <code class="varname">a</code> modulo <code 
class="varname">m</code>. Tuto funkci není nutné používat, protože se automaticky použije v režimu modulární 
aritmetiky. Z tohoto důvodu je <strong class="userinput"><code>a^b mod m</code></strong> stejně 
rychlé.</p></dd><dt><span class="term"><a name="gel-function-Prime"></a>Prime</span></dt><dd><pre 
class="synopsis">Prime (n)</pre><p>Alternativní názvy: <code class="function">prime</code></p><p>Vrátit <code 
class="varname">n</code>-té prvočíslo (až do limitu).</p><p>Více informací najdete v encyklopedi
 ích <a class="ulink" href="http://planetmath.org/PrimeNumber"; target="_top">Planetmath</a> (text je v 
angličtině), <a class="ulink" href="http://mathworld.wolfram.com/PrimeNumber.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-PrimeFactors"></a>PrimeFactors</span></dt><dd><pre 
class="synopsis">PrimeFactors (n)</pre><p>Vrátit v podobě vektoru všechny prvočinitele čísla.</p><p>Více 
informací najdete v encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/PrimeFactor.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://en.wikipedia.org/wiki/Prime_factor"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-PseudoprimeTest"></a>PseudoprimeTest</span></dt><dd><pre class="synopsis">PseudoprimeTest 
(n
 ,b)</pre><p>Test pseudoprvočíselnosti, vrací <code class="constant">true</code> když a jen když <strong 
class="userinput"><code>b^(n-1) == 1  mod n</code></strong>.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/Pseudoprime"; target="_top">Planetmath</a> (text je v angličtině), 
<a class="ulink" href="http://mathworld.wolfram.com/Pseudoprime.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/Pseudoprvo%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-RemoveFactor"></a>RemoveFactor</span></dt><dd><pre class="synopsis">RemoveFactor 
(n,m)</pre><p>Odstranit všechny instance činitele <code class="varname">m</code> z čísla <code 
class="varname">n</code>. Prakticky to znamená, že je poděleno nejvyšší mocninou čísla <code 
class="varname">m</code>, která je dělitelem <code class="varname">n</code>.</p><p>Více
  informací najdete v encyklopediích <a class="ulink" href="http://planetmath.org/Divisibility"; 
target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/Factor.html"; target="_top">Mathworld</a> (text je v angličtině) a <a 
class="ulink" href="http://cs.wikipedia.org/wiki/D%C4%9Blitelnost"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-SilverPohligHellmanWithFactorization"></a>SilverPohligHellmanWithFactorization</span></dt><dd><pre
 class="synopsis">SilverPohligHellmanWithFactorization (n,b,q,f)</pre><p>Najít diskrétní logaritmus <code 
class="varname">n</code> o základu <code class="varname">b</code> v F<sub>q</sub>, konečné grupě řádu <code 
class="varname">q</code>, kde <code class="varname">q</code> je prvočíslo, pomocí 
Silverova-Pohligova-Hellmanova algoritmu, dané <code class="varname">f</code> je rozkladem <code 
class="varname">q</code>-1.</p></dd><dt><span class="term"><a
  name="gel-function-SqrtModPrime"></a>SqrtModPrime</span></dt><dd><pre class="synopsis">SqrtModPrime 
(n,p)</pre><p>Najít druhou odmocninu z <code class="varname">n</code> modulo <code class="varname">p</code> 
(kde <code class="varname">p</code> je prvočíslo). Pokud není kvadratickým zbytkem, je vráceno 
null.</p><p>Více informací najdete v encyklopedicíh <a class="ulink" 
href="http://planetmath.org/QuadraticResidue"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="http://mathworld.wolfram.com/QuadraticResidue.html"; target="_top">Mathworld</a> (text je 
v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-StrongPseudoprimeTest"></a>StrongPseudoprimeTest</span></dt><dd><pre 
class="synopsis">StrongPseudoprimeTest (n,b)</pre><p>Spustit silný test pseudoprvočíselnosti o základu <code 
class="varname">b</code> na <code class="varname">n</code>.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://pl
 anetmath.org/StrongPseudoprime" target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/StrongPseudoprime.html"; target="_top">Mathworld</a> (text je v angličtině) 
a <a class="ulink" href="https://en.wikipedia.org/wiki/Strong_pseudoprime"; target="_top">Wikipedia</a> (text 
je v angličtině).</p></dd><dt><span class="term"><a name="gel-function-gcd"></a>gcd</span></dt><dd><pre 
class="synopsis">gcd (a,argumenty...)</pre><p>Alternativní názvy: <code 
class="function">GCD</code></p><p>Největší společný dělitel celých čísel. V seznamu argumentů můžete uvést 
libovolný počet celých čísel, nebo je můžete zadat jako vektor nebo matici celých čísel. Pokud zadáte více 
než jednu matici stejné velikosti, bude největší společný dělitel určen prvek po prvku.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="http://planetmath.org/GreatestCommonDivisor"; 
target="_top">Planetmath</a> (t
 ext je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/GreatestCommonDivisor.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Nejv%C4%9Bt%C5%A1%C3%AD_spole%C4%8Dn%C3%BD_d%C4%9Blitel"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-lcm"></a>lcm</span></dt><dd><pre class="synopsis">lcm 
(a,argumenty...)</pre><p>Alternativní názvy: <code class="function">LCM</code></p><p>Nejmenší společný 
násobek celých čísel. V seznamu argumentů můžete uvést libovolný počet celých čísel, nebo je můžete zadat 
jako vektor nebo matici celých čísel. Pokud zadáte více než jednu matici stejné velikosti, bude nejmenší 
společný násobek určen prvek po prvku.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/LeastCommonMultiple"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http
 ://mathworld.wolfram.com/LeastCommonMultiple.html" target="_top">Mathworld</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Nejmen%C5%A1%C3%AD_spole%C4%8Dn%C3%BD_n%C3%A1sobek"; 
target="_top">Wikipedia</a>.</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" 
summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch11s06.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s08.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Trigonometrie </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Práce s maticemi</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s08.html b/help/cs/html/ch11s08.html
index c4eccfa..bb7cdf5 100644
--- a/help/cs/html/ch11s08.html
+++ b/help/cs/html/ch11s08.html
@@ -1,24 +1,2 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Práce s 
maticemi</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s07.html" title="Teorie čísel"><link rel="next" 
href="ch11s09.html" title="Lineární algebra"></head><body bgcolor="white" text="black" link="#0000FF" 
vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Práce s maticemi</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s07.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s09.html">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><d
 iv><h2 class="title" style="clear: both"><a name="genius-gel-function-list-matrix"></a>Práce s 
maticemi</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-ApplyOverMatrix"></a>ApplyOverMatrix</span></dt><dd><pre class="synopsis">ApplyOverMatrix 
(a,fce)</pre><p>Použít funkci na všechny prvky matice a vrátit matici výsledků.</p></dd><dt><span 
class="term"><a name="gel-function-ApplyOverMatrix2"></a>ApplyOverMatrix2</span></dt><dd><pre 
class="synopsis">ApplyOverMatrix2 (a,b,fce)</pre><p>Použít funkci na všechny prvky 2 matic (nebo 1 hodnoty a 
1 matice) a vrátit matici výsledků.</p></dd><dt><span class="term"><a 
name="gel-function-ColumnsOf"></a>ColumnsOf</span></dt><dd><pre class="synopsis">ColumnsOf (M)</pre><p>Vrátit 
sloupce matice jako vodorovný vektor.</p></dd><dt><span class="term"><a 
name="gel-function-ComplementSubmatrix"></a>ComplementSubmatrix</span></dt><dd><pre class="synopsis">Compleme
 ntSubmatrix (m,r,c)</pre><p>Odstranit sloupec (či slupce) a řádek (či řádky) z matice.</p></dd><dt><span 
class="term"><a name="gel-function-CompoundMatrix"></a>CompoundMatrix</span></dt><dd><pre 
class="synopsis">CompoundMatrix (k,A)</pre><p>Spočítat <code class="varname">k</code>-tou složenou matici 
matice A.</p></dd><dt><span class="term"><a 
name="gel-function-CountZeroColumns"></a>CountZeroColumns</span></dt><dd><pre 
class="synopsis">CountZeroColumns (M)</pre><p>
-          Count the number of zero columns in a matrix.  For example,
-          once you column-reduce a matrix, you can use this to find
-          the nullity.  See <a class="link" href="ch11s09.html#gel-function-cref"><code 
class="function">cref</code></a>
-          and <a class="link" href="ch11s09.html#gel-function-Nullity"><code 
class="function">Nullity</code></a>.
-          </p></dd><dt><span class="term"><a 
name="gel-function-DeleteColumn"></a>DeleteColumn</span></dt><dd><pre class="synopsis">DeleteColumn 
(M,sloupec)</pre><p>Smazat sloupec matice.</p></dd><dt><span class="term"><a 
name="gel-function-DeleteRow"></a>DeleteRow</span></dt><dd><pre class="synopsis">DeleteRow 
(M,radek)</pre><p>Smazat řádek matice.</p></dd><dt><span class="term"><a 
name="gel-function-DiagonalOf"></a>DiagonalOf</span></dt><dd><pre class="synopsis">DiagonalOf 
(M)</pre><p>Získat diagonální prvky matice jako sloupcový vektor.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Diagonal_of_a_matrix#Matrices"; 
target="_top">Wikipedia</a> for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-DotProduct"></a>DotProduct</span></dt><dd><pre class="synopsis">DotProduct 
(u,v)</pre><p>Získat skalární součin dvou vektorů. Vektory musí mít stejnou velikost. Nepřijímají se 
konjugované vektory, protože jde o bilineární formu, i když pracuje i s komplexními čísly. Jedná se o 
bilineární skalární součin, ne půldruhý lineární (seskvilineární). Pro ten slouží funkce <a class="link" 
href="ch11s08.html#gel-function-HermitianProduct">HermitianProduct</a></p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/DotProduct"; target="_top">Planetmath</a> (text je 
v angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Skal%C3%A1rn%C3%AD_sou%C4%8Din"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-ExpandMatrix"></a>ExpandMatrix</span></dt><dd><pre class="synopsis">ExpandMatrix 
(M)</pre><p>Rozšířit matic
 i, stejně když zadáte matici bez uvozovky. Takto se rozbalí do bloku libovolná interní matice. Je to způsob, 
jak sestrojit matice z jiných menších a normálně je to prováděno na vstupu automaticky, s výjimkou kdy je 
matice zadána s uvozovkou.</p></dd><dt><span class="term"><a 
name="gel-function-HermitianProduct"></a>HermitianProduct</span></dt><dd><pre 
class="synopsis">HermitianProduct (u,v)</pre><p>Alternativní názvy: <code 
class="function">InnerProduct</code></p><p>Získat hermitovský součin dvou vektorů. Vektory musí mít stejnou 
velikost. Jedná se o polybilineární formu používající jednotkovou matici.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/HermitianInnerProduct.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://en.wikipedia.org/wiki/Sesquilinear_form"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name
 ="gel-function-I"></a>I</span></dt><dd><pre class="synopsis">I (n)</pre><p>Alternativní názvy: <code 
class="function">eye</code></p><p>Vrátit jednotkovou matici zadané velikosti, tj. <code 
class="varname">n</code> krát <code class="varname">n</code>. Pokud je <code class="varname">n</code> rovno 
0, vrátí <code class="constant">null</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/IdentityMatrix"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Jednotkov%C3%A1_matice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IndexComplement"></a>IndexComplement</span></dt><dd><pre class="synopsis">IndexComplement 
(vektor,mvelikost)</pre><p>Vrátit doplňkový index vektoru indexů. Vše je s jednou bází. Například pro vektor 
<strong class="userinput"><code>[2,3]</code></strong> a velikost <strong class="userinput"><code>5</code></
 strong> dostaneme <strong class="userinput"><code>[1,4,5]</code></strong>. Pokud je <code 
class="varname">mvelikost</code> rovna 0, vrací vždy <code class="constant">null</code>.</p></dd><dt><span 
class="term"><a name="gel-function-IsDiagonal"></a>IsDiagonal</span></dt><dd><pre class="synopsis">IsDiagonal 
(M)</pre><p>Je matice diagonální?</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Diagonal_matrix"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://planetmath.org/DiagonalMatrix"; target="_top">Planetmath</a> for 
more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-IsIdentity"></a>IsIdentity</span></dt><dd><pre class="synopsis">IsIdentity 
(x)</pre><p>Zkontrolovat, zda je matice jednotková. Pokud matice není čtvercová, tak automaticky vrátí <code 
class="varname">false</code>. Funguje i pro čísla, v kterémžto případě je to stejné jako <strong 
class="userinput"><code>x==1</code></strong>. Pokud je argument <code class="varname">x</code> roven <code 
class="constant">null</code> (což můžeme považovat za matici 0 krát 0), nezpůsobí to chybu a vrátí <code 
class="constant">false</code>.</p></dd><dt><span class="term"><a 
name="gel-function-IsLowerTriangular"></a>IsLowerTriangular</span></dt><dd><pre 
class="synopsis">IsLowerTriangular (M)</pre><p>Jde o dolní trojúhelníkovou matici? To je taková, která má 
všechny prvky nad diagonálou nulové.</p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixInteger"></a>IsMatrixInteger</span></dt><dd><pre class="sy
 nopsis">IsMatrixInteger (M)</pre><p>Zkontrolovat, zda je matice maticí celých (nekomplexních) 
čísel.</p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixNonnegative"></a>IsMatrixNonnegative</span></dt><dd><pre 
class="synopsis">IsMatrixNonnegative (M)</pre><p>Zkontrolovat, zda je matice nezáporná, tj. zda je každý z 
prvků nezáporný. Nepleťte si pozitivní matice s pozitivně definitními maticemi.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Positive_matrix"; target="_top">Wikipedia</a> 
for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixPositive"></a>IsMatrixPositive</span></dt><dd><pre 
class="synopsis">IsMatrixPositive (M)</pre><p>Zkontrolovat, zda je matice pozitivní, tj. zda je každý z prvků 
kladný (a tudíž reálný). Především není žádný prvek 0. Nepleťte si positivní matice s pozitivně definitními 
maticemi.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Positive_matrix"; target="_top">Wikipedia</a> 
for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixRational"></a>IsMatrixRational</span></dt><dd><pre 
class="synopsis">IsMatrixRational (M)</pre><p>Zkontrolovat, zda je matice maticí z racionálních 
(nekomplexních) čísel.</p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixReal"></a>IsMatrixReal</span></dt><dd><pre class="synopsis">IsMatrixReal 
(M)</pre><p>Zkontrolovat, zda je matice složená z reálných (na komplexních) čísel.</p></dd><dt><span 
class="term"><a name="gel-function-IsMatrixSquare"></a>IsMatrixSquare</span></dt><dd><pre 
class="synopsis">IsMatrixSquare (M)</pre><p>Zkontrolovat, zda je matice čtvercová, tj. šířka je stejná jako 
výška.</p></dd><dt><span class="term"><a 
name="gel-function-IsUpperTriangular"></a>IsUpperTriangular</span></dt><dd><pre 
class="synopsis">IsUpperTriangular (M)</pre><p>Jde o horní trojúhelníkovou matici? To je taková, která má 
všechny prvky pod diagonálou nulové.</p></dd><dt><span class="te
 rm"><a name="gel-function-IsValueOnly"></a>IsValueOnly</span></dt><dd><pre class="synopsis">IsValueOnly 
(M)</pre><p>Zkontrolovat, zda se matice skládá pouze z čísel. Mnoho interních funkcí provádí tuto kontrolu. 
Hodnoty mohou být libovolná čísla včetně komplexních.</p></dd><dt><span class="term"><a 
name="gel-function-IsVector"></a>IsVector</span></dt><dd><pre class="synopsis">IsVector (v)</pre><p>Je 
argument vodorovný nebo svislý vektor? Genius nerozlišuje mezi maticí a vektorem, vektor je prostě jen matice 
1 krát <code class="varname">n</code> nebo <code class="varname">n</code> krát 1.</p></dd><dt><span 
class="term"><a name="gel-function-IsZero"></a>IsZero</span></dt><dd><pre class="synopsis">IsZero 
(x)</pre><p>Zkontrolovat, zda se matice skládá jen z nul. Funguje to i pro čísla, kdy je to ekvivalentní 
výrazu <strong class="userinput"><code>x==0</code></strong>. Když je <code class="varname">x</code> rovno 
<code class="constant">null</code> (m�
 �žeme to považovat za matici 0 krát 0), nezpůsobí to žádnou chybu, ale vrátí se <code 
class="constant">true</code>, protože podmínka je prázdná.</p></dd><dt><span class="term"><a 
name="gel-function-LowerTriangular"></a>LowerTriangular</span></dt><dd><pre class="synopsis">LowerTriangular 
(M)</pre><p>Vrátit kopii matice <code class="varname">M</code> se všemi prvky nad diagonálou nastavenými na 
nulu.</p></dd><dt><span class="term"><a name="gel-function-MakeDiagonal"></a>MakeDiagonal</span></dt><dd><pre 
class="synopsis">MakeDiagonal (v,argument...)</pre><p>Alternativní názvy: <code 
class="function">diag</code></p><p>Vytvořit diagonální matici z vektoru. Případně můžete hodnoty, které se 
mají umístit na diagonálu, zadat jako jednotlivé parametry. Takže <strong 
class="userinput"><code>MakeDiagonal([1,2,3])</code></strong> je to stejné jako <strong 
class="userinput"><code>MakeDiagonal(1,2,3)</code></strong>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Diagonal_matrix"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://planetmath.org/DiagonalMatrix"; target="_top">Planetmath</a> for 
more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-MakeVector"></a>MakeVector</span></dt><dd><pre class="synopsis">MakeVector 
(A)</pre><p>Vytvořit sloupcový vektor z matice poskládáním sloupců na sebe. Pokud je předáno <code 
class="constant">null</code>, vrátí <code class="constant">null</code>.</p></dd><dt><span class="term"><a 
name="gel-function-MatrixProduct"></a>MatrixProduct</span></dt><dd><pre class="synopsis">MatrixProduct 
(A)</pre><p>Spočítat součin všech prvků matice nebo vektoru. To znamená, že se vynásobí všechny prvky a vrátí 
se číslo, které je násobkem všech těchto prvků.</p></dd><dt><span class="term"><a 
name="gel-function-MatrixSum"></a>MatrixSum</span></dt><dd><pre class="synopsis">MatrixSum 
(A)</pre><p>Spočítat součet všech prvků matice nebo vektoru. To znamená, že se sečtou všechny prvky a vrátí 
se číslo, které je součtem všech těchto prvků.</p></dd><dt><span class="term"><a name="gel-function-Matr
 ixSumSquares"></a>MatrixSumSquares</span></dt><dd><pre class="synopsis">MatrixSumSquares 
(A)</pre><p>Spočítat součet druhých mocnin všech prvků matice nebo vektoru.</p></dd><dt><span class="term"><a 
name="gel-function-NonzeroColumns"></a>NonzeroColumns</span></dt><dd><pre class="synopsis">NonzeroColumns 
(M)</pre><p>Vrátit řádkový vektor s indexy nenulových sloupců v matici <code 
class="varname">M</code>.</p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NonzeroElements"></a>NonzeroElements</span></dt><dd><pre class="synopsis">NonzeroElements 
(v)</pre><p>Vrátit řádkový vektor s indexy nenulových prvků ve vektoru <code 
class="varname">v</code>.</p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-OuterProduct"></a>OuterProduct</span></dt><dd><pre class="synopsis">OuterProduct 
(u,v)</pre><p>Získat vnější součin dvou vektorů. Takže, když dejme tomu jsou <code class="varname">u</code> a
  <code class="varname">v</code> svislé vektory, pak vnější součin je <strong class="userinput"><code>v * 
u.'</code></strong>.</p></dd><dt><span class="term"><a 
name="gel-function-ReverseVector"></a>ReverseVector</span></dt><dd><pre class="synopsis">ReverseVector 
(v)</pre><p>Převrátit pořadí prvků ve vektoru. Pokud je předáno <code class="constant">null</code>, tak vrací 
<code class="constant">null</code>.</p></dd><dt><span class="term"><a 
name="gel-function-RowSum"></a>RowSum</span></dt><dd><pre class="synopsis">RowSum (m)</pre><p>Vypočítat 
součet každého řádku v matici a vrátit svislý vektor s výsledkem.</p></dd><dt><span class="term"><a 
name="gel-function-RowSumSquares"></a>RowSumSquares</span></dt><dd><pre class="synopsis">RowSumSquares 
(m)</pre><p>Vypočítat součet druhých mocnin každého řádku v matici a vrátit svislý vektor s 
výsledkem.</p></dd><dt><span class="term"><a name="gel-function-RowsOf"></a>RowsOf</span></dt><dd><pre 
class="syn
 opsis">RowsOf (M)</pre><p>Získat řádky matice jako svislý vektor. Každý z prvků vektoru je vodorovný vektor, 
který odpovídá řádku matice <code class="varname">M</code>. Tato funkce je užitečná, když chcete ve smyčce 
procházet řádky matice. Například takto: <strong class="userinput"><code>for r in RowsOf(M) do
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Práce s 
maticemi</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s07.html" title="Teorie čísel"><link rel="next" 
href="ch11s09.html" title="Lineární algebra"></head><body bgcolor="white" text="black" link="#0000FF" 
vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Práce s maticemi</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s07.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s09.html">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><d
 iv><h2 class="title" style="clear: both"><a name="genius-gel-function-list-matrix"></a>Práce s 
maticemi</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-ApplyOverMatrix"></a>ApplyOverMatrix</span></dt><dd><pre class="synopsis">ApplyOverMatrix 
(a,fce)</pre><p>Použít funkci na všechny prvky matice a vrátit matici výsledků.</p></dd><dt><span 
class="term"><a name="gel-function-ApplyOverMatrix2"></a>ApplyOverMatrix2</span></dt><dd><pre 
class="synopsis">ApplyOverMatrix2 (a,b,fce)</pre><p>Použít funkci na všechny prvky 2 matic (nebo 1 hodnoty a 
1 matice) a vrátit matici výsledků.</p></dd><dt><span class="term"><a 
name="gel-function-ColumnsOf"></a>ColumnsOf</span></dt><dd><pre class="synopsis">ColumnsOf (M)</pre><p>Vrátit 
sloupce matice jako vodorovný vektor.</p></dd><dt><span class="term"><a 
name="gel-function-ComplementSubmatrix"></a>ComplementSubmatrix</span></dt><dd><pre class="synopsis">Compleme
 ntSubmatrix (m,r,c)</pre><p>Odstranit sloupec (či slupce) a řádek (či řádky) z matice.</p></dd><dt><span 
class="term"><a name="gel-function-CompoundMatrix"></a>CompoundMatrix</span></dt><dd><pre 
class="synopsis">CompoundMatrix (k,A)</pre><p>Spočítat <code class="varname">k</code>-tou složenou matici 
matice A.</p></dd><dt><span class="term"><a 
name="gel-function-CountZeroColumns"></a>CountZeroColumns</span></dt><dd><pre 
class="synopsis">CountZeroColumns (M)</pre><p>Spočítat počet nulových sloupců v matici. Například, jakmile 
zredukujete sloupce matice, můžete to využít k nalezení nulovosti. Viz <a class="link" 
href="ch11s09.html#gel-function-cref"><code class="function">cref</code></a> a <a class="link" 
href="ch11s09.html#gel-function-Nullity"><code class="function">Nullity</code></a>.</p></dd><dt><span 
class="term"><a name="gel-function-DeleteColumn"></a>DeleteColumn</span></dt><dd><pre 
class="synopsis">DeleteColumn (M,sloupec)</pre><p>Smazat sloupec mat
 ice.</p></dd><dt><span class="term"><a name="gel-function-DeleteRow"></a>DeleteRow</span></dt><dd><pre 
class="synopsis">DeleteRow (M,radek)</pre><p>Smazat řádek matice.</p></dd><dt><span class="term"><a 
name="gel-function-DiagonalOf"></a>DiagonalOf</span></dt><dd><pre class="synopsis">DiagonalOf 
(M)</pre><p>Získat diagonální prvky matice jako sloupcový vektor.</p><p>Více informací najdete v encyklopedii 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Diagon%C3%A1ln%C3%AD_matice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-DotProduct"></a>DotProduct</span></dt><dd><pre class="synopsis">DotProduct 
(u,v)</pre><p>Získat skalární součin dvou vektorů. Vektory musí mít stejnou velikost. Nepřijímají se 
konjugované vektory, protože jde o bilineární formu, i když pracuje i s komplexními čísly. Jedná se o 
bilineární skalární součin, ne půldruhý lineární (seskvilineární). Pro ten slouží funkce <a class="l
 ink" href="ch11s08.html#gel-function-HermitianProduct">HermitianProduct</a></p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/DotProduct"; target="_top">Planetmath</a> (text je 
v angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Skal%C3%A1rn%C3%AD_sou%C4%8Din"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-ExpandMatrix"></a>ExpandMatrix</span></dt><dd><pre class="synopsis">ExpandMatrix 
(M)</pre><p>Rozšířit matici, stejně když zadáte matici bez uvozovky. Takto se rozbalí do bloku libovolná 
interní matice. Je to způsob, jak sestrojit matice z jiných menších a normálně je to prováděno na vstupu 
automaticky, s výjimkou kdy je matice zadána s uvozovkou.</p></dd><dt><span class="term"><a 
name="gel-function-HermitianProduct"></a>HermitianProduct</span></dt><dd><pre 
class="synopsis">HermitianProduct (u,v)</pre><p>Alternativní názvy: <code class="function">InnerProduc
 t</code></p><p>Získat hermitovský součin dvou vektorů. Vektory musí mít stejnou velikost. Jedná se o 
polybilineární formu používající jednotkovou matici.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://mathworld.wolfram.com/HermitianInnerProduct.html"; target="_top">Mathworld</a> 
(text je v angličtině) a <a class="ulink" href="https://en.wikipedia.org/wiki/Sesquilinear_form"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-I"></a>I</span></dt><dd><pre class="synopsis">I (n)</pre><p>Alternativní názvy: <code 
class="function">eye</code></p><p>Vrátit jednotkovou matici zadané velikosti, tj. <code 
class="varname">n</code> krát <code class="varname">n</code>. Pokud je <code class="varname">n</code> rovno 
0, vrátí <code class="constant">null</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/IdentityMatrix"; target="_top">P
 lanetmath</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Jednotkov%C3%A1_matice"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-IndexComplement"></a>IndexComplement</span></dt><dd><pre 
class="synopsis">IndexComplement (vektor,mvelikost)</pre><p>Vrátit doplňkový index vektoru indexů. Vše je s 
jednou bází. Například pro vektor <strong class="userinput"><code>[2,3]</code></strong> a velikost <strong 
class="userinput"><code>5</code></strong> dostaneme <strong class="userinput"><code>[1,4,5]</code></strong>. 
Pokud je <code class="varname">mvelikost</code> rovna 0, vrací vždy <code 
class="constant">null</code>.</p></dd><dt><span class="term"><a 
name="gel-function-IsDiagonal"></a>IsDiagonal</span></dt><dd><pre class="synopsis">IsDiagonal (M)</pre><p>Je 
matice diagonální?</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/DiagonalMatrix"; target="_top">Plane
 tmath</a> (text je v angličtině) nebo <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Diagon%C3%A1ln%C3%AD_matice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IsIdentity"></a>IsIdentity</span></dt><dd><pre class="synopsis">IsIdentity 
(x)</pre><p>Zkontrolovat, zda je matice jednotková. Pokud matice není čtvercová, tak automaticky vrátí <code 
class="varname">false</code>. Funguje i pro čísla, v kterémžto případě je to stejné jako <strong 
class="userinput"><code>x==1</code></strong>. Pokud je argument <code class="varname">x</code> roven <code 
class="constant">null</code> (což můžeme považovat za matici 0 krát 0), nezpůsobí to chybu a vrátí <code 
class="constant">false</code>.</p></dd><dt><span class="term"><a 
name="gel-function-IsLowerTriangular"></a>IsLowerTriangular</span></dt><dd><pre 
class="synopsis">IsLowerTriangular (M)</pre><p>Jde o dolní trojúhelníkovou matici? To je taková, která má 
všechny prv
 ky nad diagonálou nulové.</p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixInteger"></a>IsMatrixInteger</span></dt><dd><pre class="synopsis">IsMatrixInteger 
(M)</pre><p>Zkontrolovat, zda je matice maticí celých (nekomplexních) čísel.</p></dd><dt><span 
class="term"><a name="gel-function-IsMatrixNonnegative"></a>IsMatrixNonnegative</span></dt><dd><pre 
class="synopsis">IsMatrixNonnegative (M)</pre><p>Zkontrolovat, zda je matice nezáporná, tj. zda je každý z 
prvků nezáporný. Nepleťte si pozitivní matice s pozitivně definitními maticemi.</p><p>Více informací najdete 
v encyklopedii <a class="ulink" href="https://en.wikipedia.org/wiki/Positive_matrix"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixPositive"></a>IsMatrixPositive</span></dt><dd><pre 
class="synopsis">IsMatrixPositive (M)</pre><p>Zkontrolovat, zda je matice pozitivní, tj. zda je každý z prvků 
kladný (a tudíž reál
 ný). Především není žádný prvek 0. Nepleťte si positivní matice s pozitivně definitními maticemi.</p><p>Více 
informací najdete v encyklopedii <a class="ulink" href="https://en.wikipedia.org/wiki/Positive_matrix"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixRational"></a>IsMatrixRational</span></dt><dd><pre 
class="synopsis">IsMatrixRational (M)</pre><p>Zkontrolovat, zda je matice maticí z racionálních 
(nekomplexních) čísel.</p></dd><dt><span class="term"><a 
name="gel-function-IsMatrixReal"></a>IsMatrixReal</span></dt><dd><pre class="synopsis">IsMatrixReal 
(M)</pre><p>Zkontrolovat, zda je matice složená z reálných (na komplexních) čísel.</p></dd><dt><span 
class="term"><a name="gel-function-IsMatrixSquare"></a>IsMatrixSquare</span></dt><dd><pre 
class="synopsis">IsMatrixSquare (M)</pre><p>Zkontrolovat, zda je matice čtvercová, tj. šířka je stejná jako 
výška.</p></dd><dt><span
  class="term"><a name="gel-function-IsUpperTriangular"></a>IsUpperTriangular</span></dt><dd><pre 
class="synopsis">IsUpperTriangular (M)</pre><p>Jde o horní trojúhelníkovou matici? To je taková, která má 
všechny prvky pod diagonálou nulové.</p></dd><dt><span class="term"><a 
name="gel-function-IsValueOnly"></a>IsValueOnly</span></dt><dd><pre class="synopsis">IsValueOnly 
(M)</pre><p>Zkontrolovat, zda se matice skládá pouze z čísel. Mnoho interních funkcí provádí tuto kontrolu. 
Hodnoty mohou být libovolná čísla včetně komplexních.</p></dd><dt><span class="term"><a 
name="gel-function-IsVector"></a>IsVector</span></dt><dd><pre class="synopsis">IsVector (v)</pre><p>Je 
argument vodorovný nebo svislý vektor? Genius nerozlišuje mezi maticí a vektorem, vektor je prostě jen matice 
1 krát <code class="varname">n</code> nebo <code class="varname">n</code> krát 1.</p></dd><dt><span 
class="term"><a name="gel-function-IsZero"></a>IsZero</span></dt><dd><pre clas
 s="synopsis">IsZero (x)</pre><p>Zkontrolovat, zda se matice skládá jen z nul. Funguje to i pro čísla, kdy je 
to ekvivalentní výrazu <strong class="userinput"><code>x==0</code></strong>. Když je <code 
class="varname">x</code> rovno <code class="constant">null</code> (můžeme to považovat za matici 0 krát 0), 
nezpůsobí to žádnou chybu, ale vrátí se <code class="constant">true</code>, protože podmínka je 
prázdná.</p></dd><dt><span class="term"><a 
name="gel-function-LowerTriangular"></a>LowerTriangular</span></dt><dd><pre class="synopsis">LowerTriangular 
(M)</pre><p>Vrátit kopii matice <code class="varname">M</code> se všemi prvky nad diagonálou nastavenými na 
nulu.</p></dd><dt><span class="term"><a name="gel-function-MakeDiagonal"></a>MakeDiagonal</span></dt><dd><pre 
class="synopsis">MakeDiagonal (v,argument...)</pre><p>Alternativní názvy: <code 
class="function">diag</code></p><p>Vytvořit diagonální matici z vektoru. Případně můžete hodnoty, kt
 eré se mají umístit na diagonálu, zadat jako jednotlivé parametry. Takže <strong 
class="userinput"><code>MakeDiagonal([1,2,3])</code></strong> je to stejné jako <strong 
class="userinput"><code>MakeDiagonal(1,2,3)</code></strong>.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/DiagonalMatrix"; target="_top">Planetmath</a> (text je v angličtině) 
nebo <a class="ulink" href="https://cs.wikipedia.org/wiki/Diagon%C3%A1ln%C3%AD_matice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-MakeVector"></a>MakeVector</span></dt><dd><pre class="synopsis">MakeVector 
(A)</pre><p>Vytvořit sloupcový vektor z matice poskládáním sloupců na sebe. Pokud je předáno <code 
class="constant">null</code>, vrátí <code class="constant">null</code>.</p></dd><dt><span class="term"><a 
name="gel-function-MatrixProduct"></a>MatrixProduct</span></dt><dd><pre class="synopsis">MatrixProduct 
(A)</pre><p>Spočítat sou
 čin všech prvků matice nebo vektoru. To znamená, že se vynásobí všechny prvky a vrátí se číslo, které je 
násobkem všech těchto prvků.</p></dd><dt><span class="term"><a 
name="gel-function-MatrixSum"></a>MatrixSum</span></dt><dd><pre class="synopsis">MatrixSum 
(A)</pre><p>Spočítat součet všech prvků matice nebo vektoru. To znamená, že se sečtou všechny prvky a vrátí 
se číslo, které je součtem všech těchto prvků.</p></dd><dt><span class="term"><a 
name="gel-function-MatrixSumSquares"></a>MatrixSumSquares</span></dt><dd><pre 
class="synopsis">MatrixSumSquares (A)</pre><p>Spočítat součet druhých mocnin všech prvků matice nebo 
vektoru.</p></dd><dt><span class="term"><a 
name="gel-function-NonzeroColumns"></a>NonzeroColumns</span></dt><dd><pre class="synopsis">NonzeroColumns 
(M)</pre><p>Vrátit řádkový vektor s indexy nenulových sloupců v matici <code 
class="varname">M</code>.</p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"
<a name="gel-function-NonzeroElements"></a>NonzeroElements</span></dt><dd><pre 
class="synopsis">NonzeroElements (v)</pre><p>Vrátit řádkový vektor s indexy nenulových prvků ve vektoru 
<code class="varname">v</code>.</p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-OuterProduct"></a>OuterProduct</span></dt><dd><pre class="synopsis">OuterProduct 
(u,v)</pre><p>Získat vnější součin dvou vektorů. Takže, když dejme tomu jsou <code class="varname">u</code> 
a <code class="varname">v</code> svislé vektory, pak vnější součin je <strong class="userinput"><code>v * 
u.'</code></strong>.</p></dd><dt><span class="term"><a 
name="gel-function-ReverseVector"></a>ReverseVector</span></dt><dd><pre class="synopsis">ReverseVector 
(v)</pre><p>Převrátit pořadí prvků ve vektoru. Pokud je předáno <code class="constant">null</code>, tak 
vrací <code class="constant">null</code>.</p></dd><dt><span class="term"><a name="gel-function-RowSum">
 </a>RowSum</span></dt><dd><pre class="synopsis">RowSum (m)</pre><p>Vypočítat součet každého řádku v matici a 
vrátit svislý vektor s výsledkem.</p></dd><dt><span class="term"><a 
name="gel-function-RowSumSquares"></a>RowSumSquares</span></dt><dd><pre class="synopsis">RowSumSquares 
(m)</pre><p>Vypočítat součet druhých mocnin každého řádku v matici a vrátit svislý vektor s 
výsledkem.</p></dd><dt><span class="term"><a name="gel-function-RowsOf"></a>RowsOf</span></dt><dd><pre 
class="synopsis">RowsOf (M)</pre><p>Získat řádky matice jako svislý vektor. Každý z prvků vektoru je 
vodorovný vektor, který odpovídá řádku matice <code class="varname">M</code>. Tato funkce je užitečná, když 
chcete ve smyčce procházet řádky matice. Například takto: <strong class="userinput"><code>for r in RowsOf(M) 
do
 neco(r)</code></strong>.</p></dd><dt><span class="term"><a 
name="gel-function-SetMatrixSize"></a>SetMatrixSize</span></dt><dd><pre class="synopsis">SetMatrixSize 
(M,radku,sloupcu)</pre><p>Vytvořit novou matici zadané velikosti z jiné staré. To znamená, že nová matice 
bude vrácena jako kopie té staré. Prvky, které přebývají, jsou odříznuty a volné místo je vyplněno nulami. 
Pokud je argument <code class="varname">radku</code> nebo <code class="varname">sloupcu</code> roven nule, je 
vráceno <code class="constant">null</code>.</p></dd><dt><span class="term"><a 
name="gel-function-ShuffleVector"></a>ShuffleVector</span></dt><dd><pre class="synopsis">ShuffleVector 
(v)</pre><p>Zamíchat pořadí prvků ve vektoru. Pokud je předáno <code class="constant">null</code>, tak vrací 
<code class="constant">null</code>.</p><p>Verze 1.0.13 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-SortVector"></a>SortVector</span></dt><dd><pre class="synopsis">S
 ortVector (v)</pre><p>Seřadit prvky vektoru ve vzestupném pořadí.</p></dd><dt><span class="term"><a 
name="gel-function-StripZeroColumns"></a>StripZeroColumns</span></dt><dd><pre 
class="synopsis">StripZeroColumns (M)</pre><p>Odstranit všechny čistě nulové sloupce matice <code 
class="varname">M</code>.</p></dd><dt><span class="term"><a 
name="gel-function-StripZeroRows"></a>StripZeroRows</span></dt><dd><pre class="synopsis">StripZeroRows 
(M)</pre><p>Odstranit všechny čistě nulové řádky matice <code class="varname">M</code>.</p></dd><dt><span 
class="term"><a name="gel-function-Submatrix"></a>Submatrix</span></dt><dd><pre class="synopsis">Submatrix 
(m,r,s)</pre><p>Vrátit sloupec (či sloupce) a řádek (či řádky) z matice. Je to stejné jako <strong 
class="userinput"><code>m@(r,s)</code></strong>. Argumenty <code class="varname">r</code> a <code 
class="varname">s</code> by měly být vektory se seznamy řádků a sloupců (nebo samostatná čísla, pokud požadu
 jete jen jeden řádek nebo sloupec).</p></dd><dt><span class="term"><a 
name="gel-function-SwapRows"></a>SwapRows</span></dt><dd><pre class="synopsis">SwapRows 
(m,radek1,radek2)</pre><p>Prohodit dva řádky v matici.</p></dd><dt><span class="term"><a 
name="gel-function-UpperTriangular"></a>UpperTriangular</span></dt><dd><pre class="synopsis">UpperTriangular 
(M)</pre><p>Vrátit kopii matice <code class="varname">M</code> se všemi prvky pod diagonálou nastavenými na 
nulu.</p></dd><dt><span class="term"><a name="gel-function-columns"></a>columns</span></dt><dd><pre 
class="synopsis">columns (M)</pre><p>Vrátit počet sloupců matice.</p></dd><dt><span class="term"><a 
name="gel-function-elements"></a>elements</span></dt><dd><pre class="synopsis">elements (M)</pre><p>Vrátit 
celkový počet prvků matice. Tj. počet sloupců krát počet řádků.</p></dd><dt><span class="term"><a 
name="gel-function-ones"></a>ones</span></dt><dd><pre class="synopsis">ones (radku,sloupcu...)</pr
 e><p>Vytvořit matici ze samých jedniček (nebo řádkový vektor, pokud je zadán jen jeden argument). Když je 
<code class="varname">radku</code> nebo <code class="varname">sloupcu</code> rovno nule, vrátí <code 
class="constant">null</code>.</p></dd><dt><span class="term"><a 
name="gel-function-rows"></a>rows</span></dt><dd><pre class="synopsis">rows (M)</pre><p>Vrátit počet řádků 
matice.</p></dd><dt><span class="term"><a name="gel-function-zeros"></a>zeros</span></dt><dd><pre 
class="synopsis">zeros (radku,sloupcu...)</pre><p>Vytvořit matici celou z nul (nebo řádkový vektor, pokud je 
zadán jen jeden argument). Pokud je argument <code class="varname">radku</code> nebo <code 
class="varname">sloupcu</code> roven nule, je vráceno <code 
class="constant">null</code>.</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" 
summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch11s07.html">Předcházející</a> </td><td 
 width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> 
<a accesskey="n" href="ch11s09.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Teorie 
čísel </td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Lineární algebra</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s09.html b/help/cs/html/ch11s09.html
index 024ac32..c670c68 100644
--- a/help/cs/html/ch11s09.html
+++ b/help/cs/html/ch11s09.html
@@ -1,61 +1,3 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Lineární 
algebra</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s08.html" title="Práce s maticemi"><link rel="next" 
href="ch11s10.html" title="Kombinatorika"></head><body bgcolor="white" text="black" link="#0000FF" 
vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Lineární algebra</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s08.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s10.html">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><d
 iv><h2 class="title" style="clear: both"><a name="genius-gel-function-list-linear-algebra"></a>Lineární 
algebra</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-AuxiliaryUnitMatrix"></a>AuxiliaryUnitMatrix</span></dt><dd><pre 
class="synopsis">AuxiliaryUnitMatrix (n)</pre><p>Získat pomocnou jednotkovou matici velikosti <code 
class="varname">n</code>. Jde o čtvercovou matici ze samých nul vyjma diagonály, na které jsou jedničky. Je 
to Jordanův blok s jedním vlastním číslem nula.</p><p>Více informací o Jordanově kanonické formě najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/JordanCanonicalFormTheorem"; 
target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/JordanBlock.html"; target="_top">Mathworld</a> (text je v angličtině) nebo 
<a class="ulink" href="http://cs.wikipedia.org/wiki/Jordanova_norm%C3%A1ln%C3%AD_forma"; t
 arget="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-BilinearForm"></a>BilinearForm</span></dt><dd><pre class="synopsis">BilinearForm 
(v,A,w)</pre><p>Spočítat (v,w) vzhledem k bilineární formě dané maticí A.</p></dd><dt><span class="term"><a 
name="gel-function-BilinearFormFunction"></a>BilinearFormFunction</span></dt><dd><pre 
class="synopsis">BilinearFormFunction (A)</pre><p>Vrátit funkci takovou, že vyhodnocuje dva vektory vzhledem 
k bilineární formě dané maticí A.</p></dd><dt><span class="term"><a 
name="gel-function-CharacteristicPolynomial"></a>CharacteristicPolynomial</span></dt><dd><pre 
class="synopsis">CharacteristicPolynomial (M)</pre><p>Alternativní názvy: <code 
class="function">CharPoly</code></p><p>Získat charakteristický polynom v podobě vektoru. Konkrétně vrací 
koeficienty polynomu počínaje konstantním členem. Jedná se o polynom definovaný pomocí <strong 
class="userinput"><code>det(M-xI)</code></strong>. Ko
 řeny tohoto polynomu jsou vlastní čísla matice <code class="varname">M</code>. Viz <a class="link" 
href="ch11s09.html#gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</a>.</p><p>Více
 informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/Characteristic_polynomial"; target="_top">Wikipedia</a> (text je v 
anličtině) a <a class="ulink" href="http://planetmath.org/CharacteristicEquation"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-CharacteristicPolynomialFunction"></a>CharacteristicPolynomialFunction</span></dt><dd><pre 
class="synopsis">CharacteristicPolynomialFunction (M)</pre><p>Získat charakteristický polynom v podobě 
funkce. Jedná se o polynom definovaný pomocí <strong class="userinput"><code>det(M-xI)</code></strong>. 
Kořeny tohoto polynomu jsou vlastní čísla matice <code class="varname">M</code>. Viz <a class="link" 
href="ch11s09
 .html#gel-function-CharacteristicPolynomial">CharacteristicPolynomial</a>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Characteristic_polynomial"; 
target="_top">Wikipedia</a> (text je v anličtině) a <a class="ulink" 
href="http://planetmath.org/CharacteristicEquation"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-ColumnSpace"></a>ColumnSpace</span></dt><dd><pre class="synopsis">ColumnSpace 
(M)</pre><p>Získat bázi matice pro prostor sloupců matice. Prakticky se vrátí matice, jejíž sloupce jsou 
bázemi pro prostor sloupců matice <code class="varname">M</code>. To je prostor rozložený podle sloupců 
matice <code class="varname">M</code>.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Row_and_column_spaces"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="
 gel-function-CommutationMatrix"></a>CommutationMatrix</span></dt><dd><pre class="synopsis">CommutationMatrix 
(m, n)</pre><p>Vrátit komutační matici <strong class="userinput"><code>K(m,n)</code></strong>, což je 
jedinečná matice velikosti <strong class="userinput"><code>m*n</code></strong> krát <strong 
class="userinput"><code>m*n</code></strong>, která splňuje <strong class="userinput"><code>K(m,n) * 
MakeVector(A) = MakeVector(A.')</code></strong> pro všechny matice <code class="varname">A</code> velikosti 
<code class="varname">m</code> krát <code class="varname">n</code>.</p></dd><dt><span class="term"><a 
name="gel-function-CompanionMatrix"></a>CompanionMatrix</span></dt><dd><pre class="synopsis">CompanionMatrix 
(p)</pre><p>Doplňková matice polynomu (jako vektor).</p></dd><dt><span class="term"><a 
name="gel-function-ConjugateTranspose"></a>ConjugateTranspose</span></dt><dd><pre 
class="synopsis">ConjugateTranspose (M)</pre><p>Konjugovaná transpozice matice (adju
 ngovaná). Je to stejné jako operátor <strong class="userinput"><code>'</code></strong>.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Conjugate_transpose"; 
target="_top">Wikipedia</a> (text je v angličtině) a <a class="ulink" 
href="http://planetmath.org/ConjugateTranspose"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Convolution"></a>Convolution</span></dt><dd><pre class="synopsis">Convolution 
(a,b)</pre><p>Alternativní názvy: <code class="function">convol</code></p><p>Spočítat konvoluci dvou 
vodorovných vektorů.</p></dd><dt><span class="term"><a 
name="gel-function-ConvolutionVector"></a>ConvolutionVector</span></dt><dd><pre 
class="synopsis">ConvolutionVector (a,b)</pre><p>Spočítat konvoluci dvou vodorovných vektorů. Výsledek vrátí 
jako vektor a ne sečtené dohromady.</p></dd><dt><span class="term"><a name="gel-function-CrossProduct"></a>Cr
 ossProduct</span></dt><dd><pre class="synopsis">CrossProduct (v,w)</pre><p>Vektorový součin dvou vektorů v 
R<sup>3</sup> jako sloupcový vektor.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Vektorov%C3%BD_sou%C4%8Din"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-DeterminantalDivisorsInteger"></a>DeterminantalDivisorsInteger</span></dt><dd><pre 
class="synopsis">DeterminantalDivisorsInteger (M)</pre><p>Získat determinantové dělitele celočíselné 
matice.</p></dd><dt><span class="term"><a name="gel-function-DirectSum"></a>DirectSum</span></dt><dd><pre 
class="synopsis">DirectSum (M,N...)</pre><p>Přímý součet matic.</p><p>Více informací najdete v encyklopedii 
<a class="ulink" 
href="https://cs.wikipedia.org/wiki/S%C4%8D%C3%ADt%C3%A1n%C3%AD_matic#Direktn.C3.AD_sou.C4.8Det"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a name="gel-function-DirectSumMatrixVector"></a
DirectSumMatrixVector</span></dt><dd><pre class="synopsis">DirectSumMatrixVector (v)</pre><p>Přímý součet 
vektoru matic.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/S%C4%8D%C3%ADt%C3%A1n%C3%AD_matic#Direktn.C3.AD_sou.C4.8Det"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Eigenvalues"></a>Eigenvalues</span></dt><dd><pre class="synopsis">Eigenvalues 
(M)</pre><p>Alternativní názvy: <code class="function">eig</code></p><p>Získat vlastní čísla čtvercové 
matice. V současnosti pracuje pouze pro matice do velikosti 4 krát 4 nebo pro trojúhelníkové matice (pro 
které jsou vlastní čísla na diagonále).</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Eigenvalue"; target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/Eigenvalue"; target="_top">Planetmath</a>, or
-           <a class="ulink" href="http://mathworld.wolfram.com/Eigenvalue.html"; target="_top">Mathworld</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-Eigenvectors"></a>Eigenvectors</span></dt><dd><pre class="synopsis">Eigenvectors 
(M)</pre><pre class="synopsis">Eigenvectors (M,&amp;vlastni_cisla)</pre><pre class="synopsis">Eigenvectors 
(M, &amp;vlastni_cisla, &amp;nasobnosti)</pre><p>Získat vlastní vektory čtvercové matice. Volitelně získat 
také vlastní čísla a jejich algebraické násobnosti. V současnosti pracuje pouze s maticemi do velikosti 2 
krát 2.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Eigenvector"; target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/Eigenvector"; target="_top">Planetmath</a>, or
-           <a class="ulink" href="http://mathworld.wolfram.com/Eigenvector.html"; target="_top">Mathworld</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-GramSchmidt"></a>GramSchmidt</span></dt><dd><pre class="synopsis">GramSchmidt 
(v,B...)</pre><p>Použít Gramův-Schmidtův proces (na sloupce) vzhledem k unitárnímu prostoru danému <code 
class="varname">B</code>. Pokud <code class="varname">B</code> není zadáno, je použit standardní hermitovský 
součin. <code class="varname">B</code> může být buď polybilineární funkce dvou argumentů nebo to může být 
matice v polybilineární formě. Vektory budou vytvořeny ortogonální vzhledem k <code 
class="varname">B</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/GramSchmidtOrthogonalization"; target="_top">Planetmath</a> (text je v angličtině) 
a <a class="ulink" href="https://cs.wikipedia.org/wiki/Gramova-Schmidtova_ortogonalizace"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-HankelMatrix"></a>HankelMatrix</span><
 /dt><dd><pre class="synopsis">HankelMatrix (c,r)</pre><p>Henkelova matice, což je matice se stejnými 
vedlejšími diagonálami. <code class="varname">c</code> je první řádek a <code class="varname">r</code> je 
poslední sloupec. Předpokládá se, že oba argumenty budou vektory a poslední prvek <code 
class="varname">c</code> bude stejný jako první prvek <code class="varname">r</code>.</p><p>Více informací 
najdete v encyklopedii <a class="ulink" href="https://en.wikipedia.org/wiki/Hankel_matrix"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-HilbertMatrix"></a>HilbertMatrix</span></dt><dd><pre class="synopsis">HilbertMatrix 
(n)</pre><p>Hilbertova matice řádu <code class="varname">n</code>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Hilbert_matrix"; 
target="_top">Wikipedia</a> (text je v angličtině) a <a class="ulink" href="http://planetmath.org/
 HilbertMatrix" target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Image"></a>Image</span></dt><dd><pre class="synopsis">Image (T)</pre><p>Získat obraz 
(sloupcový prostor) lineární transformace.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Row_and_column_spaces"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-InfNorm"></a>InfNorm</span></dt><dd><pre 
class="synopsis">InfNorm (v)</pre><p>Získat k vektoru normu typu nekonečno, někdy také nazývanou maximální 
norma.</p></dd><dt><span class="term"><a 
name="gel-function-InvariantFactorsInteger"></a>InvariantFactorsInteger</span></dt><dd><pre 
class="synopsis">InvariantFactorsInteger (M)</pre><p>Získat invariantní činitele čtvercové celočíselné 
matice.</p></dd><dt><span class="term"><a name="gel-function-InverseHilbertMatrix"></a>InverseHilbertMatri
 x</span></dt><dd><pre class="synopsis">InverseHilbertMatrix (n)</pre><p>Inverzní Hilbertova matice řádu 
<code class="varname">n</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/Hilbert_matrix"; target="_top">Wikipedia</a> (text je v angličtině) a <a 
class="ulink" href="http://planetmath.org/HilbertMatrix"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsHermitian"></a>IsHermitian</span></dt><dd><pre class="synopsis">IsHermitian 
(M)</pre><p>Je matice hermitovská? Tj. zda je rovna své konjugované transpozici.</p><p>Více informací najdete 
v encyklopediích <a class="ulink" href="http://planetmath.org/HermitianMatrix"; target="_top">Planetmath</a> 
(text je v angličtině) a <a class="ulink" href="https://en.wikipedia.org/wiki/Hermitian_matrix"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a name="gel-function-Is
 InSubspace"></a>IsInSubspace</span></dt><dd><pre class="synopsis">IsInSubspace (v,W)</pre><p>Zjistit, zda je 
vektor v podprostoru.</p></dd><dt><span class="term"><a 
name="gel-function-IsInvertible"></a>IsInvertible</span></dt><dd><pre class="synopsis">IsInvertible 
(n)</pre><p>Je matice (nebo číslo) invertovatelná (matice celých čísel je invertovatelná, když je 
invertovatelná nad celými čísly)?</p></dd><dt><span class="term"><a 
name="gel-function-IsInvertibleField"></a>IsInvertibleField</span></dt><dd><pre 
class="synopsis">IsInvertibleField (n)</pre><p>Je matice (nebo číslo) invertovatelná nad 
tělesem.</p></dd><dt><span class="term"><a name="gel-function-IsNormal"></a>IsNormal</span></dt><dd><pre 
class="synopsis">IsNormal (M)</pre><p>Je <code class="varname">M</code> normální matice. To jest, zda <strong 
class="userinput"><code>M*M' == M'*M</code></strong>.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/NormalMa
 trix" target="_top">Planetmath</a> (text je v angličtině) nebo <a class="ulink" 
href="http://mathworld.wolfram.com/NormalMatrix.html"; target="_top">Mathworld</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsPositiveDefinite"></a>IsPositiveDefinite</span></dt><dd><pre 
class="synopsis">IsPositiveDefinite (M)</pre><p>Je matice <code class="varname">M</code> hermitovská 
pozitivně definitní matice? To znamená, zda je <strong 
class="userinput"><code>HermitianProduct(M*v,v)</code></strong> vždy striktně pozitivní pro libovolný vektor 
<code class="varname">v</code>. <code class="varname">M</code> musí být čtvercová a hermitovská, aby byla 
pozitivně definitní. Kontrola, zda tomu tak je, spočívá v tom, zda každá hlavní podmatice má nezáporný 
determinant. (Viz <a class="link" 
href="ch11s08.html#gel-function-HermitianProduct">HermitianProduct</a>)</p><p>Poznamenejme, že někteří autoři 
(např. Mathworld) nevyžadují, aby
  matice <code class="varname">M</code> byla hermitovská a tak podmínka není skutečnu částí unitárního 
prostoru, ale neberte to za dogma. Pokud chcete takovou kontrolu provést, jednoduše zkontrolujte hermitovskou 
část matice <code class="varname">M</code> takto: <strong 
class="userinput"><code>IsPositiveDefinite(M+M')</code></strong>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/PositiveDefinite"; target="_top">Planetmath</a> 
(text je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Pozitivn%C4%9B_definitn%C3%AD_matice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IsPositiveSemidefinite"></a>IsPositiveSemidefinite</span></dt><dd><pre 
class="synopsis">IsPositiveSemidefinite (M)</pre><p>Je matice <code class="varname">M</code> 
 hermitovská pozitivně semidefinitní matice? To znamená, zda je <strong 
class="userinput"><code>HermitianProduct(M*v,v)</code></strong> vždy nezáporná pro libovolný vektor <code 
class="varname">v</code>. <code class="varname">M</code> musí být čtvercová a hermitovská, aby byla pozitivně 
semidefinitní. Kontrola, zda tomu tak je, spočívá v tom, zda každá hlavní podmatice má nezáporný determinant. 
(Viz <a class="link" 
href="ch11s08.html#gel-function-HermitianProduct">HermitianProduct</a>)</p><p>Poznamenejme, že někteří autoři 
(např. Mathworld) nevyžadují, aby matice <code class="varname">M</code> byla hermitovská a tak podmínka není 
skutečnu částí unitárního prostoru, ale neberte to za dogma. Pokud chcete takovou kontrolu provést, jednoduše 
zkontrolujte hermitovskou část matice <code class="varname">M</code> takto: <strong 
class="userinput"><code>IsPositiveSemidefinite(M+M')</code></strong>.</p><p>Více informací najdete v 
encykloped
 iích <a class="ulink" href="http://planetmath.org/PositiveSemidefinite"; target="_top">Planetmath</a> (text 
je v angličtině) nebo <a class="ulink" href="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html"; 
target="_top">Mathworld</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsSkewHermitian"></a>IsSkewHermitian</span></dt><dd><pre class="synopsis">IsSkewHermitian 
(M)</pre><p>Je matice antihermitovská? To znamená, zda je konjugovaná transpozice rovna negativní 
matici.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/SkewHermitianMatrix"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsUnitary"></a>IsUnitary</span></dt><dd><pre class="synopsis">IsUnitary (M)</pre><p>Je 
matice unitární? To je, zda <strong class="userinput"><code>M'*M</code></strong> a <strong 
class="userinput"><code>M*M'</code></strong> dají stejnou jednot
 kovou matici.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/UnitaryTransformation"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/UnitaryMatrix.html"; target="_top">Mathworld</a> (text je v 
angličtině) nebo <a class="ulink" href="http://cs.wikipedia.org/wiki/Unit%C3%A1rn%C3%AD_matice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-JordanBlock"></a>JordanBlock</span></dt><dd><pre class="synopsis">JordanBlock 
(n,lambda)</pre><p>Alternativní názvy: <code class="function">J</code></p><p>Získat Jordanův blok 
odpovídající vlastnímu číslu <code class="varname">lambda</code> s násobností <code 
class="varname">n</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/JordanCanonicalFormTheorem"; target="_top">Planetmath</a> (text je v angličtině), 
<a class="ulink" href="http://mathwor
 ld.wolfram.com/JordanBlock.html" target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="http://cs.wikipedia.org/wiki/Jordanova_norm%C3%A1ln%C3%AD_forma"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Kernel"></a>Kernel</span></dt><dd><pre class="synopsis">Kernel (T)</pre><p>Získat jádro 
(nulový prostor) lineární transformace.</p><p>(Viz <a class="link" 
href="ch11s09.html#gel-function-NullSpace">NullSpace</a>)</p></dd><dt><span class="term"><a 
name="gel-function-KroneckerProduct"></a>KroneckerProduct</span></dt><dd><pre 
class="synopsis">KroneckerProduct (M, N)</pre><p>Alternativní názvy: <code 
class="function">TensorProduct</code></p><p>Spočítat Kroneckerův součin (tenzorový součin ve standardní bázi) 
dvou matic.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Kronecker_product"; 
target="_top">Wikipedia</a>, 
-           <a class="ulink" href="http://planetmath.org/KroneckerProduct"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/KroneckerProduct.html"; 
target="_top">Mathworld</a> for more information.
-          </p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-LUDecomposition"></a>LUDecomposition</span></dt><dd><pre class="synopsis">LUDecomposition 
(A, L, U)</pre><p>Získat LU rozklad matice <code class="varname">A</code> tak, že se najde dolní a horní 
trojúhelníková matice, jejichž součinem je <code class="varname">A</code>. Výsledek se uloží v <code 
class="varname">L</code> a <code class="varname">U</code>, což by měly být odkazy na proměnné. V případě 
úspěchu vrací <code class="constant">true</code>. Například předpokládejme, že A je čtvercová matice, pak po 
spuštění: </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LUDecomposition(A,&amp;L,&amp;U)</code></strong>
-</pre><p> budete mít dolní matici uloženou v proměnné s názvem <code class="varname">L</code> a horní matici 
v proměnné s názvem <code class="varname">U</code>.</p><p>Jedná se o LU rozklad matice známý také jako 
Croutův a/nebo Choleského rozklad. (ISBN 0-201-11577-8 pp.99-103) Horní trojúhelníková matice zahrnuje 
diagonálu hodnot 1. Nejedná se o Doolittlovu metodu, která zahrnuje diagonálu jedniček do dolní 
matice.</p><p>Ne všechny matice mají LU rozklad, například <strong 
class="userinput"><code>[0,1;1,0]</code></strong> jej nemá a tato funkce v takovém případě vrátí <code 
class="constant">false</code> a nastaví <code class="varname">L</code> a <code class="varname">U</code> na 
<code class="constant">null</code>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/LU_decomposition"; 
target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/LUDecomposition"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/LUDecomposition.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-Minor"></a>Minor</span></dt><dd><pre 
class="synopsis">Minor (M,i,j)</pre><p>Získat subdeterminant (též minor) <code class="varname">i</code>-<code 
class="varname">j</code> matice.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/Minor"; target="_top">Planetmath</a>.</p></dd><dt><span class="term"><a 
name="gel-function-NonPivotColumns"></a>NonPivotColumns</span></dt><dd><pre class="synopsis">NonPivotColumns 
(M)</pre><p>Vrátit sloupce matice, které nemají pivot.</p></dd><dt><span class="term"><a 
name="gel-function-Norm"></a>Norm</span></dt><dd><pre class="synopsis">Norm (v,p...)</pre><p>Alternativní 
názvy: <code class="function">norm</code></p><p>Získat normu typu p (nebo typu 2, pokud není zadáno p) 
vektoru.</p></dd><dt><span class="term"><a name="gel-function-NullSpace"></a>NullSpace</span></dt><dd><pre 
class="synopsis">NullSpace (T)</pre><p>Získat nulový prostor ma
 tice. Tj. jádro lineární transformace, která matici představuje. Výsledek se vrací v podobě matice, jejíž 
sloupcový prostor je nulovým prostorem z <code class="varname">T</code>.</p><p>Více informací najdete v 
encyklopedii <a class="ulink" href="http://planetmath.org/Nullspace"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-Nullity"></a>Nullity</span></dt><dd><pre 
class="synopsis">Nullity (M)</pre><p>Alternativní názvy: <code class="function">nullity</code></p><p>Získat 
nulovost matice. Tzn. vrátit rozměry nulového prostoru; rozměry jádra matice <code 
class="varname">M</code>.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/Nullity"; target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span 
class="term"><a name="gel-function-OrthogonalComplement"></a>OrthogonalComplement</span></dt><dd><pre 
class="synopsis">OrthogonalComplement (M)</pre>
 <p>Získat ortogonální doplněk sloupcového prostoru.</p></dd><dt><span class="term"><a 
name="gel-function-PivotColumns"></a>PivotColumns</span></dt><dd><pre class="synopsis">PivotColumns 
(M)</pre><p>Vrátit sloupce matice s pivoty, tzn. sloupce, které mají 1 v řádkově redukované podobě. Rovněž 
vrací řádek, ve kterém se vyskytly.</p></dd><dt><span class="term"><a 
name="gel-function-Projection"></a>Projection</span></dt><dd><pre class="synopsis">Projection 
(v,W,B...)</pre><p>Projekce vektoru <code class="varname">v</code> do podprostoru <code 
class="varname">W</code> vzhledem k unitárnímu prostoru danému <code class="varname">B</code>. Pokud <code 
class="varname">B</code> není zadáno, je použit standardní hermitovský součin. <code class="varname">B</code> 
může být buď polybilineární funkce dvou argumentů nebo to může být matice v polybilineární 
formě.</p></dd><dt><span class="term"><a name="gel-function-QRDecomposition"></a>QRDecompositio
 n</span></dt><dd><pre class="synopsis">QRDecomposition (A, Q)</pre><p>Získat QR rozklad čtvercové matice 
<code class="varname">A</code>, vrací horní trojúhelníkovou matici <code class="varname">R</code> a nastavuje 
<code class="varname">Q</code> na ortogonální (unitární) matici. <code class="varname">Q</code> by měl být 
odkaz na proměnnou nebo <code class="constant">null</code>, pokud nic vrátit nechcete. Například pro </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong class="userinput"><code>R = 
QRDecomposition(A,&amp;Q)</code></strong>
-</pre><p> budete mít horní trojúhelníkovou matici uloženou v proměnné s názvem <code 
class="varname">R</code> a ortogonální (unitární) matici v <code class="varname">Q</code>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/QR_decomposition"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/QRDecomposition"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/QRDecomposition.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-RayleighQuotient"></a>RayleighQuotient</span></dt><dd><pre 
class="synopsis">RayleighQuotient (A,x)</pre><p>Vrátit Rayleighův podíl (nazývaný také Rayleighův-Ritzův 
koeficient nebo podíl) matice a vektoru.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/RayleighQuotient"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-RayleighQuotientIteration"></a>RayleighQuotientIteration</span></dt><dd><pre 
class="synopsis">RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</pre><p>Najít vlastní čísla matice 
<code class="varname">A</code> pomocí iterační metody Rayleighova podílu. <code class="varname">x</code> je 
odhadovaný vlastní vektor a mohl by být náhodný. Měl by mít nenulovou imaginární část, pokud existuje nějaká 
možnost, že budou nalezena komplexní vlastní čísla. Kód bude nanejvýše
  v <code class="varname">maxiter</code> iteracích a vracet <code class="constant">null</code>, pokud není 
možné získat výsledek v rámci chyby <code class="varname">epsilon</code>. <code class="varname">vecref</code> 
by měl být buď <code class="constant">null</code> nebo odkaz na proměnnou, do které by se měl uložit vlastní 
vektor.</p><p>Více informací o Rayleighově podíle najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/RayleighQuotient"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-Rank"></a>Rank</span></dt><dd><pre 
class="synopsis">Rank (M)</pre><p>Alternativní názvy: <code class="function">rank</code></p><p>Získat hodnost 
matice.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/SylvestersLaw"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-RosserMatrix"></a>RosserMatrix<
 /span></dt><dd><pre class="synopsis">RosserMatrix ()</pre><p>Vrátit Rosserovu matici, která je klasickým 
symetrickým problémem testu vlastního čísla.</p></dd><dt><span class="term"><a 
name="gel-function-Rotation2D"></a>Rotation2D</span></dt><dd><pre class="synopsis">Rotation2D 
(úhel)</pre><p>Alternativní názvy: <code class="function">RotationMatrix</code></p><p>Vrátit matici 
odpovídající otočení okolo počátku v R<sup>2</sup>.</p></dd><dt><span class="term"><a 
name="gel-function-Rotation3DX"></a>Rotation3DX</span></dt><dd><pre class="synopsis">Rotation3DX 
(úhel)</pre><p>Vrátit matici odpovídající otočení okolo počátku v R<sup>3</sup> kolem osy 
x.</p></dd><dt><span class="term"><a name="gel-function-Rotation3DY"></a>Rotation3DY</span></dt><dd><pre 
class="synopsis">Rotation3DY (úhel)</pre><p>Vrátit matici odpovídající otočení okolo počátku v R<sup>3</sup> 
kolem osy y.</p></dd><dt><span class="term"><a name="gel-function-Rotation3DZ"></a>Rota
 tion3DZ</span></dt><dd><pre class="synopsis">Rotation3DZ (úhel)</pre><p>Vrátit matici odpovídající otočení 
okolo počátku v R<sup>3</sup> kolem osy z.</p></dd><dt><span class="term"><a 
name="gel-function-RowSpace"></a>RowSpace</span></dt><dd><pre class="synopsis">RowSpace (M)</pre><p>Získat 
bázi matice pro prostor řádků matice.</p></dd><dt><span class="term"><a 
name="gel-function-SesquilinearForm"></a>SesquilinearForm</span></dt><dd><pre 
class="synopsis">SesquilinearForm (v,A,w)</pre><p>Vyhodnotit (v,w) vzhledem k polybilineární formě dané 
maticí <code class="varname">A</code>.</p></dd><dt><span class="term"><a 
name="gel-function-SesquilinearFormFunction"></a>SesquilinearFormFunction</span></dt><dd><pre 
class="synopsis">SesquilinearFormFunction (A)</pre><p>Vrátit funkci vyhodnocující dva vektory vzhledem k 
polybilineární formě dané maticí <code class="varname">A</code>.</p></dd><dt><span class="term"><a 
name="gel-function-SmithNormalFormField"></a>S
 mithNormalFormField</span></dt><dd><pre class="synopsis">SmithNormalFormField (A)</pre><p>Vrátit Smithův 
kanonický tvar (normální forma) matice nad poli (bude končit s jedničkami na diagonále).</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Smith_normal_form"; 
target="_top">Wikipedia</a> for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-SmithNormalFormInteger"></a>SmithNormalFormInteger</span></dt><dd><pre 
class="synopsis">SmithNormalFormInteger (M)</pre><p>Vrátit Smithův kanonický tvar (normální formu) pro 
čtvercové celočíselné matice nad celými čísly.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Smith_normal_form"; 
target="_top">Wikipedia</a> for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-SolveLinearSystem"></a>SolveLinearSystem</span></dt><dd><pre 
class="synopsis">SolveLinearSystem (M,V,argumenty...)</pre><p>Vyřešit lineární systém Mx=V, vrátit řešení V, 
pokud existuje jedinečné řešení, jinak vrátit <code class="constant">null</code>. Je možné použít dva 
dodatečné parametry předávané odkazem, ve kterých získáte redukované M a V.</p></dd><dt><span class="term"><a 
name="gel-function-ToeplitzMatrix"></a>ToeplitzMatrix</span></dt><dd><pre class="synopsis">ToeplitzMatrix (s, 
r...)</pre><p>Vrátit Teplitzovu matici sestavenou podle zadaného prvního sloupce <code 
class="varname">c</code> a (volitelně) prvního řádku <code class="varname">r</code>. Pokud je zadán pouze 
sloupec <code class="varname">c</code>, je pro první řádek použita konjugovaná a nekonjugovaná verze, aby se 
získala hermitovská matice (samozřejmě za předpokladu, že je první prvek reálný)
 .</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Toeplitz_matrix"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://planetmath.org/ToeplitzMatrix"; target="_top">Planetmath</a> for 
more information.
-          </p></dd><dt><span class="term"><a name="gel-function-Trace"></a>Trace</span></dt><dd><pre 
class="synopsis">Trace (M)</pre><p>Alternativní názvy: <code class="function">trace</code></p><p>Spočítat 
stopu matice. Jedná se o součet prvků na hlavní diagonále čtvercové matice.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Trace_(linear_algebra)" 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/Trace"; target="_top">Planetmath</a> for more 
information.
-          </p></dd><dt><span class="term"><a name="gel-function-Transpose"></a>Transpose</span></dt><dd><pre 
class="synopsis">Transpose (M)</pre><p>Transponovat matici. Funkčně je to stejné, jako operátor <strong 
class="userinput"><code>.'</code></strong>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Transpose"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/Transpose"; target="_top">Planetmath</a> for more 
information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-VandermondeMatrix"></a>VandermondeMatrix</span></dt><dd><pre 
class="synopsis">VandermondeMatrix (v)</pre><p>Alternativní názvy: <code 
class="function">vander</code></p><p>Vrátit Vandermondovu matici.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Vandermonde_matrix"; 
target="_top">Wikipedia</a> for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-VectorAngle"></a>VectorAngle</span></dt><dd><pre class="synopsis">VectorAngle 
(v,w,B...)</pre><p>Úhel dvou vektorů vzhledem k unitárnímu prostoru daného <code class="varname">B</code>. 
Pokud <code class="varname">B</code> není zadáno, je použit standardní hermitovský součin. <code 
class="varname">B</code> může být buď polybilineární funkce dvou argumentů nebo to může být matice v 
polybilineární formě.</p></dd><dt><span class="term"><a 
name="gel-function-VectorSpaceDirectSum"></a>VectorSpaceDirectSum</span></dt><dd><pre 
class="synopsis">VectorSpaceDirectSum (M,N)</pre><p>Přímý součet vektorových prostorů M a 
N.</p></dd><dt><span class="term"><a 
name="gel-function-VectorSubspaceIntersection"></a>VectorSubspaceIntersection</span></dt><dd><pre 
class="synopsis">VectorSubspaceIntersection (M,N)</pre><p>Průnik podprostorů daných pomocí M a 
N</p></dd><dt><span class="term"><a name="gel-
 function-VectorSubspaceSum"></a>VectorSubspaceSum</span></dt><dd><pre class="synopsis">VectorSubspaceSum 
(M,N)</pre><p>Součet vektorových prostorů M a N, tj. {w | w=m+n, m in M, n in N}.</p></dd><dt><span 
class="term"><a name="gel-function-adj"></a>adj</span></dt><dd><pre class="synopsis">adj 
(m)</pre><p>Alternativní názvy: <code class="function">Adjugate</code></p><p>Získat adjungovanou (reciproku) 
matici.</p></dd><dt><span class="term"><a name="gel-function-cref"></a>cref</span></dt><dd><pre 
class="synopsis">cref (M)</pre><p>Alternativní názvy: <code class="function">CREF</code> <code 
class="function">ColumnReducedEchelonForm</code></p><p>Spočítat sloupcově odstupňovaný tvar 
matice.</p></dd><dt><span class="term"><a name="gel-function-det"></a>det</span></dt><dd><pre 
class="synopsis">det (M)</pre><p>Alternativní názvy: <code class="function">Determinant</code></p><p>Získat 
determinant matice.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Determinant"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/Determinant2"; target="_top">Planetmath</a> for more 
information.
-          </p></dd><dt><span class="term"><a name="gel-function-ref"></a>ref</span></dt><dd><pre 
class="synopsis">ref (M)</pre><p>Alternativní názvy: <code class="function">REF</code> <code 
class="function">RowEchelonForm</code></p><p>Získat řádkově odstupňovaný tvar matice. To jest, použít 
Gaussovu eliminaci, ale bez zpětného dosazování do <code class="varname">M</code>. Nenulové řádky jsou 
poděleny, aby všechny pivoty byly 1.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Row_echelon_form"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/RowEchelonForm"; target="_top">Planetmath</a> for 
more information.
-          </p></dd><dt><span class="term"><a name="gel-function-rref"></a>rref</span></dt><dd><pre 
class="synopsis">rref (M)</pre><p>Alternativní názvy: <code class="function">RREF</code> <code 
class="function">ReducedRowEchelonForm</code></p><p>Získat redukovaný řádkově odstupňovaný tvar matice. To 
jest, použít Gaussovu eliminaci se zpětným dosazováním do <code class="varname">M</code>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Reduced_row_echelon_form"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/ReducedRowEchelonForm"; target="_top">Planetmath</a> 
for more information.
-          </p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s08.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s10.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Práce s 
maticemi </td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Kombinatorika</td></tr></table></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Lineární 
algebra</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s08.html" title="Práce s maticemi"><link rel="next" 
href="ch11s10.html" title="Kombinatorika"></head><body bgcolor="white" text="black" link="#0000FF" 
vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Lineární algebra</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s08.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s10.html">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><d
 iv><h2 class="title" style="clear: both"><a name="genius-gel-function-list-linear-algebra"></a>Lineární 
algebra</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-AuxiliaryUnitMatrix"></a>AuxiliaryUnitMatrix</span></dt><dd><pre 
class="synopsis">AuxiliaryUnitMatrix (n)</pre><p>Získat pomocnou jednotkovou matici velikosti <code 
class="varname">n</code>. Jde o čtvercovou matici ze samých nul vyjma diagonály, na které jsou jedničky. Je 
to Jordanův blok s jedním vlastním číslem nula.</p><p>Více informací o Jordanově kanonické formě najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/JordanCanonicalFormTheorem"; 
target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/JordanBlock.html"; target="_top">Mathworld</a> (text je v angličtině) nebo 
<a class="ulink" href="http://cs.wikipedia.org/wiki/Jordanova_norm%C3%A1ln%C3%AD_forma"; t
 arget="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-BilinearForm"></a>BilinearForm</span></dt><dd><pre class="synopsis">BilinearForm 
(v,A,w)</pre><p>Spočítat (v,w) vzhledem k bilineární formě dané maticí A.</p></dd><dt><span class="term"><a 
name="gel-function-BilinearFormFunction"></a>BilinearFormFunction</span></dt><dd><pre 
class="synopsis">BilinearFormFunction (A)</pre><p>Vrátit funkci takovou, že vyhodnocuje dva vektory vzhledem 
k bilineární formě dané maticí A.</p></dd><dt><span class="term"><a 
name="gel-function-CharacteristicPolynomial"></a>CharacteristicPolynomial</span></dt><dd><pre 
class="synopsis">CharacteristicPolynomial (M)</pre><p>Alternativní názvy: <code 
class="function">CharPoly</code></p><p>Získat charakteristický polynom v podobě vektoru. Konkrétně vrací 
koeficienty polynomu počínaje konstantním členem. Jedná se o polynom definovaný pomocí <strong 
class="userinput"><code>det(M-xI)</code></strong>. Ko
 řeny tohoto polynomu jsou vlastní čísla matice <code class="varname">M</code>. Viz <a class="link" 
href="ch11s09.html#gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</a>.</p><p>Více
 informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/Characteristic_polynomial"; target="_top">Wikipedia</a> (text je v 
anličtině) a <a class="ulink" href="http://planetmath.org/CharacteristicEquation"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-CharacteristicPolynomialFunction"></a>CharacteristicPolynomialFunction</span></dt><dd><pre 
class="synopsis">CharacteristicPolynomialFunction (M)</pre><p>Získat charakteristický polynom v podobě 
funkce. Jedná se o polynom definovaný pomocí <strong class="userinput"><code>det(M-xI)</code></strong>. 
Kořeny tohoto polynomu jsou vlastní čísla matice <code class="varname">M</code>. Viz <a class="link" 
href="ch11s09
 .html#gel-function-CharacteristicPolynomial">CharacteristicPolynomial</a>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Characteristic_polynomial"; 
target="_top">Wikipedia</a> (text je v anličtině) a <a class="ulink" 
href="http://planetmath.org/CharacteristicEquation"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-ColumnSpace"></a>ColumnSpace</span></dt><dd><pre class="synopsis">ColumnSpace 
(M)</pre><p>Získat bázi matice pro prostor sloupců matice. Prakticky se vrátí matice, jejíž sloupce jsou 
bázemi pro prostor sloupců matice <code class="varname">M</code>. To je prostor rozložený podle sloupců 
matice <code class="varname">M</code>.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Row_and_column_spaces"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="
 gel-function-CommutationMatrix"></a>CommutationMatrix</span></dt><dd><pre class="synopsis">CommutationMatrix 
(m, n)</pre><p>Vrátit komutační matici <strong class="userinput"><code>K(m,n)</code></strong>, což je 
jedinečná matice velikosti <strong class="userinput"><code>m*n</code></strong> krát <strong 
class="userinput"><code>m*n</code></strong>, která splňuje <strong class="userinput"><code>K(m,n) * 
MakeVector(A) = MakeVector(A.')</code></strong> pro všechny matice <code class="varname">A</code> velikosti 
<code class="varname">m</code> krát <code class="varname">n</code>.</p></dd><dt><span class="term"><a 
name="gel-function-CompanionMatrix"></a>CompanionMatrix</span></dt><dd><pre class="synopsis">CompanionMatrix 
(p)</pre><p>Doplňková matice polynomu (jako vektor).</p></dd><dt><span class="term"><a 
name="gel-function-ConjugateTranspose"></a>ConjugateTranspose</span></dt><dd><pre 
class="synopsis">ConjugateTranspose (M)</pre><p>Konjugovaná transpozice matice (adju
 ngovaná). Je to stejné jako operátor <strong class="userinput"><code>'</code></strong>.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Conjugate_transpose"; 
target="_top">Wikipedia</a> (text je v angličtině) a <a class="ulink" 
href="http://planetmath.org/ConjugateTranspose"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Convolution"></a>Convolution</span></dt><dd><pre class="synopsis">Convolution 
(a,b)</pre><p>Alternativní názvy: <code class="function">convol</code></p><p>Spočítat konvoluci dvou 
vodorovných vektorů.</p></dd><dt><span class="term"><a 
name="gel-function-ConvolutionVector"></a>ConvolutionVector</span></dt><dd><pre 
class="synopsis">ConvolutionVector (a,b)</pre><p>Spočítat konvoluci dvou vodorovných vektorů. Výsledek vrátí 
jako vektor a ne sečtené dohromady.</p></dd><dt><span class="term"><a name="gel-function-CrossProduct"></a>Cr
 ossProduct</span></dt><dd><pre class="synopsis">CrossProduct (v,w)</pre><p>Vektorový součin dvou vektorů v 
R<sup>3</sup> jako sloupcový vektor.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Vektorov%C3%BD_sou%C4%8Din"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-DeterminantalDivisorsInteger"></a>DeterminantalDivisorsInteger</span></dt><dd><pre 
class="synopsis">DeterminantalDivisorsInteger (M)</pre><p>Získat determinantové dělitele celočíselné 
matice.</p></dd><dt><span class="term"><a name="gel-function-DirectSum"></a>DirectSum</span></dt><dd><pre 
class="synopsis">DirectSum (M,N...)</pre><p>Přímý součet matic.</p><p>Více informací najdete v encyklopedii 
<a class="ulink" 
href="https://cs.wikipedia.org/wiki/S%C4%8D%C3%ADt%C3%A1n%C3%AD_matic#Direktn.C3.AD_sou.C4.8Det"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a name="gel-function-DirectSumMatrixVector"></a
DirectSumMatrixVector</span></dt><dd><pre class="synopsis">DirectSumMatrixVector (v)</pre><p>Přímý součet 
vektoru matic.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/S%C4%8D%C3%ADt%C3%A1n%C3%AD_matic#Direktn.C3.AD_sou.C4.8Det"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Eigenvalues"></a>Eigenvalues</span></dt><dd><pre class="synopsis">Eigenvalues 
(M)</pre><p>Alternativní názvy: <code class="function">eig</code></p><p>Získat vlastní čísla čtvercové 
matice. V současnosti pracuje pouze pro matice do velikosti 4 krát 4 nebo pro trojúhelníkové matice (pro 
které jsou vlastní čísla na diagonále).</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/Eigenvalue"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/Eigenvalue.html"; target="_top">Mathworld</a> (text je v 
angličt
 ině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Vlastn%C3%AD_%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Eigenvectors"></a>Eigenvectors</span></dt><dd><pre class="synopsis">Eigenvectors 
(M)</pre><pre class="synopsis">Eigenvectors (M,&amp;vlastni_cisla)</pre><pre class="synopsis">Eigenvectors 
(M, &amp;vlastni_cisla, &amp;nasobnosti)</pre><p>Získat vlastní vektory čtvercové matice. Volitelně získat 
také vlastní čísla a jejich algebraické násobnosti. V současnosti pracuje pouze s maticemi do velikosti 2 
krát 2.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/Eigenvector"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/Eigenvector.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Vlastn%C3%AD_%C4%8D%C3%ADslo"; 
target="_top">Wikipedia
 </a>.</p></dd><dt><span class="term"><a name="gel-function-GramSchmidt"></a>GramSchmidt</span></dt><dd><pre 
class="synopsis">GramSchmidt (v,B...)</pre><p>Použít Gramův-Schmidtův proces (na sloupce) vzhledem k 
unitárnímu prostoru danému <code class="varname">B</code>. Pokud <code class="varname">B</code> není zadáno, 
je použit standardní hermitovský součin. <code class="varname">B</code> může být buď polybilineární funkce 
dvou argumentů nebo to může být matice v polybilineární formě. Vektory budou vytvořeny ortogonální vzhledem k 
<code class="varname">B</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/GramSchmidtOrthogonalization"; target="_top">Planetmath</a> (text je v angličtině) 
a <a class="ulink" href="https://cs.wikipedia.org/wiki/Gramova-Schmidtova_ortogonalizace"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-HankelMatrix"></a>HankelMatrix</span></dt><
 dd><pre class="synopsis">HankelMatrix (c,r)</pre><p>Henkelova matice, což je matice se stejnými vedlejšími 
diagonálami. <code class="varname">c</code> je první řádek a <code class="varname">r</code> je poslední 
sloupec. Předpokládá se, že oba argumenty budou vektory a poslední prvek <code class="varname">c</code> bude 
stejný jako první prvek <code class="varname">r</code>.</p><p>Více informací najdete v encyklopedii <a 
class="ulink" href="https://en.wikipedia.org/wiki/Hankel_matrix"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-HilbertMatrix"></a>HilbertMatrix</span></dt><dd><pre class="synopsis">HilbertMatrix 
(n)</pre><p>Hilbertova matice řádu <code class="varname">n</code>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Hilbert_matrix"; 
target="_top">Wikipedia</a> (text je v angličtině) a <a class="ulink" href="http://planetmath.org/Hilbe
 rtMatrix" target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Image"></a>Image</span></dt><dd><pre class="synopsis">Image (T)</pre><p>Získat obraz 
(sloupcový prostor) lineární transformace.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Row_and_column_spaces"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-InfNorm"></a>InfNorm</span></dt><dd><pre 
class="synopsis">InfNorm (v)</pre><p>Získat k vektoru normu typu nekonečno, někdy také nazývanou maximální 
norma.</p></dd><dt><span class="term"><a 
name="gel-function-InvariantFactorsInteger"></a>InvariantFactorsInteger</span></dt><dd><pre 
class="synopsis">InvariantFactorsInteger (M)</pre><p>Získat invariantní činitele čtvercové celočíselné 
matice.</p></dd><dt><span class="term"><a 
name="gel-function-InverseHilbertMatrix"></a>InverseHilbertMatrix</sp
 an></dt><dd><pre class="synopsis">InverseHilbertMatrix (n)</pre><p>Inverzní Hilbertova matice řádu <code 
class="varname">n</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/Hilbert_matrix"; target="_top">Wikipedia</a> (text je v angličtině) a <a 
class="ulink" href="http://planetmath.org/HilbertMatrix"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsHermitian"></a>IsHermitian</span></dt><dd><pre class="synopsis">IsHermitian 
(M)</pre><p>Je matice hermitovská? Tj. zda je rovna své konjugované transpozici.</p><p>Více informací najdete 
v encyklopediích <a class="ulink" href="http://planetmath.org/HermitianMatrix"; target="_top">Planetmath</a> 
(text je v angličtině) a <a class="ulink" href="https://en.wikipedia.org/wiki/Hermitian_matrix"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsInSub
 space"></a>IsInSubspace</span></dt><dd><pre class="synopsis">IsInSubspace (v,W)</pre><p>Zjistit, zda je 
vektor v podprostoru.</p></dd><dt><span class="term"><a 
name="gel-function-IsInvertible"></a>IsInvertible</span></dt><dd><pre class="synopsis">IsInvertible 
(n)</pre><p>Je matice (nebo číslo) invertovatelná (matice celých čísel je invertovatelná, když je 
invertovatelná nad celými čísly)?</p></dd><dt><span class="term"><a 
name="gel-function-IsInvertibleField"></a>IsInvertibleField</span></dt><dd><pre 
class="synopsis">IsInvertibleField (n)</pre><p>Je matice (nebo číslo) invertovatelná nad 
tělesem.</p></dd><dt><span class="term"><a name="gel-function-IsNormal"></a>IsNormal</span></dt><dd><pre 
class="synopsis">IsNormal (M)</pre><p>Je <code class="varname">M</code> normální matice. To jest, zda <strong 
class="userinput"><code>M*M' == M'*M</code></strong>.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/NormalMatrix";
  target="_top">Planetmath</a> (text je v angličtině) nebo <a class="ulink" 
href="http://mathworld.wolfram.com/NormalMatrix.html"; target="_top">Mathworld</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsPositiveDefinite"></a>IsPositiveDefinite</span></dt><dd><pre 
class="synopsis">IsPositiveDefinite (M)</pre><p>Je matice <code class="varname">M</code> hermitovská 
pozitivně definitní matice? To znamená, zda je <strong 
class="userinput"><code>HermitianProduct(M*v,v)</code></strong> vždy striktně pozitivní pro libovolný vektor 
<code class="varname">v</code>. <code class="varname">M</code> musí být čtvercová a hermitovská, aby byla 
pozitivně definitní. Kontrola, zda tomu tak je, spočívá v tom, zda každá hlavní podmatice má nezáporný 
determinant. (Viz <a class="link" 
href="ch11s08.html#gel-function-HermitianProduct">HermitianProduct</a>)</p><p>Poznamenejme, že někteří autoři 
(např. Mathworld) nevyžadují, aby mati
 ce <code class="varname">M</code> byla hermitovská a tak podmínka není skutečnu částí unitárního prostoru, 
ale neberte to za dogma. Pokud chcete takovou kontrolu provést, jednoduše zkontrolujte hermitovskou část 
matice <code class="varname">M</code> takto: <strong 
class="userinput"><code>IsPositiveDefinite(M+M')</code></strong>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/PositiveDefinite"; target="_top">Planetmath</a> 
(text je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Pozitivn%C4%9B_definitn%C3%AD_matice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-IsPositiveSemidefinite"></a>IsPositiveSemidefinite</span></dt><dd><pre 
class="synopsis">IsPositiveSemidefinite (M)</pre><p>Je matice <code class="varname">M</code> hermi
 tovská pozitivně semidefinitní matice? To znamená, zda je <strong 
class="userinput"><code>HermitianProduct(M*v,v)</code></strong> vždy nezáporná pro libovolný vektor <code 
class="varname">v</code>. <code class="varname">M</code> musí být čtvercová a hermitovská, aby byla pozitivně 
semidefinitní. Kontrola, zda tomu tak je, spočívá v tom, zda každá hlavní podmatice má nezáporný determinant. 
(Viz <a class="link" 
href="ch11s08.html#gel-function-HermitianProduct">HermitianProduct</a>)</p><p>Poznamenejme, že někteří autoři 
(např. Mathworld) nevyžadují, aby matice <code class="varname">M</code> byla hermitovská a tak podmínka není 
skutečnu částí unitárního prostoru, ale neberte to za dogma. Pokud chcete takovou kontrolu provést, jednoduše 
zkontrolujte hermitovskou část matice <code class="varname">M</code> takto: <strong 
class="userinput"><code>IsPositiveSemidefinite(M+M')</code></strong>.</p><p>Více informací najdete v 
encyklopediích
  <a class="ulink" href="http://planetmath.org/PositiveSemidefinite"; target="_top">Planetmath</a> (text je v 
angličtině) nebo <a class="ulink" href="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html"; 
target="_top">Mathworld</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsSkewHermitian"></a>IsSkewHermitian</span></dt><dd><pre class="synopsis">IsSkewHermitian 
(M)</pre><p>Je matice antihermitovská? To znamená, zda je konjugovaná transpozice rovna negativní 
matici.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/SkewHermitianMatrix"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-IsUnitary"></a>IsUnitary</span></dt><dd><pre class="synopsis">IsUnitary (M)</pre><p>Je 
matice unitární? To je, zda <strong class="userinput"><code>M'*M</code></strong> a <strong 
class="userinput"><code>M*M'</code></strong> dají stejnou jednotkovou
  matici.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/UnitaryTransformation"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/UnitaryMatrix.html"; target="_top">Mathworld</a> (text je v 
angličtině) nebo <a class="ulink" href="http://cs.wikipedia.org/wiki/Unit%C3%A1rn%C3%AD_matice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-JordanBlock"></a>JordanBlock</span></dt><dd><pre class="synopsis">JordanBlock 
(n,lambda)</pre><p>Alternativní názvy: <code class="function">J</code></p><p>Získat Jordanův blok 
odpovídající vlastnímu číslu <code class="varname">lambda</code> s násobností <code 
class="varname">n</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/JordanCanonicalFormTheorem"; target="_top">Planetmath</a> (text je v angličtině), 
<a class="ulink" href="http://mathworld.wo
 lfram.com/JordanBlock.html" target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="http://cs.wikipedia.org/wiki/Jordanova_norm%C3%A1ln%C3%AD_forma"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Kernel"></a>Kernel</span></dt><dd><pre class="synopsis">Kernel (T)</pre><p>Získat jádro 
(nulový prostor) lineární transformace.</p><p>(Viz <a class="link" 
href="ch11s09.html#gel-function-NullSpace">NullSpace</a>)</p></dd><dt><span class="term"><a 
name="gel-function-KroneckerProduct"></a>KroneckerProduct</span></dt><dd><pre 
class="synopsis">KroneckerProduct (M, N)</pre><p>Alternativní názvy: <code 
class="function">TensorProduct</code></p><p>Spočítat Kroneckerův součin (tenzorový součin ve standardní bázi) 
dvou matic.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/Kronecker_product"; target="_top">Wikipedia</a> (text je v angličtině), <a 
class="ulink" href="h
 ttp://planetmath.org/KroneckerProduct" target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="http://mathworld.wolfram.com/KroneckerProduct.html"; target="_top">Mathworld</a> (text je 
v angličtině).</p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-LUDecomposition"></a>LUDecomposition</span></dt><dd><pre class="synopsis">LUDecomposition 
(A, L, U)</pre><p>Získat LU rozklad matice <code class="varname">A</code> tak, že se najde dolní a horní 
trojúhelníková matice, jejichž součinem je <code class="varname">A</code>. Výsledek se uloží v <code 
class="varname">L</code> a <code class="varname">U</code>, což by měly být odkazy na proměnné. V případě 
úspěchu vrací <code class="constant">true</code>. Například předpokládejme, že A je čtvercová matice, pak po 
spuštění: </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LUDecomposition(A,&amp;L,&amp;U
 )</code></strong>
+</pre><p> budete mít dolní matici uloženou v proměnné s názvem <code class="varname">L</code> a horní matici 
v proměnné s názvem <code class="varname">U</code>.</p><p>Jedná se o LU rozklad matice známý také jako 
Croutův a/nebo Choleského rozklad. (ISBN 0-201-11577-8 pp.99-103) Horní trojúhelníková matice zahrnuje 
diagonálu hodnot 1. Nejedná se o Doolittlovu metodu, která zahrnuje diagonálu jedniček do dolní 
matice.</p><p>Ne všechny matice mají LU rozklad, například <strong 
class="userinput"><code>[0,1;1,0]</code></strong> jej nemá a tato funkce v takovém případě vrátí <code 
class="constant">false</code> a nastaví <code class="varname">L</code> a <code class="varname">U</code> na 
<code class="constant">null</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/LUDecomposition"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/LUDecompo
 sition.html" target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/LU_rozklad"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-Minor"></a>Minor</span></dt><dd><pre class="synopsis">Minor 
(M,i,j)</pre><p>Získat subdeterminant (též minor) <code class="varname">i</code>-<code 
class="varname">j</code> matice.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/Minor"; target="_top">Planetmath</a>.</p></dd><dt><span class="term"><a 
name="gel-function-NonPivotColumns"></a>NonPivotColumns</span></dt><dd><pre class="synopsis">NonPivotColumns 
(M)</pre><p>Vrátit sloupce matice, které nemají pivot.</p></dd><dt><span class="term"><a 
name="gel-function-Norm"></a>Norm</span></dt><dd><pre class="synopsis">Norm (v,p...)</pre><p>Alternativní 
názvy: <code class="function">norm</code></p><p>Získat normu typu p (nebo typu 2, pokud není zadáno p) 
vektoru.</p></
 dd><dt><span class="term"><a name="gel-function-NullSpace"></a>NullSpace</span></dt><dd><pre 
class="synopsis">NullSpace (T)</pre><p>Získat nulový prostor matice. Tj. jádro lineární transformace, která 
matici představuje. Výsledek se vrací v podobě matice, jejíž sloupcový prostor je nulovým prostorem z <code 
class="varname">T</code>.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/Nullspace"; target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span 
class="term"><a name="gel-function-Nullity"></a>Nullity</span></dt><dd><pre class="synopsis">Nullity 
(M)</pre><p>Alternativní názvy: <code class="function">nullity</code></p><p>Získat nulovost matice. Tzn. 
vrátit rozměry nulového prostoru; rozměry jádra matice <code class="varname">M</code>.</p><p>Více informací 
najdete v encyklopedii <a class="ulink" href="http://planetmath.org/Nullity"; target="_top">Planetmath</a> 
(text je v angličtině).</p></dd><
 dt><span class="term"><a 
name="gel-function-OrthogonalComplement"></a>OrthogonalComplement</span></dt><dd><pre 
class="synopsis">OrthogonalComplement (M)</pre><p>Získat ortogonální doplněk sloupcového 
prostoru.</p></dd><dt><span class="term"><a 
name="gel-function-PivotColumns"></a>PivotColumns</span></dt><dd><pre class="synopsis">PivotColumns 
(M)</pre><p>Vrátit sloupce matice s pivoty, tzn. sloupce, které mají 1 v řádkově redukované podobě. Rovněž 
vrací řádek, ve kterém se vyskytly.</p></dd><dt><span class="term"><a 
name="gel-function-Projection"></a>Projection</span></dt><dd><pre class="synopsis">Projection 
(v,W,B...)</pre><p>Projekce vektoru <code class="varname">v</code> do podprostoru <code 
class="varname">W</code> vzhledem k unitárnímu prostoru danému <code class="varname">B</code>. Pokud <code 
class="varname">B</code> není zadáno, je použit standardní hermitovský součin. <code class="varname">B</code> 
může být buď polybilineární funkce 
 dvou argumentů nebo to může být matice v polybilineární formě.</p></dd><dt><span class="term"><a 
name="gel-function-QRDecomposition"></a>QRDecomposition</span></dt><dd><pre class="synopsis">QRDecomposition 
(A, Q)</pre><p>Získat QR rozklad čtvercové matice <code class="varname">A</code>, vrací horní trojúhelníkovou 
matici <code class="varname">R</code> a nastavuje <code class="varname">Q</code> na ortogonální (unitární) 
matici. <code class="varname">Q</code> by měl být odkaz na proměnnou nebo <code class="constant">null</code>, 
pokud nic vrátit nechcete. Například pro </p><pre class="screen"><code class="prompt">genius&gt;</code> 
<strong class="userinput"><code>R = QRDecomposition(A,&amp;Q)</code></strong>
+</pre><p> budete mít horní trojúhelníkovou matici uloženou v proměnné s názvem <code 
class="varname">R</code> a ortogonální (unitární) matici v <code class="varname">Q</code>.</p><p>Více 
informací najdete v encyklopediích <a class="ulink" href="http://planetmath.org/QRDecomposition"; 
target="_top">Planetmath</a> (text je v angličtině), <a class="ulink" 
href="http://mathworld.wolfram.com/QRDecomposition.html"; target="_top">Mathworld</a> (text je v angličtině) a 
<a class="ulink" href="https://cs.wikipedia.org/wiki/QR_rozklad"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-RayleighQuotient"></a>RayleighQuotient</span></dt><dd><pre 
class="synopsis">RayleighQuotient (A,x)</pre><p>Vrátit Rayleighův podíl (nazývaný také Rayleighův-Ritzův 
koeficient nebo podíl) matice a vektoru.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/RayleighQuotient"; target="_top">Planetmath</a> (text j
 e v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-RayleighQuotientIteration"></a>RayleighQuotientIteration</span></dt><dd><pre 
class="synopsis">RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</pre><p>Najít vlastní čísla matice 
<code class="varname">A</code> pomocí iterační metody Rayleighova podílu. <code class="varname">x</code> je 
odhadovaný vlastní vektor a mohl by být náhodný. Měl by mít nenulovou imaginární část, pokud existuje nějaká 
možnost, že budou nalezena komplexní vlastní čísla. Kód bude nanejvýše v <code class="varname">maxiter</code> 
iteracích a vracet <code class="constant">null</code>, pokud není možné získat výsledek v rámci chyby <code 
class="varname">epsilon</code>. <code class="varname">vecref</code> by měl být buď <code 
class="constant">null</code> nebo odkaz na proměnnou, do které by se měl uložit vlastní vektor.</p><p>Více 
informací o Rayleighově podíle najdete v encyklopedii
  <a class="ulink" href="http://planetmath.org/RayleighQuotient"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-Rank"></a>Rank</span></dt><dd><pre 
class="synopsis">Rank (M)</pre><p>Alternativní názvy: <code class="function">rank</code></p><p>Získat hodnost 
matice.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/SylvestersLaw"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-RosserMatrix"></a>RosserMatrix</span></dt><dd><pre class="synopsis">RosserMatrix 
()</pre><p>Vrátit Rosserovu matici, která je klasickým symetrickým problémem testu vlastního 
čísla.</p></dd><dt><span class="term"><a name="gel-function-Rotation2D"></a>Rotation2D</span></dt><dd><pre 
class="synopsis">Rotation2D (úhel)</pre><p>Alternativní názvy: <code 
class="function">RotationMatrix</code></p><p>Vrátit matici odpovídající otočení 
 okolo počátku v R<sup>2</sup>.</p></dd><dt><span class="term"><a 
name="gel-function-Rotation3DX"></a>Rotation3DX</span></dt><dd><pre class="synopsis">Rotation3DX 
(úhel)</pre><p>Vrátit matici odpovídající otočení okolo počátku v R<sup>3</sup> kolem osy 
x.</p></dd><dt><span class="term"><a name="gel-function-Rotation3DY"></a>Rotation3DY</span></dt><dd><pre 
class="synopsis">Rotation3DY (úhel)</pre><p>Vrátit matici odpovídající otočení okolo počátku v R<sup>3</sup> 
kolem osy y.</p></dd><dt><span class="term"><a 
name="gel-function-Rotation3DZ"></a>Rotation3DZ</span></dt><dd><pre class="synopsis">Rotation3DZ 
(úhel)</pre><p>Vrátit matici odpovídající otočení okolo počátku v R<sup>3</sup> kolem osy 
z.</p></dd><dt><span class="term"><a name="gel-function-RowSpace"></a>RowSpace</span></dt><dd><pre 
class="synopsis">RowSpace (M)</pre><p>Získat bázi matice pro prostor řádků matice.</p></dd><dt><span 
class="term"><a name="gel-function-SesquilinearForm"></
 a>SesquilinearForm</span></dt><dd><pre class="synopsis">SesquilinearForm (v,A,w)</pre><p>Vyhodnotit (v,w) 
vzhledem k polybilineární formě dané maticí <code class="varname">A</code>.</p></dd><dt><span class="term"><a 
name="gel-function-SesquilinearFormFunction"></a>SesquilinearFormFunction</span></dt><dd><pre 
class="synopsis">SesquilinearFormFunction (A)</pre><p>Vrátit funkci vyhodnocující dva vektory vzhledem k 
polybilineární formě dané maticí <code class="varname">A</code>.</p></dd><dt><span class="term"><a 
name="gel-function-SmithNormalFormField"></a>SmithNormalFormField</span></dt><dd><pre 
class="synopsis">SmithNormalFormField (A)</pre><p>Vrátit Smithův kanonický tvar (normální forma) matice nad 
poli (bude končit s jedničkami na diagonále).</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Smith_normal_form"; target="_top">Wikipedia</a> (článek je v 
angličtině).</p></dd><dt><span class="term"><a name
 ="gel-function-SmithNormalFormInteger"></a>SmithNormalFormInteger</span></dt><dd><pre 
class="synopsis">SmithNormalFormInteger (M)</pre><p>Vrátit Smithův kanonický tvar (normální formu) pro 
čtvercové celočíselné matice nad celými čísly.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Smith_normal_form"; target="_top">Wikipedia</a> (článek je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-SolveLinearSystem"></a>SolveLinearSystem</span></dt><dd><pre 
class="synopsis">SolveLinearSystem (M,V,argumenty...)</pre><p>Vyřešit lineární systém Mx=V, vrátit řešení V, 
pokud existuje jedinečné řešení, jinak vrátit <code class="constant">null</code>. Je možné použít dva 
dodatečné parametry předávané odkazem, ve kterých získáte redukované M a V.</p></dd><dt><span class="term"><a 
name="gel-function-ToeplitzMatrix"></a>ToeplitzMatrix</span></dt><dd><pre class="synopsis">ToeplitzMa
 trix (s, r...)</pre><p>Vrátit Teplitzovu matici sestavenou podle zadaného prvního sloupce <code 
class="varname">c</code> a (volitelně) prvního řádku <code class="varname">r</code>. Pokud je zadán pouze 
sloupec <code class="varname">c</code>, je pro první řádek použita konjugovaná a nekonjugovaná verze, aby se 
získala hermitovská matice (samozřejmě za předpokladu, že je první prvek reálný).</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/Toeplitz_matrix"; 
target="_top">Wikipedia</a> (text je v angličtině) a <a class="ulink" 
href="http://planetmath.org/ToeplitzMatrix"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-Trace"></a>Trace</span></dt><dd><pre 
class="synopsis">Trace (M)</pre><p>Alternativní názvy: <code class="function">trace</code></p><p>Spočítat 
stopu matice. Jedná se o součet prvků na hlavní diagonále čtvercové matice.<
 /p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Stopa_%28algebra%29"; target="_top">Wikipedia</a> a <a class="ulink" 
href="http://planetmath.org/Trace"; target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span 
class="term"><a name="gel-function-Transpose"></a>Transpose</span></dt><dd><pre class="synopsis">Transpose 
(M)</pre><p>Transponovat matici. Funkčně je to stejné, jako operátor <strong 
class="userinput"><code>.'</code></strong>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Transpozice_matice"; target="_top">Wikipedia</a> a <a class="ulink" 
href="http://planetmath.org/Transpose"; target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span 
class="term"><a name="gel-function-VandermondeMatrix"></a>VandermondeMatrix</span></dt><dd><pre 
class="synopsis">VandermondeMatrix (v)</pre><p>Alternativní názvy: <code class="function">vander</co
 de></p><p>Vrátit Vandermondovu matici.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Vandermondova_matice"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-VectorAngle"></a>VectorAngle</span></dt><dd><pre 
class="synopsis">VectorAngle (v,w,B...)</pre><p>Úhel dvou vektorů vzhledem k unitárnímu prostoru daného <code 
class="varname">B</code>. Pokud <code class="varname">B</code> není zadáno, je použit standardní hermitovský 
součin. <code class="varname">B</code> může být buď polybilineární funkce dvou argumentů nebo to může být 
matice v polybilineární formě.</p></dd><dt><span class="term"><a 
name="gel-function-VectorSpaceDirectSum"></a>VectorSpaceDirectSum</span></dt><dd><pre 
class="synopsis">VectorSpaceDirectSum (M,N)</pre><p>Přímý součet vektorových prostorů M a 
N.</p></dd><dt><span class="term"><a name="gel-function-VectorSubspaceIntersection"></a>VectorSubspac
 eIntersection</span></dt><dd><pre class="synopsis">VectorSubspaceIntersection (M,N)</pre><p>Průnik 
podprostorů daných pomocí M a N</p></dd><dt><span class="term"><a 
name="gel-function-VectorSubspaceSum"></a>VectorSubspaceSum</span></dt><dd><pre 
class="synopsis">VectorSubspaceSum (M,N)</pre><p>Součet vektorových prostorů M a N, tj. {w | w=m+n, m in M, n 
in N}.</p></dd><dt><span class="term"><a name="gel-function-adj"></a>adj</span></dt><dd><pre 
class="synopsis">adj (m)</pre><p>Alternativní názvy: <code class="function">Adjugate</code></p><p>Získat 
adjungovanou (reciproku) matici.</p></dd><dt><span class="term"><a 
name="gel-function-cref"></a>cref</span></dt><dd><pre class="synopsis">cref (M)</pre><p>Alternativní názvy: 
<code class="function">CREF</code> <code class="function">ColumnReducedEchelonForm</code></p><p>Spočítat 
sloupcově odstupňovaný tvar matice.</p></dd><dt><span class="term"><a 
name="gel-function-det"></a>det</span></dt><dd><pre class="synopsis">
 det (M)</pre><p>Alternativní názvy: <code class="function">Determinant</code></p><p>Získat determinant 
matice.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/Determinant2"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Determinant"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-ref"></a>ref</span></dt><dd><pre class="synopsis">ref 
(M)</pre><p>Alternativní názvy: <code class="function">REF</code> <code 
class="function">RowEchelonForm</code></p><p>Získat řádkově odstupňovaný tvar matice. To jest, použít 
Gaussovu eliminaci, ale bez zpětného dosazování do <code class="varname">M</code>. Nenulové řádky jsou 
poděleny, aby všechny pivoty byly 1.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/Row_echelon_form"; target="_top">Wikipedia</a> (text je v angličtině) a <
 a class="ulink" href="http://planetmath.org/RowEchelonForm"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-rref"></a>rref</span></dt><dd><pre 
class="synopsis">rref (M)</pre><p>Alternativní názvy: <code class="function">RREF</code> <code 
class="function">ReducedRowEchelonForm</code></p><p>Získat redukovaný řádkově odstupňovaný tvar matice. To 
jest, použít Gaussovu eliminaci se zpětným dosazováním do <code class="varname">M</code>.</p><p>Více 
informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/Reduced_row_echelon_form"; target="_top">Wikipedia</a> (text je v 
angličtině) a <a class="ulink" href="http://planetmath.org/ReducedRowEchelonForm"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd></dl></div></div><div 
class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a 
accesskey="p" href="ch11s08.html">Př
 edcházející</a> </td><td width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td 
width="40%" align="right"> <a accesskey="n" href="ch11s10.html">Další</a></td></tr><tr><td width="40%" 
align="left" valign="top">Práce s maticemi </td><td width="20%" align="center"><a accesskey="h" 
href="index.html">Domů</a></td><td width="40%" align="right" valign="top"> 
Kombinatorika</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s10.html b/help/cs/html/ch11s10.html
index d8bde09..727e943 100644
--- a/help/cs/html/ch11s10.html
+++ b/help/cs/html/ch11s10.html
@@ -1,56 +1,9 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Kombinatorika</title><meta name="generator" content="DocBook XSL Stylesheets 
V1.79.1"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" 
href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" href="ch11s09.html" title="Lineární 
algebra"><link rel="next" href="ch11s11.html" title="Diferenciální/integrální počet"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table 
width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kombinatorika</th></tr><tr><td 
width="20%" align="left"><a accesskey="p" href="ch11s09.html">Předcházející</a> </td><th width="60%" 
align="center">Kapitola 11. Seznam funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s11.html">Další</a></td></tr></table><hr></div><div class="sect1"><div class="title
 page"><div><div><h2 class="title" style="clear: both"><a 
name="genius-gel-function-list-combinatorics"></a>Kombinatorika</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-Catalan"></a>Catalan</span></dt><dd><pre class="synopsis">Catalan (n)</pre><p>Získat <code 
class="varname">n</code>-té Catalanovo číslo.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/CatalanNumbers"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="http://cs.wikipedia.org/wiki/Catalanova_%C4%8D%C3%ADsla"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Combinations"></a>Combinations</span></dt><dd><pre class="synopsis">Combinations 
(k,n)</pre><p>Získat jako vektor vektorů všechny kombinace k-té třídy z prvků 1 až n. (Viz také <a 
class="link" href="ch11s10.html#gel-function-NextCombination">NextCombination</a>)</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Combination"; target="_top">Wikipedia</a> for 
more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-DoubleFactorial"></a>DoubleFactorial</span></dt><dd><pre class="synopsis">DoubleFactorial 
(n)</pre><p>Dvojitý faktoriál: <strong class="userinput"><code>n(n-2)(n-4)…</code></strong></p><p>Více 
informací najdete v encyklopedii <a class="ulink" href="http://planetmath.org/DoubleFactorial"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Factorial"></a>Factorial</span></dt><dd><pre class="synopsis">Factorial 
(n)</pre><p>Faktoriál: <strong class="userinput"><code>n(n-1)(n-2)…</code></strong></p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="http://planetmath.org/Factorial"; target="_top">Planetmath</a> 
(text je v angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/Faktori%C3%A1l"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-FallingFactorial"></a>FallingFactorial</span></dt><dd><pre c
 lass="synopsis">FallingFactorial (n,k)</pre><p>Klesající faktoriál: <strong class="userinput"><code>(n)_k = 
n(n-1)…(n-(k-1))</code></strong></p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/FallingFactorial"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Fibonacci"></a>Fibonacci</span></dt><dd><pre class="synopsis">Fibonacci 
(x)</pre><p>Alternativní názvy: <code class="function">fib</code></p><p>Vypočítat <code 
class="varname">n</code>-té Fibonacciho číslo. Tj. číslo definované rekurzivně jako <strong 
class="userinput"><code>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</code></strong> a <strong 
class="userinput"><code>Fibonacci(1) = Fibonacci(2) = 1</code></strong>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fibonacci_number"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/FibonacciSequence"; target="_top">Planetmath</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/FibonacciNumber.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-FrobeniusNumber"></a>FrobeniusNumber</span></dt><dd><pre class="synopsis">FrobeniusNumber 
(v,arg...)</pre><p>
-           Calculate the Frobenius number.  That is calculate largest
-           number that cannot be given as a non-negative integer linear
-           combination of a given vector of non-negative integers.
-           The vector can be given as separate numbers or a single vector.
-           All the numbers given should have GCD of 1.
-         </p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Coin_problem"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/FrobeniusNumber.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-GaloisMatrix"></a>GaloisMatrix</span></dt><dd><pre class="synopsis">GaloisMatrix 
(kombinacni_pravidlo)</pre><p>Galoisova matice daná lineárním kombinačním pravidlem 
(a_1*x_1+…+a_n*x_n=x_(n+1)).</p></dd><dt><span class="term"><a 
name="gel-function-GreedyAlgorithm"></a>GreedyAlgorithm</span></dt><dd><pre class="synopsis">GreedyAlgorithm 
(n,v)</pre><p>Najít takový vektor <code class="varname">c</code> nezáporných celých čísel, že skalární součin 
s <code class="varname">v</code> je roven <code class="varname">n</code>. Když to není možné, vrátí <code 
class="constant">null</code>. Vektor <code class="varname">v</code> by měl být předán seřazený ve vzestupném 
pořadí a měl by se skládat z nezáporných celých čísel.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Greedy_algorithm"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/GreedyAlgorithm.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-HarmonicNumber"></a>HarmonicNumber</span></dt><dd><pre class="synopsis">HarmonicNumber 
(n,r)</pre><p>Alternativní názvy: <code class="function">HarmonicH</code></p><p>Harmonic Number, the <code 
class="varname">n</code>th harmonic number of order <code class="varname">r</code>.
-               That is, it is the sum of <strong class="userinput"><code>1/k^r</code></strong> for <code 
class="varname">k</code>
-               from 1 to n.  Equivalent to <strong class="userinput"><code>sum k = 1 to n do 
1/k^r</code></strong>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Harmonic_number"; target="_top">Wikipedia</a> 
for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-Hofstadter"></a>Hofstadter</span></dt><dd><pre class="synopsis">Hofstadter 
(n)</pre><p>Hofstadterova funkce q(n) definovaná jako q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2))</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Hofstadter_sequence"; 
target="_top">Wikipedia</a> for more information.
-           The sequence is <a class="ulink" href="https://oeis.org/A005185"; target="_top">A005185 in 
OEIS</a>.
-         </p></dd><dt><span class="term"><a 
name="gel-function-LinearRecursiveSequence"></a>LinearRecursiveSequence</span></dt><dd><pre 
class="synopsis">LinearRecursiveSequence (pocatecni_hodnoty,kombinacni_pravidlo,n)</pre><p>Spočítat lineární 
rekurzivní posloupnost pomocí Galoisova krokování.</p></dd><dt><span class="term"><a 
name="gel-function-Multinomial"></a>Multinomial</span></dt><dd><pre class="synopsis">Multinomial 
(v,arg...)</pre><p>Spočítat multinomické koeficienty. Přebírá vektor <code class="varname">k</code> 
nezáporných celých čísel a spočítá multinomický koeficient. To odpovídá koeficientu v homogenním polynomu v 
<code class="varname">k</code> proměnných s odpovídajícími mocninami.</p><p>Vzorec pro <strong 
class="userinput"><code>Multinomial(a,b,c)</code></strong> se dá napsat jako: </p><pre 
class="programlisting">(a+b+c)! / (a!b!c!)
-</pre><p> Jinými slovy, pokud máme jen dva prvky, pak <strong 
class="userinput"><code>Multinomial(a,b)</code></strong> je to stejné, jako <strong 
class="userinput"><code>Binomial(a+b,a)</code></strong> nebo <strong 
class="userinput"><code>Binomial(a+b,b)</code></strong>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Multinomial_theorem"; 
target="_top">Wikipedia</a>,
-           <a class="ulink" href="http://planetmath.org/MultinomialTheorem"; target="_top">Planetmath</a>, or
-           <a class="ulink" href="http://mathworld.wolfram.com/MultinomialCoefficient.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-NextCombination"></a>NextCombination</span></dt><dd><pre class="synopsis">NextCombination 
(v,n)</pre><p>Získat kombinaci, která by následovala po kombinaci <code class="varname">v</code> v pořadí 
kombinací, první kombinací by měla být <strong class="userinput"><code>[1:k]</code></strong>. To je užitečné, 
pokud máte hodně kombinací, které chcete projít a nechcete plýtvat pamětí na uložení všech.</p><p>S funkcí 
Combinations byste normálně napsali smyčku jako: </p><pre class="screen"><strong class="userinput"><code>for 
n in Combinations (4,6) do (
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Kombinatorika</title><meta name="generator" content="DocBook XSL Stylesheets 
V1.79.1"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" 
href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" href="ch11s09.html" title="Lineární 
algebra"><link rel="next" href="ch11s11.html" title="Diferenciální/integrální počet"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table 
width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kombinatorika</th></tr><tr><td 
width="20%" align="left"><a accesskey="p" href="ch11s09.html">Předcházející</a> </td><th width="60%" 
align="center">Kapitola 11. Seznam funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s11.html">Další</a></td></tr></table><hr></div><div class="sect1"><div class="title
 page"><div><div><h2 class="title" style="clear: both"><a 
name="genius-gel-function-list-combinatorics"></a>Kombinatorika</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-Catalan"></a>Catalan</span></dt><dd><pre class="synopsis">Catalan (n)</pre><p>Získat <code 
class="varname">n</code>-té Catalanovo číslo.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/CatalanNumbers"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="http://cs.wikipedia.org/wiki/Catalanova_%C4%8D%C3%ADsla"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Combinations"></a>Combinations</span></dt><dd><pre class="synopsis">Combinations 
(k,n)</pre><p>Získat jako vektor vektorů všechny kombinace k-té třídy z prvků 1 až n. (Viz také <a 
class="link" href="ch11s10.html#gel-function-NextCombination">NextCombination</a>)</p><p>Ví
 ce informací najdete v encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Kombinace"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-DoubleFactorial"></a>DoubleFactorial</span></dt><dd><pre class="synopsis">DoubleFactorial 
(n)</pre><p>Dvojitý faktoriál: <strong class="userinput"><code>n(n-2)(n-4)…</code></strong></p><p>Více 
informací najdete v encyklopedii <a class="ulink" href="http://planetmath.org/DoubleFactorial"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Factorial"></a>Factorial</span></dt><dd><pre class="synopsis">Factorial 
(n)</pre><p>Faktoriál: <strong class="userinput"><code>n(n-1)(n-2)…</code></strong></p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="http://planetmath.org/Factorial"; target="_top">Planetmath</a> 
(text je v angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/Faktori%C3%A1l"; target="_top">Wi
 kipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-FallingFactorial"></a>FallingFactorial</span></dt><dd><pre 
class="synopsis">FallingFactorial (n,k)</pre><p>Klesající faktoriál: <strong class="userinput"><code>(n)_k = 
n(n-1)…(n-(k-1))</code></strong></p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/FallingFactorial"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Fibonacci"></a>Fibonacci</span></dt><dd><pre class="synopsis">Fibonacci 
(x)</pre><p>Alternativní názvy: <code class="function">fib</code></p><p>Vypočítat <code 
class="varname">n</code>-té Fibonacciho číslo. Tj. číslo definované rekurzivně jako <strong 
class="userinput"><code>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</code></strong> a <strong 
class="userinput"><code>Fibonacci(1) = Fibonacci(2) = 1</code></strong>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" h
 ref="http://planetmath.org/FibonacciSequence"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/FibonacciNumber.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Fibonacciho_posloupnost"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-FrobeniusNumber"></a>FrobeniusNumber</span></dt><dd><pre class="synopsis">FrobeniusNumber 
(v,arg...)</pre><p>Spočítat Frobeniusovo číslo. Tzn. spočítat největší číslo, které nemůže být dáno jako 
lineární kombinace celých nezáporných čísel zadaných jako vektor nezáporných celých čísel. Vektor může být 
zadán jako samostatná čísla nebo jeden vektor. Všechna zadaná čísla by měla mít největšího společného 
dělitele 1.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/Coin_problem"; target="_top">Wikip
 edia</a> (text je v angličtině) a <a class="ulink" href="http://mathworld.wolfram.com/FrobeniusNumber.html"; 
target="_top">Mathworld</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-GaloisMatrix"></a>GaloisMatrix</span></dt><dd><pre class="synopsis">GaloisMatrix 
(kombinacni_pravidlo)</pre><p>Galoisova matice daná lineárním kombinačním pravidlem 
(a_1*x_1+…+a_n*x_n=x_(n+1)).</p></dd><dt><span class="term"><a 
name="gel-function-GreedyAlgorithm"></a>GreedyAlgorithm</span></dt><dd><pre class="synopsis">GreedyAlgorithm 
(n,v)</pre><p>Najít takový vektor <code class="varname">c</code> nezáporných celých čísel, že skalární součin 
s <code class="varname">v</code> je roven <code class="varname">n</code>. Když to není možné, vrátí <code 
class="constant">null</code>. Vektor <code class="varname">v</code> by měl být předán seřazený ve vzestupném 
pořadí a měl by se skládat z nezáporných celých čísel.</p><p>Více inf
 ormací najdete v encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/GreedyAlgorithm.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Hladov%C3%BD_algoritmus"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-HarmonicNumber"></a>HarmonicNumber</span></dt><dd><pre 
class="synopsis">HarmonicNumber (n,r)</pre><p>Alternativní názvy: <code 
class="function">HarmonicH</code></p><p>Harmonické číslo, <code class="varname">n</code>-té harmonické číslo 
řádu <code class="varname">r</code>. Jedná se o součet <strong class="userinput"><code>1/k^r</code></strong> 
pro <code class="varname">k</code> od 1 do n. Je to to stejné jako <strong class="userinput"><code>sum k = 1 
to n do 1/k^r</code></strong>.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Harmonic_number"; target="_top">Wikipedia</a> (text je v angličtině
 ).</p></dd><dt><span class="term"><a name="gel-function-Hofstadter"></a>Hofstadter</span></dt><dd><pre 
class="synopsis">Hofstadter (n)</pre><p>Hofstadterova funkce q(n) definovaná jako q(1)=1, q(2)=1, 
q(n)=q(n-q(n-1))+q(n-q(n-2))</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Hofstadter_sequence"; target="_top">Wikipedia</a> (text je v angličtině). 
Posloupnost je <a class="ulink" href="https://oeis.org/A005185"; target="_top">A005185 podle encyklopedie 
OEIS</a>.</p></dd><dt><span class="term"><a 
name="gel-function-LinearRecursiveSequence"></a>LinearRecursiveSequence</span></dt><dd><pre 
class="synopsis">LinearRecursiveSequence (pocatecni_hodnoty,kombinacni_pravidlo,n)</pre><p>Spočítat lineární 
rekurzivní posloupnost pomocí Galoisova krokování.</p></dd><dt><span class="term"><a 
name="gel-function-Multinomial"></a>Multinomial</span></dt><dd><pre class="synopsis">Multinomial 
(v,arg...)</pre><p>Spočítat multinomické 
 koeficienty. Přebírá vektor <code class="varname">k</code> nezáporných celých čísel a spočítá multinomický 
koeficient. To odpovídá koeficientu v homogenním polynomu v <code class="varname">k</code> proměnných s 
odpovídajícími mocninami.</p><p>Vzorec pro <strong class="userinput"><code>Multinomial(a,b,c)</code></strong> 
se dá napsat jako: </p><pre class="programlisting">(a+b+c)! / (a!b!c!)
+</pre><p> Jinými slovy, pokud máme jen dva prvky, pak <strong 
class="userinput"><code>Multinomial(a,b)</code></strong> je to stejné, jako <strong 
class="userinput"><code>Binomial(a+b,a)</code></strong> nebo <strong 
class="userinput"><code>Binomial(a+b,b)</code></strong>.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/MultinomialTheorem"; target="_top">Planetmath</a> (text je v 
angličtině), <a class="ulink" href="http://mathworld.wolfram.com/MultinomialCoefficient.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Multinomick%C3%A1_v%C4%9Bta"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-NextCombination"></a>NextCombination</span></dt><dd><pre class="synopsis">NextCombination 
(v,n)</pre><p>Získat kombinaci, která by následovala po kombinaci <code class="varname">v</code> v pořadí 
kombinací, první kombinací by měla být 
 <strong class="userinput"><code>[1:k]</code></strong>. To je užitečné, pokud máte hodně kombinací, které 
chcete projít a nechcete plýtvat pamětí na uložení všech.</p><p>S funkcí Combinations byste normálně napsali 
smyčku jako: </p><pre class="screen"><strong class="userinput"><code>for n in Combinations (4,6) do (
   NejakaFunkce (n)
 );</code></strong>
 </pre><p> Ale s funkcí NextCombination byste napsali něco takového: </p><pre class="screen"><strong 
class="userinput"><code>n:=[1:4];
 do (
   NejakaFunkce (n)
 ) while not IsNull(n:=NextCombination(n,6));</code></strong>
-</pre><p> Viz <a class="link" href="ch11s10.html#gel-function-Combinations">Combinations</a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Combination"; target="_top">Wikipedia</a> for 
more information.
-         </p></dd><dt><span class="term"><a name="gel-function-Pascal"></a>Pascal</span></dt><dd><pre 
class="synopsis">Pascal (i)</pre><p>Získat Pascalův trojúhelník v podobě matice. Vrátí dolní trojúhelníkovou 
matici <code class="varname">i</code>+1 krát <code class="varname">i</code>+1, která je Pascalovým 
trojúhelníkem po <code class="varname">i</code> iteracích.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/PascalsTriangle"; target="_top">Planetmath</a> (text je v 
angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wiki/Pascal%C5%AFv_troj%C3%BAheln%C3%ADk"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Permutations"></a>Permutations</span></dt><dd><pre class="synopsis">Permutations 
(k,n)</pre><p>Získat jako vektor vektorů všechny variace <code class="varname">k</code>-té třídy z prvků 1 až 
<code class="varname">n</code> prvků, případně permutace pro <code cl
 ass="varname">k</code>=<code class="varname">n</code>.</p><p>
-           See
-           <a class="ulink" href="http://mathworld.wolfram.com/Permutation.html"; target="_top">Mathworld</a> 
or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Permutation"; target="_top">Wikipedia</a> for 
more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-RisingFactorial"></a>RisingFactorial</span></dt><dd><pre class="synopsis">RisingFactorial 
(n,k)</pre><p>Alternativní názvy: <code class="function">Pochhammer</code></p><p>(Pochhammerův) stoupacící 
faktoriál: (n)_k = n(n+1)…(n+(k-1))</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/RisingFactorial"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-StirlingNumberFirst"></a>StirlingNumberFirst</span></dt><dd><pre 
class="synopsis">StirlingNumberFirst (n,m)</pre><p>Alternativní názvy: <code 
class="function">StirlingS1</code></p><p>Stirlingovo číslo prvního druhu.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/StirlingNumbersOfTheFirstKind"; 
target="_top">Planetmath</a> (text je v angličtině) nebo <a class="ulink" 
href="http://mathworld.wolfram.com/StirlingNumberofth
 eFirstKind.html" target="_top">Mathworld</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-StirlingNumberSecond"></a>StirlingNumberSecond</span></dt><dd><pre 
class="synopsis">StirlingNumberSecond (n,m)</pre><p>Alternativní názvy: <code 
class="function">StirlingS2</code></p><p>Stirlingovo číslo druhého druhu.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/StirlingNumbersSecondKind"; 
target="_top">Planetmath</a> (text je v angličtině) nebo <a class="ulink" 
href="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html"; target="_top">Mathworld</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Subfactorial"></a>Subfactorial</span></dt><dd><pre class="synopsis">Subfactorial 
(n)</pre><p>Subfaktoriál: n! krát suma_{k=0}^n (-1)^k/k!</p></dd><dt><span class="term"><a 
name="gel-function-Triangular"></a>Triangular</span></dt><dd><pre class="synopsis">Triangula
 r (n)</pre><p>Spočítat <code class="varname">n</code>-té trojúhelníkové číslo.</p><p>Více informací najdete 
v encyklopediích <a class="ulink" href="http://planetmath.org/TriangularNumbers"; target="_top">Planetmath</a> 
(text je v angličtině) a <a class="ulink" 
href="http://cs.wikipedia.org/wiki/Troj%C3%BAheln%C3%ADkov%C3%A9_%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-nCr"></a>nCr</span></dt><dd><pre class="synopsis">nCr (n,r)</pre><p>Alternativní názvy: 
<code class="function">Binomial</code></p><p>Spočítat kombinace, tj. kombinační číslo. <code 
class="varname">n</code> může být libovolné reálné číslo.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://planetmath.org/Choose"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="http://cs.wikipedia.org/wiki/Kombina%C4%8Dn%C3%AD_%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span cl
 ass="term"><a name="gel-function-nPr"></a>nPr</span></dt><dd><pre class="synopsis">nPr 
(n,k)</pre><p>Spočítat počet variací <code class="varname">k</code>-té třídy z prvků 1 až <code 
class="varname">n</code>, respektive počet permutací při <code class="varname">k</code> rovno <code 
class="varname">n</code>.</p><p>
-           See
-           <a class="ulink" href="http://mathworld.wolfram.com/Permutation.html"; target="_top">Mathworld</a> 
or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Permutation"; target="_top">Wikipedia</a> for 
more information.
-         </p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s09.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s11.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Lineární 
algebra </td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Diferenciální/integrální počet </td></tr></table></div></body></html>
+</pre><p> Viz <a class="link" href="ch11s10.html#gel-function-Combinations">Combinations</a>.</p><p>Více 
informací najdete v encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Kombinace"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Pascal"></a>Pascal</span></dt><dd><pre class="synopsis">Pascal (i)</pre><p>Získat Pascalův 
trojúhelník v podobě matice. Vrátí dolní trojúhelníkovou matici <code class="varname">i</code>+1 krát <code 
class="varname">i</code>+1, která je Pascalovým trojúhelníkem po <code class="varname">i</code> 
iteracích.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/PascalsTriangle"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="http://cs.wikipedia.org/wiki/Pascal%C5%AFv_troj%C3%BAheln%C3%ADk"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Permutations"></a>Permutations</span></dt><
 dd><pre class="synopsis">Permutations (k,n)</pre><p>Získat jako vektor vektorů všechny variace <code 
class="varname">k</code>-té třídy z prvků 1 až <code class="varname">n</code> prvků, případně permutace pro 
<code class="varname">k</code>=<code class="varname">n</code>.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="http://mathworld.wolfram.com/Permutation.html"; target="_top">Mathworld</a> (text je v 
angličtině) nebo <a class="ulink" href="https://cs.wikipedia.org/wiki/Permutace"; target="_top">Wikipedia</a> 
(permutace) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Variace_%28kombinatorika%29"; 
target="_top">Wikipedia</a> (variace).</p></dd><dt><span class="term"><a 
name="gel-function-RisingFactorial"></a>RisingFactorial</span></dt><dd><pre class="synopsis">RisingFactorial 
(n,k)</pre><p>Alternativní názvy: <code class="function">Pochhammer</code></p><p>(Pochhammerův) stoupacící 
faktoriál: (n)_k = n(n+1)…(n+(k-1))</p><p>V
 íce informací najdete v encyklopedii <a class="ulink" href="http://planetmath.org/RisingFactorial"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-StirlingNumberFirst"></a>StirlingNumberFirst</span></dt><dd><pre 
class="synopsis">StirlingNumberFirst (n,m)</pre><p>Alternativní názvy: <code 
class="function">StirlingS1</code></p><p>Stirlingovo číslo prvního druhu.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/StirlingNumbersOfTheFirstKind"; 
target="_top">Planetmath</a> (text je v angličtině) nebo <a class="ulink" 
href="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html"; target="_top">Mathworld</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-StirlingNumberSecond"></a>StirlingNumberSecond</span></dt><dd><pre 
class="synopsis">StirlingNumberSecond (n,m)</pre><p>Alternativní názvy: <code 
class="function">StirlingS2</code>
 </p><p>Stirlingovo číslo druhého druhu.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/StirlingNumbersSecondKind"; target="_top">Planetmath</a> (text je v angličtině) 
nebo <a class="ulink" href="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html"; 
target="_top">Mathworld</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Subfactorial"></a>Subfactorial</span></dt><dd><pre class="synopsis">Subfactorial 
(n)</pre><p>Subfaktoriál: n! krát suma_{k=0}^n (-1)^k/k!</p></dd><dt><span class="term"><a 
name="gel-function-Triangular"></a>Triangular</span></dt><dd><pre class="synopsis">Triangular 
(n)</pre><p>Spočítat <code class="varname">n</code>-té trojúhelníkové číslo.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/TriangularNumbers"; target="_top">Planetmath</a> 
(text je v angličtině) a <a class="ulink" href="http://cs.wikipedia.org/wi
 ki/Troj%C3%BAheln%C3%ADkov%C3%A9_%C4%8D%C3%ADslo" target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-nCr"></a>nCr</span></dt><dd><pre class="synopsis">nCr 
(n,r)</pre><p>Alternativní názvy: <code class="function">Binomial</code></p><p>Spočítat kombinace, tj. 
kombinační číslo. <code class="varname">n</code> může být libovolné reálné číslo.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="http://planetmath.org/Choose"; target="_top">Planetmath</a> 
(text je v angličtině) a <a class="ulink" 
href="http://cs.wikipedia.org/wiki/Kombina%C4%8Dn%C3%AD_%C4%8D%C3%ADslo"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-nPr"></a>nPr</span></dt><dd><pre class="synopsis">nPr (n,k)</pre><p>Spočítat počet variací 
<code class="varname">k</code>-té třídy z prvků 1 až <code class="varname">n</code>, respektive počet 
permutací při <code class="varname">k</code> rovno <code class="var
 name">n</code>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/Permutation.html"; target="_top">Mathworld</a> (text je v angličtině) nebo 
<a class="ulink" href="https://cs.wikipedia.org/wiki/Permutace"; target="_top">Wikipedia</a> (permutace) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Variace_%28kombinatorika%29"; target="_top">Wikipedia</a> 
(variace).</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s09.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s11.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Lineární 
algebra </td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Difer
 enciální/integrální počet </td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s11.html b/help/cs/html/ch11s11.html
index 9b3cb07..f32a3ee 100644
--- a/help/cs/html/ch11s11.html
+++ b/help/cs/html/ch11s11.html
@@ -1,29 +1 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Diferenciální/integrální počet</title><meta name="generator" content="DocBook XSL 
Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" 
href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" href="ch11s10.html" 
title="Kombinatorika"><link rel="next" href="ch11s12.html" title="Funkce"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Diferenciální/integrální počet 
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch11s10.html">Předcházející</a> </td><th 
width="60%" align="center">Kapitola 11. Seznam funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s12.html">Další</a></td></tr></table><hr></div><div class="sect1"><div c
 lass="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="genius-gel-function-list-calculus"></a>Diferenciální/integrální počet </h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-CompositeSimpsonsRule"></a>CompositeSimpsonsRule</span></dt><dd><pre 
class="synopsis">CompositeSimpsonsRule (f,a,b,n)</pre><p>Integrovat f složeným Simpsonovým pravidlem na 
intervalu [a,b] s n podintervaly s chybou podle max(f'''')*h^4*(b-a)/180. Upozorňujeme, že n by mělo být 
sudé.</p><p>Více informací najdete v encyklopedii <a class="ulink" href="http://planetmath.org/SimpsonsRule"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-CompositeSimpsonsRuleTolerance"></a>CompositeSimpsonsRuleTolerance</span></dt><dd><pre 
class="synopsis">CompositeSimpsonsRuleTolerance (f,a,b,omezeni_ctvrte_derivace,tolerance)</pre><p>Integrovat 
f složeným Simpson
 ovým pravidlem na intervalu [a,b] s počtem kroků počítaným podle omezení čtvrté derivace a podle požadované 
tolerance.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/SimpsonsRule"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Derivative"></a>Derivative</span></dt><dd><pre class="synopsis">Derivative 
(f,x0)</pre><p>Zkusit spočítat derivaci, nejprve symbolicky a pak numericky.</p><p>Více informací najdete v 
encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Derivace"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-EvenPeriodicExtension"></a>EvenPeriodicExtension</span></dt><dd><pre 
class="synopsis">EvenPeriodicExtension (f,L)</pre><p>Vrátit funkci, která je sudým periodickým rozšířením 
<code class="function">f</code> s poloviční periodou <code class="varname">L</code>. Tj. funkce definovaná na 
inter
 valu <strong class="userinput"><code>[0,L]</code></strong> rozšířená, aby byla sudá na <strong 
class="userinput"><code>[-L,L]</code></strong> a pak rozšířená, aby byla periodická s periodou <strong 
class="userinput"><code>2*L</code></strong>.</p><p>Viz také <a class="link" 
href="ch11s11.html#gel-function-OddPeriodicExtension">OddPeriodicExtension</a> a <a class="link" 
href="ch11s11.html#gel-function-PeriodicExtension">PeriodicExtension</a>.</p><p>Verze 1.0.7 a 
novější.</p></dd><dt><span class="term"><a 
name="gel-function-FourierSeriesFunction"></a>FourierSeriesFunction</span></dt><dd><pre 
class="synopsis">FourierSeriesFunction (a,b,L)</pre><p>Vrátit funkci, která je Fourierovu řadou s koeficienty 
danými vektory <code class="varname">a</code> (sinové) a <code class="varname">b</code> (kosinové). Vezměte 
na vědomí, že <strong class="userinput"><code>a@(1)</code></strong> je konstantní koeficient! To znamená, že 
<strong class="userinput"><code>a@(n)</
 code></strong> odkazuje na člen <strong class="userinput"><code>cos(x*(n-1)*pi/L)</code></strong>, zatímco 
<strong class="userinput"><code>b@(n)</code></strong> odkazuje na člen <strong 
class="userinput"><code>sin(x*n*pi/L)</code></strong>. Buďto <code class="varname">a</code> nebo <code 
class="varname">b</code> může být <code class="constant">null</code>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fourier_series"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://mathworld.wolfram.com/FourierSeries.html"; 
target="_top">Mathworld</a> for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-InfiniteProduct"></a>InfiniteProduct</span></dt><dd><pre class="synopsis">InfiniteProduct 
(fce,start,prirustek)</pre><p>Zkusit spočítat nekonečný součin funkce s jedním parametrem.</p></dd><dt><span 
class="term"><a name="gel-function-InfiniteProduct2"></a>InfiniteProduct2</span></dt><dd><pre 
class="synopsis">InfiniteProduct2 (fce,arg,start,prirustek)</pre><p>Zkusit spočítat nekonečný součin funkce 
se dvěma parametry s fce (arg,n).</p></dd><dt><span class="term"><a 
name="gel-function-InfiniteSum"></a>InfiniteSum</span></dt><dd><pre class="synopsis">InfiniteSum 
(fce,start,prirustek)</pre><p>Zkusit spočítat nekonečný součet funkce s jedním parametrem.</p></dd><dt><span 
class="term"><a name="gel-function-InfiniteSum2"></a>InfiniteSum2</span></dt><dd><pre 
class="synopsis">InfiniteSum2 (fce,arg,start,prirustek)</pre><p>Zkusit spočítat nekonečný součet funkce se 
dvěma parametry s fce (arg,n).</p
</dd><dt><span class="term"><a name="gel-function-IsContinuous"></a>IsContinuous</span></dt><dd><pre 
class="synopsis">IsContinuous (f,x0)</pre><p>Zkusit zjistit pomocí výpočtu limity v x0, jestli je funkce 
reálné proměnné v tomto bodě spojitá.</p></dd><dt><span class="term"><a 
name="gel-function-IsDifferentiable"></a>IsDifferentiable</span></dt><dd><pre 
class="synopsis">IsDifferentiable (f,x0)</pre><p>Otestovat na diferencovatelnost aproximací limit zleva a 
zprava a porovnáním.</p></dd><dt><span class="term"><a 
name="gel-function-LeftLimit"></a>LeftLimit</span></dt><dd><pre class="synopsis">LeftLimit 
(f,x0)</pre><p>Spočítat limitu zleva funkce reálné proměnné v x0.</p></dd><dt><span class="term"><a 
name="gel-function-Limit"></a>Limit</span></dt><dd><pre class="synopsis">Limit (f,x0)</pre><p>Spočítat 
limitu funkce reálné proměnné v x0. Zkusí vypočítat limitu zleva i zprava.</p></dd><dt><span 
class="term"><a name="gel-function-MidpointRule"></a>Midp
 ointRule</span></dt><dd><pre class="synopsis">MidpointRule (f,a,b,n)</pre><p>Integrovat trojúhelníkovou 
metodou (pravidlem prostředního bodu).</p></dd><dt><span class="term"><a 
name="gel-function-NumericalDerivative"></a>NumericalDerivative</span></dt><dd><pre 
class="synopsis">NumericalDerivative (f,x0)</pre><p>Alternativní názvy: <code 
class="function">NDerivative</code></p><p>Zkusit vypočítat numerickou derivaci.</p><p>Více informací najdete 
v encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Derivace"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierSeriesCoefficients"></a>NumericalFourierSeriesCoefficients</span></dt><dd><pre
 class="synopsis">NumericalFourierSeriesCoefficients (f,L,N)</pre><p>Vrátit vektor vektorů <strong 
class="userinput"><code>[a,b]</code></strong>, kde <code class="varname">a</code> jsou kosinové koeficienty a 
<code class="varname">b</code> sinové koeficienty Fourierovy řa
 dy funkce  <code class="function">f</code> s poloviční periodou <code class="varname">L</code> (tj. 
definovanou na <strong class="userinput"><code>[-L,L]</code></strong> a periodicky rozšířenou) s numericky 
spočítanými koeficienty do <code class="varname">N</code>-té harmonické. Koeficienty jsou spočítány 
numerickou integrací pomocí <a class="link" href="ch11s11.html#gel-function-NumericalIntegral"><code 
class="function">NumericalIntegral</code></a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fourier_series"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://mathworld.wolfram.com/FourierSeries.html"; 
target="_top">Mathworld</a> for more information.
-          </p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierSeriesFunction"></a>NumericalFourierSeriesFunction</span></dt><dd><pre 
class="synopsis">NumericalFourierSeriesFunction (f,L,N)</pre><p>Vrátit funkci, která je Fourierovou řadou 
funkce <code class="function">f</code> s poloviční periodou <code class="varname">L</code> (tj. definovanou 
na <strong class="userinput"><code>[-L,L]</code></strong> a periodicky rozšířenou) s numericky spočítanými 
koeficienty do <code class="varname">N</code>-té harmonické. Jde o čistě trigonometrickou řadu složenou ze 
sinů a kosinů. Koeficienty jsou spočítány numerickou integrací pomocí <a class="link" 
href="ch11s11.html#gel-function-NumericalIntegral"><code class="function">NumericalIntegral</code></a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fourier_series"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://mathworld.wolfram.com/FourierSeries.html"; 
target="_top">Mathworld</a> for more information.
-          </p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierCosineSeriesCoefficients"></a>NumericalFourierCosineSeriesCoefficients</span></dt><dd><pre
 class="synopsis">NumericalFourierCosineSeriesCoefficients (f,L,N)</pre><p>Vrátit vektor koeficientů kosinové 
Fourierovy řady funkce  <code class="function">f</code> s poloviční periodou <code class="varname">L</code>. 
To jest, vezmeme funkci <code class="function">f</code> definovanou na <strong 
class="userinput"><code>[0,L]</code></strong>, provedeme sudé periodické rozšíření a spočteme Fourierovu 
řadu, která má pouze kosinové členy. Řada je spočítána do <code class="varname">N</code>-té harmonické. 
Koeficienty jsou spočítány numerickou integrací pomocí <a class="link" 
href="ch11s11.html#gel-function-NumericalIntegral"><code class="function">NumericalIntegral</code></a>. 
Poznamenejme, že <strong class="userinput"><code>a@(1)</code></strong> je k
 onstantní koeficient! To znamená, že <strong class="userinput"><code>a@(n)</code></strong> odkazuje na člen 
<strong class="userinput"><code>cos(x*(n-1)*pi/L)</code></strong>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fourier_series"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://mathworld.wolfram.com/FourierCosineSeries.html"; 
target="_top">Mathworld</a> for more information.
-          </p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierCosineSeriesFunction"></a>NumericalFourierCosineSeriesFunction</span></dt><dd><pre
 class="synopsis">NumericalFourierCosineSeriesFunction (f,L,N)</pre><p>Vrátit funkci, která je kosinovou 
Fourierovu řadou funkce <code class="function">f</code> s poloviční periodou <code class="varname">L</code>. 
To jest, vezmeme funkci <code class="function">f</code> definovanou na <strong 
class="userinput"><code>[0,L]</code></strong>, provedeme sudé periodické rozšíření a spočteme Fourierovu 
řadu, která má pouze kosinové členy. Řada je spočítána do <code class="varname">N</code>-té harmonické. 
Koeficienty jsou spočítány numerickou integrací pomocí <a class="link" 
href="ch11s11.html#gel-function-NumericalIntegral"><code class="function">NumericalIntegral</code></a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fourier_series"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://mathworld.wolfram.com/FourierCosineSeries.html"; 
target="_top">Mathworld</a> for more information.
-          </p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierSineSeriesCoefficients"></a>NumericalFourierSineSeriesCoefficients</span></dt><dd><pre
 class="synopsis">NumericalFourierSineSeriesCoefficients (f,L,N)</pre><p>Vrátit vektor koeficientů sinové 
Fourierovy řady funkce  <code class="function">f</code> s poloviční periodou <code class="varname">L</code>. 
To jest, vezmeme funkci <code class="function">f</code> definovanou na <strong 
class="userinput"><code>[0,L]</code></strong>, provedeme liché periodické rozšíření a spočteme Fourierovu 
řadu, která má pouze sinové členy. Řada je spočítána do <code class="varname">N</code>-té harmonické. 
Koeficienty jsou spočítány numerickou integrací pomocí <a class="link" 
href="ch11s11.html#gel-function-NumericalIntegral"><code class="function">NumericalIntegral</code></a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fourier_series"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://mathworld.wolfram.com/FourierSineSeries.html"; 
target="_top">Mathworld</a> for more information.
-          </p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierSineSeriesFunction"></a>NumericalFourierSineSeriesFunction</span></dt><dd><pre
 class="synopsis">NumericalFourierSineSeriesFunction (f,L,N)</pre><p>Vrátit funkci, která je sinovou 
Fourierovu řadou funkce <code class="function">f</code> s poloviční periodou <code class="varname">L</code>. 
To jest, vezmeme funkci <code class="function">f</code> definovanou na <strong 
class="userinput"><code>[0,L]</code></strong>, provedeme liché periodické rozšíření a spočteme Fourierovu 
řadu, která má pouze sinové členy. Řada je spočítána do <code class="varname">N</code>-té harmonické. 
Koeficienty jsou spočítány numerickou integrací pomocí <a class="link" 
href="ch11s11.html#gel-function-NumericalIntegral"><code class="function">NumericalIntegral</code></a>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Fourier_series"; target="_top">Wikipedia</a> 
or
-           <a class="ulink" href="http://mathworld.wolfram.com/FourierSineSeries.html"; 
target="_top">Mathworld</a> for more information.
-          </p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalIntegral"></a>NumericalIntegral</span></dt><dd><pre 
class="synopsis">NumericalIntegral (f,a,b)</pre><p>Integrovat pravidlem nastaveným v 
NumericalIntegralFunction jako funkcí f od a do b pomocí kroků NumericalIntegralSteps.</p></dd><dt><span 
class="term"><a name="gel-function-NumericalLeftDerivative"></a>NumericalLeftDerivative</span></dt><dd><pre 
class="synopsis">NumericalLeftDerivative (f,x0)</pre><p>Zkusit vypočítat numerickou levou 
derivaci.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalLimitAtInfinity"></a>NumericalLimitAtInfinity</span></dt><dd><pre 
class="synopsis">NumericalLimitAtInfinity (_f,step_fun,tolerance,serie_pro_uspech,N)</pre><p>Pokusit se 
spočítat limitu f(step_fun(i)) pro i od 1 do N.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalRightDerivative"></a>NumericalRightDerivative</span></dt><dd><pre 
class="synopsis">N
 umericalRightDerivative (f,x0)</pre><p>Zkusit vypočítat numerickou pravou derivaci.</p></dd><dt><span 
class="term"><a name="gel-function-OddPeriodicExtension"></a>OddPeriodicExtension</span></dt><dd><pre 
class="synopsis">OddPeriodicExtension (f,L)</pre><p>Vrátit funkci, která je lichým periodickým rozšířením 
<code class="function">f</code> s poloviční periodou <code class="varname">L</code>. Tj. funkce definovaná na 
intervalu <strong class="userinput"><code>[0,L]</code></strong> rozšířená, aby byla lichá na <strong 
class="userinput"><code>[-L,L]</code></strong> a pak rozšířená, aby byla periodická s periodou <strong 
class="userinput"><code>2*L</code></strong>.</p><p>Viz také <a class="link" 
href="ch11s11.html#gel-function-EvenPeriodicExtension">EvenPeriodicExtension</a> a <a class="link" 
href="ch11s11.html#gel-function-PeriodicExtension">PeriodicExtension</a>.</p><p>Verze 1.0.7 a 
novější.</p></dd><dt><span class="term"><a name="gel-function-OneSide
 dFivePointFormula"></a>OneSidedFivePointFormula</span></dt><dd><pre 
class="synopsis">OneSidedFivePointFormula (f,x0,h)</pre><p>Spočítat jednostrannou derivaci pomocí 
pětibodového vzorce.</p></dd><dt><span class="term"><a 
name="gel-function-OneSidedThreePointFormula"></a>OneSidedThreePointFormula</span></dt><dd><pre 
class="synopsis">OneSidedThreePointFormula (f,x0,h)</pre><p>Spočítat jednostrannou derivaci pomocí 
tříbodového vzorce.</p></dd><dt><span class="term"><a 
name="gel-function-PeriodicExtension"></a>PeriodicExtension</span></dt><dd><pre 
class="synopsis">PeriodicExtension (f,a,b)</pre><p>Vrátit funkci, která je periodickým rozšířením <code 
class="function">f</code> definované na intervalu <strong class="userinput"><code>[a,b]</code></strong> a s 
periodou <strong class="userinput"><code>b-a</code></strong>.</p><p>Viz také <a class="link" 
href="ch11s11.html#gel-function-OddPeriodicExtension">OddPeriodicExtension</a> a <a class="link" 
href="ch11s11.htm
 l#gel-function-EvenPeriodicExtension">EvenPeriodicExtension</a>.</p><p>Verze 1.0.7 a 
novější.</p></dd><dt><span class="term"><a name="gel-function-RightLimit"></a>RightLimit</span></dt><dd><pre 
class="synopsis">RightLimit (f,x0)</pre><p>Spočítat limitu zprava funkce reálné proměnné v 
x0.</p></dd><dt><span class="term"><a 
name="gel-function-TwoSidedFivePointFormula"></a>TwoSidedFivePointFormula</span></dt><dd><pre 
class="synopsis">TwoSidedFivePointFormula (f,x0,h)</pre><p>Spočítat oboustrannou derivaci pomocí pětibodového 
vzorce.</p></dd><dt><span class="term"><a 
name="gel-function-TwoSidedThreePointFormula"></a>TwoSidedThreePointFormula</span></dt><dd><pre 
class="synopsis">TwoSidedThreePointFormula (f,x0,h)</pre><p>Spočítat oboustrannou derivaci pomocí tříbodového 
vzorce.</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s10.html">Předcházejíc�
 �</a> </td><td width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" 
align="right"> <a accesskey="n" href="ch11s12.html">Další</a></td></tr><tr><td width="40%" align="left" 
valign="top">Kombinatorika </td><td width="20%" align="center"><a accesskey="h" 
href="index.html">Domů</a></td><td width="40%" align="right" valign="top"> 
Funkce</td></tr></table></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Diferenciální/integrální počet</title><meta name="generator" content="DocBook XSL 
Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" 
href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" href="ch11s10.html" 
title="Kombinatorika"><link rel="next" href="ch11s12.html" title="Funkce"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Diferenciální/integrální počet 
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch11s10.html">Předcházející</a> </td><th 
width="60%" align="center">Kapitola 11. Seznam funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s12.html">Další</a></td></tr></table><hr></div><div class="sect1"><div c
 lass="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="genius-gel-function-list-calculus"></a>Diferenciální/integrální počet </h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-CompositeSimpsonsRule"></a>CompositeSimpsonsRule</span></dt><dd><pre 
class="synopsis">CompositeSimpsonsRule (f,a,b,n)</pre><p>Integrovat f složeným Simpsonovým pravidlem na 
intervalu [a,b] s n podintervaly s chybou podle max(f'''')*h^4*(b-a)/180. Upozorňujeme, že n by mělo být 
sudé.</p><p>Více informací najdete v encyklopedii <a class="ulink" href="http://planetmath.org/SimpsonsRule"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-CompositeSimpsonsRuleTolerance"></a>CompositeSimpsonsRuleTolerance</span></dt><dd><pre 
class="synopsis">CompositeSimpsonsRuleTolerance (f,a,b,omezeni_ctvrte_derivace,tolerance)</pre><p>Integrovat 
f složeným Simpson
 ovým pravidlem na intervalu [a,b] s počtem kroků počítaným podle omezení čtvrté derivace a podle požadované 
tolerance.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/SimpsonsRule"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-Derivative"></a>Derivative</span></dt><dd><pre class="synopsis">Derivative 
(f,x0)</pre><p>Zkusit spočítat derivaci, nejprve symbolicky a pak numericky.</p><p>Více informací najdete v 
encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Derivace"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-EvenPeriodicExtension"></a>EvenPeriodicExtension</span></dt><dd><pre 
class="synopsis">EvenPeriodicExtension (f,L)</pre><p>Vrátit funkci, která je sudým periodickým rozšířením 
<code class="function">f</code> s poloviční periodou <code class="varname">L</code>. Tj. funkce definovaná na 
inter
 valu <strong class="userinput"><code>[0,L]</code></strong> rozšířená, aby byla sudá na <strong 
class="userinput"><code>[-L,L]</code></strong> a pak rozšířená, aby byla periodická s periodou <strong 
class="userinput"><code>2*L</code></strong>.</p><p>Viz také <a class="link" 
href="ch11s11.html#gel-function-OddPeriodicExtension">OddPeriodicExtension</a> a <a class="link" 
href="ch11s11.html#gel-function-PeriodicExtension">PeriodicExtension</a>.</p><p>Verze 1.0.7 a 
novější.</p></dd><dt><span class="term"><a 
name="gel-function-FourierSeriesFunction"></a>FourierSeriesFunction</span></dt><dd><pre 
class="synopsis">FourierSeriesFunction (a,b,L)</pre><p>Vrátit funkci, která je Fourierovu řadou s koeficienty 
danými vektory <code class="varname">a</code> (sinové) a <code class="varname">b</code> (kosinové). Vezměte 
na vědomí, že <strong class="userinput"><code>a@(1)</code></strong> je konstantní koeficient! To znamená, že 
<strong class="userinput"><code>a@(n)</
 code></strong> odkazuje na člen <strong class="userinput"><code>cos(x*(n-1)*pi/L)</code></strong>, zatímco 
<strong class="userinput"><code>b@(n)</code></strong> odkazuje na člen <strong 
class="userinput"><code>sin(x*n*pi/L)</code></strong>. Buďto <code class="varname">a</code> nebo <code 
class="varname">b</code> může být <code class="constant">null</code>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/FourierSeries.html"; 
target="_top">Mathworld</a> (text je v angličtině) nebo <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-InfiniteProduct"></a>InfiniteProduct</span></dt><dd><pre 
class="synopsis">InfiniteProduct (fce,start,prirustek)</pre><p>Zkusit spočítat nekonečný součin funkce s 
jedním parametrem.</p></dd><dt><span class="term"><a 
name="gel-function-InfiniteProduct2"></a>InfiniteProduct2</span></
 dt><dd><pre class="synopsis">InfiniteProduct2 (fce,arg,start,prirustek)</pre><p>Zkusit spočítat nekonečný 
součin funkce se dvěma parametry s fce (arg,n).</p></dd><dt><span class="term"><a 
name="gel-function-InfiniteSum"></a>InfiniteSum</span></dt><dd><pre class="synopsis">InfiniteSum 
(fce,start,prirustek)</pre><p>Zkusit spočítat nekonečný součet funkce s jedním parametrem.</p></dd><dt><span 
class="term"><a name="gel-function-InfiniteSum2"></a>InfiniteSum2</span></dt><dd><pre 
class="synopsis">InfiniteSum2 (fce,arg,start,prirustek)</pre><p>Zkusit spočítat nekonečný součet funkce se 
dvěma parametry s fce (arg,n).</p></dd><dt><span class="term"><a 
name="gel-function-IsContinuous"></a>IsContinuous</span></dt><dd><pre class="synopsis">IsContinuous 
(f,x0)</pre><p>Zkusit zjistit pomocí výpočtu limity v x0, jestli je funkce reálné proměnné v tomto bodě 
spojitá.</p></dd><dt><span class="term"><a name="gel-function-IsDifferentiable"></a>IsDifferentiable</span
</dt><dd><pre class="synopsis">IsDifferentiable (f,x0)</pre><p>Otestovat na diferencovatelnost aproximací 
limit zleva a zprava a porovnáním.</p></dd><dt><span class="term"><a 
name="gel-function-LeftLimit"></a>LeftLimit</span></dt><dd><pre class="synopsis">LeftLimit 
(f,x0)</pre><p>Spočítat limitu zleva funkce reálné proměnné v x0.</p></dd><dt><span class="term"><a 
name="gel-function-Limit"></a>Limit</span></dt><dd><pre class="synopsis">Limit (f,x0)</pre><p>Spočítat 
limitu funkce reálné proměnné v x0. Zkusí vypočítat limitu zleva i zprava.</p></dd><dt><span 
class="term"><a name="gel-function-MidpointRule"></a>MidpointRule</span></dt><dd><pre 
class="synopsis">MidpointRule (f,a,b,n)</pre><p>Integrovat trojúhelníkovou metodou (pravidlem prostředního 
bodu).</p></dd><dt><span class="term"><a 
name="gel-function-NumericalDerivative"></a>NumericalDerivative</span></dt><dd><pre 
class="synopsis">NumericalDerivative (f,x0)</pre><p>Alternativní názvy: <code class=
 "function">NDerivative</code></p><p>Zkusit vypočítat numerickou derivaci.</p><p>Více informací najdete v 
encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Derivace"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierSeriesCoefficients"></a>NumericalFourierSeriesCoefficients</span></dt><dd><pre
 class="synopsis">NumericalFourierSeriesCoefficients (f,L,N)</pre><p>Vrátit vektor vektorů <strong 
class="userinput"><code>[a,b]</code></strong>, kde <code class="varname">a</code> jsou kosinové koeficienty a 
<code class="varname">b</code> sinové koeficienty Fourierovy řady funkce  <code class="function">f</code> s 
poloviční periodou <code class="varname">L</code> (tj. definovanou na <strong 
class="userinput"><code>[-L,L]</code></strong> a periodicky rozšířenou) s numericky spočítanými koeficienty 
do <code class="varname">N</code>-té harmonické. Koeficienty jsou spočítány numerickou integrací pomocí <
 a class="link" href="ch11s11.html#gel-function-NumericalIntegral"><code 
class="function">NumericalIntegral</code></a>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/FourierSeries.html"; target="_top">Mathworld</a> (text je v angličtině) 
nebo <a class="ulink" href="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada"; 
target="_top">Wikipedia</a>.</p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierSeriesFunction"></a>NumericalFourierSeriesFunction</span></dt><dd><pre 
class="synopsis">NumericalFourierSeriesFunction (f,L,N)</pre><p>Vrátit funkci, která je Fourierovou řadou 
funkce <code class="function">f</code> s poloviční periodou <code class="varname">L</code> (tj. definovanou 
na <strong class="userinput"><code>[-L,L]</code></strong> a periodicky rozšířenou) s numericky spočítanými 
koeficienty do <code class="varname">N</code>-té harmonické. Jde o čistě trigon
 ometrickou řadu složenou ze sinů a kosinů. Koeficienty jsou spočítány numerickou integrací pomocí <a 
class="link" href="ch11s11.html#gel-function-NumericalIntegral"><code 
class="function">NumericalIntegral</code></a>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/FourierSeries.html"; target="_top">Mathworld</a> (text je v angličtině) 
nebo <a class="ulink" href="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada"; 
target="_top">Wikipedia</a>.</p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierCosineSeriesCoefficients"></a>NumericalFourierCosineSeriesCoefficients</span></dt><dd><pre
 class="synopsis">NumericalFourierCosineSeriesCoefficients (f,L,N)</pre><p>Vrátit vektor koeficientů kosinové 
Fourierovy řady funkce  <code class="function">f</code> s poloviční periodou <code class="varname">L</code>. 
To jest, vezmeme funkci <code class="function">f</code> definov
 anou na <strong class="userinput"><code>[0,L]</code></strong>, provedeme sudé periodické rozšíření a 
spočteme Fourierovu řadu, která má pouze kosinové členy. Řada je spočítána do <code 
class="varname">N</code>-té harmonické. Koeficienty jsou spočítány numerickou integrací pomocí <a 
class="link" href="ch11s11.html#gel-function-NumericalIntegral"><code 
class="function">NumericalIntegral</code></a>. Poznamenejme, že <strong 
class="userinput"><code>a@(1)</code></strong> je konstantní koeficient! To znamená, že <strong 
class="userinput"><code>a@(n)</code></strong> odkazuje na člen <strong 
class="userinput"><code>cos(x*(n-1)*pi/L)</code></strong>.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="http://mathworld.wolfram.com/FourierCosineSeries.html"; target="_top">Mathworld</a> (text 
je v angličtině) nebo <a class="ulink" href="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada"; 
target="_top">Wikipedia</a>.</p><p>Verze 1.0.7 a no
 vější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierCosineSeriesFunction"></a>NumericalFourierCosineSeriesFunction</span></dt><dd><pre
 class="synopsis">NumericalFourierCosineSeriesFunction (f,L,N)</pre><p>Vrátit funkci, která je kosinovou 
Fourierovu řadou funkce <code class="function">f</code> s poloviční periodou <code class="varname">L</code>. 
To jest, vezmeme funkci <code class="function">f</code> definovanou na <strong 
class="userinput"><code>[0,L]</code></strong>, provedeme sudé periodické rozšíření a spočteme Fourierovu 
řadu, která má pouze kosinové členy. Řada je spočítána do <code class="varname">N</code>-té harmonické. 
Koeficienty jsou spočítány numerickou integrací pomocí <a class="link" 
href="ch11s11.html#gel-function-NumericalIntegral"><code 
class="function">NumericalIntegral</code></a>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/FourierCosineSeries.ht
 ml" target="_top">Mathworld</a> (text je v angličtině) nebo <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada"; target="_top">Wikipedia</a>.</p><p>Verze 1.0.7 a 
novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierSineSeriesCoefficients"></a>NumericalFourierSineSeriesCoefficients</span></dt><dd><pre
 class="synopsis">NumericalFourierSineSeriesCoefficients (f,L,N)</pre><p>Vrátit vektor koeficientů sinové 
Fourierovy řady funkce  <code class="function">f</code> s poloviční periodou <code class="varname">L</code>. 
To jest, vezmeme funkci <code class="function">f</code> definovanou na <strong 
class="userinput"><code>[0,L]</code></strong>, provedeme liché periodické rozšíření a spočteme Fourierovu 
řadu, která má pouze sinové členy. Řada je spočítána do <code class="varname">N</code>-té harmonické. 
Koeficienty jsou spočítány numerickou integrací pomocí <a class="link" href="ch11s11.html#gel-function-Nu
 mericalIntegral"><code class="function">NumericalIntegral</code></a>.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/FourierSineSeries.html"; 
target="_top">Mathworld</a> (text je v angličtině) nebo <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada"; target="_top">Wikipedia</a>.</p><p>Verze 1.0.7 a 
novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalFourierSineSeriesFunction"></a>NumericalFourierSineSeriesFunction</span></dt><dd><pre
 class="synopsis">NumericalFourierSineSeriesFunction (f,L,N)</pre><p>Vrátit funkci, která je sinovou 
Fourierovu řadou funkce <code class="function">f</code> s poloviční periodou <code class="varname">L</code>. 
To jest, vezmeme funkci <code class="function">f</code> definovanou na <strong 
class="userinput"><code>[0,L]</code></strong>, provedeme liché periodické rozšíření a spočteme Fourierovu 
řadu, která má pouze sinové členy. Řada 
 je spočítána do <code class="varname">N</code>-té harmonické. Koeficienty jsou spočítány numerickou 
integrací pomocí <a class="link" href="ch11s11.html#gel-function-NumericalIntegral"><code 
class="function">NumericalIntegral</code></a>.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/FourierSineSeries.html"; target="_top">Mathworld</a> (text je v angličtině) 
nebo <a class="ulink" href="https://cs.wikipedia.org/wiki/Fourierova_%C5%99ada"; 
target="_top">Wikipedia</a>.</p><p>Verze 1.0.7 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalIntegral"></a>NumericalIntegral</span></dt><dd><pre 
class="synopsis">NumericalIntegral (f,a,b)</pre><p>Integrovat pravidlem nastaveným v 
NumericalIntegralFunction jako funkcí f od a do b pomocí kroků NumericalIntegralSteps.</p></dd><dt><span 
class="term"><a name="gel-function-NumericalLeftDerivative"></a>NumericalLeftDerivative</span></dt><dd><pre 
class="
 synopsis">NumericalLeftDerivative (f,x0)</pre><p>Zkusit vypočítat numerickou levou 
derivaci.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalLimitAtInfinity"></a>NumericalLimitAtInfinity</span></dt><dd><pre 
class="synopsis">NumericalLimitAtInfinity (_f,step_fun,tolerance,serie_pro_uspech,N)</pre><p>Pokusit se 
spočítat limitu f(step_fun(i)) pro i od 1 do N.</p></dd><dt><span class="term"><a 
name="gel-function-NumericalRightDerivative"></a>NumericalRightDerivative</span></dt><dd><pre 
class="synopsis">NumericalRightDerivative (f,x0)</pre><p>Zkusit vypočítat numerickou pravou 
derivaci.</p></dd><dt><span class="term"><a 
name="gel-function-OddPeriodicExtension"></a>OddPeriodicExtension</span></dt><dd><pre 
class="synopsis">OddPeriodicExtension (f,L)</pre><p>Vrátit funkci, která je lichým periodickým rozšířením 
<code class="function">f</code> s poloviční periodou <code class="varname">L</code>. Tj. funkce definovaná na 
intervalu <strong class="userinpu
 t"><code>[0,L]</code></strong> rozšířená, aby byla lichá na <strong 
class="userinput"><code>[-L,L]</code></strong> a pak rozšířená, aby byla periodická s periodou <strong 
class="userinput"><code>2*L</code></strong>.</p><p>Viz také <a class="link" 
href="ch11s11.html#gel-function-EvenPeriodicExtension">EvenPeriodicExtension</a> a <a class="link" 
href="ch11s11.html#gel-function-PeriodicExtension">PeriodicExtension</a>.</p><p>Verze 1.0.7 a 
novější.</p></dd><dt><span class="term"><a 
name="gel-function-OneSidedFivePointFormula"></a>OneSidedFivePointFormula</span></dt><dd><pre 
class="synopsis">OneSidedFivePointFormula (f,x0,h)</pre><p>Spočítat jednostrannou derivaci pomocí 
pětibodového vzorce.</p></dd><dt><span class="term"><a 
name="gel-function-OneSidedThreePointFormula"></a>OneSidedThreePointFormula</span></dt><dd><pre 
class="synopsis">OneSidedThreePointFormula (f,x0,h)</pre><p>Spočítat jednostrannou derivaci pomocí 
tříbodového vzorce.</p></dd><dt><span c
 lass="term"><a name="gel-function-PeriodicExtension"></a>PeriodicExtension</span></dt><dd><pre 
class="synopsis">PeriodicExtension (f,a,b)</pre><p>Vrátit funkci, která je periodickým rozšířením <code 
class="function">f</code> definované na intervalu <strong class="userinput"><code>[a,b]</code></strong> a s 
periodou <strong class="userinput"><code>b-a</code></strong>.</p><p>Viz také <a class="link" 
href="ch11s11.html#gel-function-OddPeriodicExtension">OddPeriodicExtension</a> a <a class="link" 
href="ch11s11.html#gel-function-EvenPeriodicExtension">EvenPeriodicExtension</a>.</p><p>Verze 1.0.7 a 
novější.</p></dd><dt><span class="term"><a name="gel-function-RightLimit"></a>RightLimit</span></dt><dd><pre 
class="synopsis">RightLimit (f,x0)</pre><p>Spočítat limitu zprava funkce reálné proměnné v 
x0.</p></dd><dt><span class="term"><a 
name="gel-function-TwoSidedFivePointFormula"></a>TwoSidedFivePointFormula</span></dt><dd><pre 
class="synopsis">TwoSidedFivePointFormul
 a (f,x0,h)</pre><p>Spočítat oboustrannou derivaci pomocí pětibodového vzorce.</p></dd><dt><span 
class="term"><a 
name="gel-function-TwoSidedThreePointFormula"></a>TwoSidedThreePointFormula</span></dt><dd><pre 
class="synopsis">TwoSidedThreePointFormula (f,x0,h)</pre><p>Spočítat oboustrannou derivaci pomocí tříbodového 
vzorce.</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s10.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s12.html">Další</a></td></tr><tr><td width="40%" align="left" 
valign="top">Kombinatorika </td><td width="20%" align="center"><a accesskey="h" 
href="index.html">Domů</a></td><td width="40%" align="right" valign="top"> 
Funkce</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s12.html b/help/cs/html/ch11s12.html
index cba1456..7965b54 100644
--- a/help/cs/html/ch11s12.html
+++ b/help/cs/html/ch11s12.html
@@ -1,59 +1 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Funkce</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka 
k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" 
href="ch11s11.html" title="Diferenciální/integrální počet"><link rel="next" href="ch11s13.html" title="Řešení 
rovnic"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div 
class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" 
align="center">Funkce</th></tr><tr><td width="20%" align="left"><a accesskey="p" 
href="ch11s11.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam funkcí 
GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s13.html">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div>
 <h2 class="title" style="clear: both"><a 
name="genius-gel-function-list-functions"></a>Funkce</h2></div></div></div><div class="variablelist"><dl 
class="variablelist"><dt><span class="term"><a name="gel-function-Argument"></a>Argument</span></dt><dd><pre 
class="synopsis">Argument (z)</pre><p>Alternativní názvy: <code class="function">Arg</code><code 
class="function">arg</code></p><p>Argument (orientovaný úhel) komplexního čísla.</p></dd><dt><span 
class="term"><a name="gel-function-BesselJ0"></a>BesselJ0</span></dt><dd><pre class="synopsis">BesselJ0 
(x)</pre><p>Besselova funkce prvního druhu řádu 0. Je implementována pouze pro reálná čísla.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Bessel_functions"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-BesselJ1"></a>BesselJ1</span></dt><dd><pre class="synopsis">BesselJ1 (x)</pre><p>Besselova 
funkce prvního druhu řádu 1. Je implementována pouze pro reálná čísla.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Bessel_functions"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-BesselJn"></a>BesselJn</span></dt><dd><pre class="synopsis">BesselJn 
(n,x)</pre><p>Besselova funkce prvního druhu řádu <code class="varname">n</code>. Je implementována pouze pro 
reálná čísla.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Bessel_functions"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-BesselY0"></a>BesselY0</span></dt><dd><pre class="synopsis">BesselY0 (x)</pre><p>Besselova 
funkce druhého druhu řádu 0. Je implementována pouze pro reálná čísla.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Bessel_functions"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-BesselY1"></a>BesselY1</span></dt><dd><pre class="synopsis">BesselY1 (x)</pre><p>Besselova 
funkce druhého druhu řádu 1. Je implementována pouze pro reálná čísla.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Bessel_functions"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-BesselYn"></a>BesselYn</span></dt><dd><pre class="synopsis">BesselYn 
(n,x)</pre><p>Besselova funkce druhého druhu řádu <code class="varname">n</code>. Je implementována pouze pro 
reálná čísla.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Bessel_functions"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-DirichletKernel"></a>DirichletKernel</span></dt><dd><pre class="synopsis">DirichletKernel 
(n,t)</pre><p>Dirichletovo jádro řádu <code class="varname">n</code>.</p></dd><dt><span class="term"><a 
name="gel-function-DiscreteDelta"></a>DiscreteDelta</span></dt><dd><pre class="synopsis">DiscreteDelta 
(v)</pre><p>Vrátit 1, když a jen když jsou všechny prvky nulové.</p></dd><dt><span class="term"><a 
name="gel-function-ErrorFunction"></a>ErrorFunction</span></dt><dd><pre class="synopsis">ErrorFunction 
(x)</pre><p>Alternativní názvy: <code class="function">erf</code></p><p>Chybová funkce, 2/sqrt(pi) * int_0^x 
e^(-t^2) dt.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/ErrorFunction"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Chybov%C3%A1_funkce"; target="_top">Wikipedia</a>.
 </p></dd><dt><span class="term"><a name="gel-function-FejerKernel"></a>FejerKernel</span></dt><dd><pre 
class="synopsis">FejerKernel (n,t)</pre><p>Fejerovo jádro řádu <code class="varname">n</code> vyhodnocené v 
<code class="varname">t</code>.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/FejerKernel"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-GammaFunction"></a>GammaFunction</span></dt><dd><pre class="synopsis">GammaFunction 
(x)</pre><p>Alternativní názvy: <code class="function">Gamma</code></p><p>Funkce Gama. V současnosti je 
implementována pouze pro reálná čísla.</p><p>
-           See
-           <a class="ulink" href="http://planetmath.org/GammaFunction"; target="_top">Planetmath</a> or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Gamma_function"; target="_top">Wikipedia</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-KroneckerDelta"></a>KroneckerDelta</span></dt><dd><pre class="synopsis">KroneckerDelta 
(v)</pre><p>Vrátit 1, když a jen když se všechny prvky rovnají.</p></dd><dt><span class="term"><a 
name="gel-function-LambertW"></a>LambertW</span></dt><dd><pre class="synopsis">LambertW (x)</pre><p>Hlavní 
větev Lambertovy funkce W vypočítaná pro čistě reálná čísla větší nebo rovna <strong 
class="userinput"><code>-1/e</code></strong>. Funkce <code class="function">LambertW</code> je inverzní k 
výrazu <strong class="userinput"><code>x*e^x</code></strong>. Dokonce i pro reálná <code 
class="varname">x</code> tento výraz není jedna k jedné a proto má dvě větve pro <strong 
class="userinput"><code>[-1/e,0)</code></strong>. Viz <a class="link" 
href="ch11s12.html#gel-function-LambertWm1"><code class="function">LambertWm1</code></a> ohledně další reálné 
větve.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Lambert_W_function"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-LambertWm1"></a>LambertWm1</span></dt><dd><pre class="synopsis">LambertWm1 
(x)</pre><p>Vedlejší (mínus první) větev Lambertovy funkce W vypočítaná pro čistě reálná čísla větší nebo 
rovna <strong class="userinput"><code>-1/e</code></strong>. Funkce <code class="function">LambertWm1</code> 
je druhou větví k inverzi výrazu <strong class="userinput"><code>x*e^x</code></strong>. Viz <a class="link" 
href="ch11s12.html#gel-function-LambertW"><code class="function">LambertW</code></a> ohledně hlavní 
větve.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Lambert_W_function"; 
target="_top">Wikipedia</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-MinimizeFunction"></a>MinimizeFunction</span></dt><dd><pre 
class="synopsis">MinimizeFunction (fce,x,prirust)</pre><p>Najít první hodnotu, kdy f(x)=0.</p></dd><dt><span 
class="term"><a name="gel-function-MoebiusDiskMapping"></a>MoebiusDiskMapping</span></dt><dd><pre 
class="synopsis">MoebiusDiskMapping (a,z)</pre><p>Möbiova transformace (lineární lomené zobrazení) kruhu na 
sebe sama ku 0.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/MobiusTransformation"; target="_top">Planetmath</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMapping"></a>MoebiusMapping</span></dt><dd><pre class="synopsis">MoebiusMapping 
(z,z2,z3,z4)</pre><p>Möbiova transformace (lineární lomené zobrazení) pomocí dvojpoměrů z2,z3,z4 ku 1,0 a 
nekonečnu.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/MobiusTransformation"; target="_top">Planetmath</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMappingInftyToInfty"></a>MoebiusMappingInftyToInfty</span></dt><dd><pre 
class="synopsis">MoebiusMappingInftyToInfty (z,z2,z3)</pre><p>Möbiova transformace (lineární lomené 
zobrazení) pomocí dvojpoměrů nekonečna ku nekonečnu a z2,z3 ku 1 a 0.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/MobiusTransformation"; target="_top">Planetmath</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMappingInftyToOne"></a>MoebiusMappingInftyToOne</span></dt><dd><pre 
class="synopsis">MoebiusMappingInftyToOne (z,z3,z4)</pre><p>Möbiova transformace (lineární lomené zobrazení) 
pomocí dvojpoměrů nekonečna ku 1 a z3,z4 ku 0 a nekonečnu.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/MobiusTransformation"; target="_top">Planetmath</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMappingInftyToZero"></a>MoebiusMappingInftyToZero</span></dt><dd><pre 
class="synopsis">MoebiusMappingInftyToZero (z,z2,z4)</pre><p>Möbiova transformace (lineární lomené zobrazení) 
pomocí dvojpoměrů nekonečna ku 0 a z2,z4 ku 1 a nekonečnu.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://planetmath.org/MobiusTransformation"; target="_top">Planetmath</a> 
for more information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-PoissonKernel"></a>PoissonKernel</span></dt><dd><pre class="synopsis">PoissonKernel 
(r,sigma)</pre><p>Poissonovo jádro na D(0,1) (nenormalizované na 1, tj. integrál je 2pi).</p></dd><dt><span 
class="term"><a name="gel-function-PoissonKernelRadius"></a>PoissonKernelRadius</span></dt><dd><pre 
class="synopsis">PoissonKernelRadius (r,sigma)</pre><p>Poissonovo jádro na D(0,R) (nenormalizované na 
1).</p></dd><dt><span class="term"><a name="gel-function-RiemannZeta"></a>RiemannZeta</span></dt><dd><pre 
class="synopsis">RiemannZeta (x)</pre><p>Alternativní názvy: <code 
class="function">zeta</code></p><p>Riemannova funkce zeta. V současnosti je implementována jen pro reálná 
čísla.</p><p>
-           See
-           <a class="ulink" href="http://planetmath.org/RiemannZetaFunction"; target="_top">Planetmath</a> or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Riemann_zeta_function"; 
target="_top">Wikipedia</a> for more information.
-          </p></dd><dt><span class="term"><a name="gel-function-UnitStep"></a>UnitStep</span></dt><dd><pre 
class="synopsis">UnitStep (x)</pre><p>Funkce jednotkového skoku je rovna 0 pro x&lt;0 a jedné v ostatních 
případech. Jedná se o integrál Diracovy funkce delta. Bývá také nazývána Heavisideova funkce.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Unit_step"; target="_top">Wikipedia</a> for 
more information.
-          </p></dd><dt><span class="term"><a name="gel-function-cis"></a>cis</span></dt><dd><pre 
class="synopsis">cis (x)</pre><p>Funkce <code class="function">cis</code>, což je to stejné jako <strong 
class="userinput"><code>cos(x)+1i*sin(x)</code></strong></p></dd><dt><span class="term"><a 
name="gel-function-deg2rad"></a>deg2rad</span></dt><dd><pre class="synopsis">deg2rad (x)</pre><p>Převést 
stupně na radiány.</p></dd><dt><span class="term"><a 
name="gel-function-rad2deg"></a>rad2deg</span></dt><dd><pre class="synopsis">rad2deg (x)</pre><p>Převést 
radiány na stupně.</p></dd><dt><span class="term"><a name="gel-function-sinc"></a>sinc</span></dt><dd><pre 
class="synopsis">sinc (x)</pre><p>Vypočítat nenormalizovanou funkci sinc, což je <strong 
class="userinput"><code>sin(x)/x</code></strong>. Jestli chcete normalizovanou funkci, volejte <strong 
class="userinput"><code>sinc(pi*x)</code></strong>.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Sinc"; target="_top">Wikipedia</a> for more 
information.
-         </p><p>Verze 1.0.16 a novější.</p></dd></dl></div></div><div class="navfooter"><hr><table 
width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch11s11.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s13.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Diferenciální/integrální 
počet  </td><td width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" 
align="right" valign="top"> Řešení rovnic</td></tr></table></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Funkce</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka 
k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" 
href="ch11s11.html" title="Diferenciální/integrální počet"><link rel="next" href="ch11s13.html" title="Řešení 
rovnic"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div 
class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" 
align="center">Funkce</th></tr><tr><td width="20%" align="left"><a accesskey="p" 
href="ch11s11.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam funkcí 
GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s13.html">Další</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div>
 <h2 class="title" style="clear: both"><a 
name="genius-gel-function-list-functions"></a>Funkce</h2></div></div></div><div class="variablelist"><dl 
class="variablelist"><dt><span class="term"><a name="gel-function-Argument"></a>Argument</span></dt><dd><pre 
class="synopsis">Argument (z)</pre><p>Alternativní názvy: <code class="function">Arg</code><code 
class="function">arg</code></p><p>Argument (orientovaný úhel) komplexního čísla.</p></dd><dt><span 
class="term"><a name="gel-function-BesselJ0"></a>BesselJ0</span></dt><dd><pre class="synopsis">BesselJ0 
(x)</pre><p>Besselova funkce prvního druhu řádu 0. Je implementována pouze pro reálná čísla.</p><p>Více 
informací najdete v encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Besselova_funkce"; 
target="_top">Wikipedia</a>.</p><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-BesselJ1"></a>BesselJ1</span></dt><dd><pre class="synopsis">BesselJ1 (x)</pre><p>Besselova 
fun
 kce prvního druhu řádu 1. Je implementována pouze pro reálná čísla.</p><p>Více informací najdete v 
encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Besselova_funkce"; 
target="_top">Wikipedia</a>.</p><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-BesselJn"></a>BesselJn</span></dt><dd><pre class="synopsis">BesselJn 
(n,x)</pre><p>Besselova funkce prvního druhu řádu <code class="varname">n</code>. Je implementována pouze pro 
reálná čísla.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Besselova_funkce"; target="_top">Wikipedia</a>.</p><p>Verze 1.0.16 a 
novější.</p></dd><dt><span class="term"><a name="gel-function-BesselY0"></a>BesselY0</span></dt><dd><pre 
class="synopsis">BesselY0 (x)</pre><p>Besselova funkce druhého druhu řádu 0. Je implementována pouze pro 
reálná čísla.</p><p>Více informací najdete v encyklopedii <a class="ulink" href="https://c
 s.wikipedia.org/wiki/Besselova_funkce" target="_top">Wikipedia</a>.</p><p>Verze 1.0.16 a 
novější.</p></dd><dt><span class="term"><a name="gel-function-BesselY1"></a>BesselY1</span></dt><dd><pre 
class="synopsis">BesselY1 (x)</pre><p>Besselova funkce druhého druhu řádu 1. Je implementována pouze pro 
reálná čísla.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Besselova_funkce"; target="_top">Wikipedia</a>.</p><p>Verze 1.0.16 a 
novější.</p></dd><dt><span class="term"><a name="gel-function-BesselYn"></a>BesselYn</span></dt><dd><pre 
class="synopsis">BesselYn (n,x)</pre><p>Besselova funkce druhého druhu řádu <code class="varname">n</code>. 
Je implementována pouze pro reálná čísla.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Besselova_funkce"; target="_top">Wikipedia</a>.</p><p>Verze 1.0.16 a 
novější.</p></dd><dt><span class="term"><a name="gel-function-
 DirichletKernel"></a>DirichletKernel</span></dt><dd><pre class="synopsis">DirichletKernel 
(n,t)</pre><p>Dirichletovo jádro řádu <code class="varname">n</code>.</p></dd><dt><span class="term"><a 
name="gel-function-DiscreteDelta"></a>DiscreteDelta</span></dt><dd><pre class="synopsis">DiscreteDelta 
(v)</pre><p>Vrátit 1, když a jen když jsou všechny prvky nulové.</p></dd><dt><span class="term"><a 
name="gel-function-ErrorFunction"></a>ErrorFunction</span></dt><dd><pre class="synopsis">ErrorFunction 
(x)</pre><p>Alternativní názvy: <code class="function">erf</code></p><p>Chybová funkce, 2/sqrt(pi) * int_0^x 
e^(-t^2) dt.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/ErrorFunction"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Chybov%C3%A1_funkce"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-FejerKernel"></a>FejerKernel</span><
 /dt><dd><pre class="synopsis">FejerKernel (n,t)</pre><p>Fejerovo jádro řádu <code class="varname">n</code> 
vyhodnocené v <code class="varname">t</code>.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/FejerKernel"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-GammaFunction"></a>GammaFunction</span></dt><dd><pre class="synopsis">GammaFunction 
(x)</pre><p>Alternativní názvy: <code class="function">Gamma</code></p><p>Funkce Gama. V současnosti je 
implementována pouze pro reálná čísla.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/GammaFunction"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Gama_funkce"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-KroneckerDelta"></a>KroneckerDelta</span></dt><dd><pre class="synopsis">
 KroneckerDelta (v)</pre><p>Vrátit 1, když a jen když se všechny prvky rovnají.</p></dd><dt><span 
class="term"><a name="gel-function-LambertW"></a>LambertW</span></dt><dd><pre class="synopsis">LambertW 
(x)</pre><p>Hlavní větev Lambertovy funkce W vypočítaná pro čistě reálná čísla větší nebo rovna <strong 
class="userinput"><code>-1/e</code></strong>. Funkce <code class="function">LambertW</code> je inverzní k 
výrazu <strong class="userinput"><code>x*e^x</code></strong>. Dokonce i pro reálná <code 
class="varname">x</code> tento výraz není jedna k jedné a proto má dvě větve pro <strong 
class="userinput"><code>[-1/e,0)</code></strong>. Viz <a class="link" 
href="ch11s12.html#gel-function-LambertWm1"><code class="function">LambertWm1</code></a> ohledně další reálné 
větve.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Lambert_W_function"; target="_top">Wikipedia</a> (text je v 
angličtině).</p><p
Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-LambertWm1"></a>LambertWm1</span></dt><dd><pre class="synopsis">LambertWm1 
(x)</pre><p>Vedlejší (mínus první) větev Lambertovy funkce W vypočítaná pro čistě reálná čísla větší nebo 
rovna <strong class="userinput"><code>-1/e</code></strong>. Funkce <code class="function">LambertWm1</code> 
je druhou větví k inverzi výrazu <strong class="userinput"><code>x*e^x</code></strong>. Viz <a class="link" 
href="ch11s12.html#gel-function-LambertW"><code class="function">LambertW</code></a> ohledně hlavní 
větve.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Lambert_W_function"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-MinimizeFunction"></a>MinimizeFunction</span></dt><dd><pre 
class="synopsis">MinimizeFunction (fce,x,prirust)</pre><p>Najít první hodnotu, kdy f(x)=0.</p>
 </dd><dt><span class="term"><a 
name="gel-function-MoebiusDiskMapping"></a>MoebiusDiskMapping</span></dt><dd><pre 
class="synopsis">MoebiusDiskMapping (a,z)</pre><p>Möbiova transformace (lineární lomené zobrazení) kruhu na 
sebe sama ku 0.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; target="_top">Wikipedia</a> (text je v 
angličtině) a <a class="ulink" href="http://planetmath.org/MobiusTransformation"; target="_top">Planetmath</a> 
(text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMapping"></a>MoebiusMapping</span></dt><dd><pre class="synopsis">MoebiusMapping 
(z,z2,z3,z4)</pre><p>Möbiova transformace (lineární lomené zobrazení) pomocí dvojpoměrů z2,z3,z4 ku 1,0 a 
nekonečnu.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; target="_top">Wikipedia</a> (text je v angli
 čtině) a <a class="ulink" href="http://planetmath.org/MobiusTransformation"; target="_top">Planetmath</a> 
(text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMappingInftyToInfty"></a>MoebiusMappingInftyToInfty</span></dt><dd><pre 
class="synopsis">MoebiusMappingInftyToInfty (z,z2,z3)</pre><p>Möbiova transformace (lineární lomené 
zobrazení) pomocí dvojpoměrů nekonečna ku nekonečnu a z2,z3 ku 1 a 0.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; 
target="_top">Wikipedia</a> (text je v angličtině) a <a class="ulink" 
href="http://planetmath.org/MobiusTransformation"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMappingInftyToOne"></a>MoebiusMappingInftyToOne</span></dt><dd><pre 
class="synopsis">MoebiusMappingInftyToOne (z,z3,z4)</pre><p>Möbiova transformace (lineární lomené zobraze
 ní) pomocí dvojpoměrů nekonečna ku 1 a z3,z4 ku 0 a nekonečnu.</p><p>Více informací najdete v encyklopediích 
<a class="ulink" href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; target="_top">Wikipedia</a> 
(text je v angličtině) a <a class="ulink" href="http://planetmath.org/MobiusTransformation"; 
target="_top">Planetmath</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-MoebiusMappingInftyToZero"></a>MoebiusMappingInftyToZero</span></dt><dd><pre 
class="synopsis">MoebiusMappingInftyToZero (z,z2,z4)</pre><p>Möbiova transformace (lineární lomené zobrazení) 
pomocí dvojpoměrů nekonečna ku 0 a z2,z4 ku 1 a nekonečnu.</p><p>Více informací najdete v encyklopediích <a 
class="ulink" href="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation"; target="_top">Wikipedia</a> 
(text je v angličtině) a <a class="ulink" href="http://planetmath.org/MobiusTransformation"; 
target="_top">Planetmath</a> (text je v angličtině
 ).</p></dd><dt><span class="term"><a name="gel-function-PoissonKernel"></a>PoissonKernel</span></dt><dd><pre 
class="synopsis">PoissonKernel (r,sigma)</pre><p>Poissonovo jádro na D(0,1) (nenormalizované na 1, tj. 
integrál je 2pi).</p></dd><dt><span class="term"><a 
name="gel-function-PoissonKernelRadius"></a>PoissonKernelRadius</span></dt><dd><pre 
class="synopsis">PoissonKernelRadius (r,sigma)</pre><p>Poissonovo jádro na D(0,R) (nenormalizované na 
1).</p></dd><dt><span class="term"><a name="gel-function-RiemannZeta"></a>RiemannZeta</span></dt><dd><pre 
class="synopsis">RiemannZeta (x)</pre><p>Alternativní názvy: <code 
class="function">zeta</code></p><p>Riemannova funkce zeta. V současnosti je implementována jen pro reálná 
čísla.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/RiemannZetaFunction"; target="_top">Planetmath</a> (text je v angličtině) a <a 
class="ulink" href="https://cs.wikipedia.org/wiki/Riemannova_funkc
 e_zeta" target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-UnitStep"></a>UnitStep</span></dt><dd><pre class="synopsis">UnitStep (x)</pre><p>Funkce 
jednotkového skoku je rovna 0 pro x&lt;0 a jedné v ostatních případech. Jedná se o integrál Diracovy funkce 
delta. Bývá také nazývána Heavisideova funkce.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Heavisideova_funkce"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-cis"></a>cis</span></dt><dd><pre class="synopsis">cis (x)</pre><p>Funkce 
<code class="function">cis</code>, což je to stejné jako <strong 
class="userinput"><code>cos(x)+1i*sin(x)</code></strong></p></dd><dt><span class="term"><a 
name="gel-function-deg2rad"></a>deg2rad</span></dt><dd><pre class="synopsis">deg2rad (x)</pre><p>Převést 
stupně na radiány.</p></dd><dt><span class="term"><a name="gel-function-rad2deg"></a>rad2deg</span></d
 t><dd><pre class="synopsis">rad2deg (x)</pre><p>Převést radiány na stupně.</p></dd><dt><span class="term"><a 
name="gel-function-sinc"></a>sinc</span></dt><dd><pre class="synopsis">sinc (x)</pre><p>Vypočítat 
nenormalizovanou funkci sinc, což je <strong class="userinput"><code>sin(x)/x</code></strong>. Jestli chcete 
normalizovanou funkci, volejte <strong class="userinput"><code>sinc(pi*x)</code></strong>.</p><p>Více 
informací najdete v encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/Sinc"; 
target="_top">Wikipedia</a>.</p><p>Verze 1.0.16 a novější.</p></dd></dl></div></div><div 
class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a 
accesskey="p" href="ch11s11.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s13.html">Další</a></td></tr><tr><td width="40%" align="left" valign=
 "top">Diferenciální/integrální počet  </td><td width="20%" align="center"><a accesskey="h" 
href="index.html">Domů</a></td><td width="40%" align="right" valign="top"> Řešení 
rovnic</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s13.html b/help/cs/html/ch11s13.html
index ed518b1..dbd54d3 100644
--- a/help/cs/html/ch11s13.html
+++ b/help/cs/html/ch11s13.html
@@ -1,27 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Řešení 
rovnic</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s12.html" title="Funkce"><link rel="next" href="ch11s14.html" 
title="Statistika"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" 
alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" 
align="center">Řešení rovnic</th></tr><tr><td width="20%" align="left"><a accesskey="p" 
href="ch11s12.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam funkcí 
GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s14.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class="titl
 e" style="clear: both"><a name="genius-gel-function-list-equation-solving"></a>Řešení 
rovnic</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-CubicFormula"></a>CubicFormula</span></dt><dd><pre class="synopsis">CubicFormula 
(p)</pre><p>Vypočítat kořeny kubického (3. stupně) polynomu pomocí kubické rovnice. Polynom by měl být zadán 
jako vektor koeficientů. Tj. <strong class="userinput"><code>4*x^3 + 2*x + 1</code></strong> odpovídá vektoru 
<strong class="userinput"><code>[1,2,0,4]</code></strong>. Vrací sloupcový vektor tří řešení. První řešení je 
vždy reálné, protože kubická rovnice má vždy jedno reálné řešení.</p><p>
-           See
-           <a class="ulink" href="http://planetmath.org/CubicFormula"; target="_top">Planetmath</a>,
-           <a class="ulink" href="http://mathworld.wolfram.com/CubicFormula.html"; 
target="_top">Mathworld</a>, or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Cubic_equation"; target="_top">Wikipedia</a> 
for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-EulersMethod"></a>EulersMethod</span></dt><dd><pre class="synopsis">EulersMethod 
(f,x0,y0,x1,n)</pre><p>Použít klasickou Eulerovu metodu k numerickému řešení y'=f(x,y) pro počáteční <code 
class="varname">x0</code>, <code class="varname">y0</code> měnící se do <code class="varname">x1</code> s 
přírůstky <code class="varname">n</code> a vrátit <code class="varname">y</code> v <code 
class="varname">x1</code>. Pokud nechcete výslovně použít Eulerovu metodu, měli byste vážně popřemýšlet o 
použití <a class="link" href="ch11s13.html#gel-function-RungeKutta">RungeKutta</a> k řešení obyčejných 
diferenciálních rovnic.</p><p>Systémy je možné vyřešit jednoduše tak, že <code class="varname">y</code> musí 
být všude (sloupcový) vektor. To znamená, že <code class="varname">y0</code> může být vektor v případech, kdy 
by <code class="varname">f</code> mělo přebírat <code class="va
 rname">x</code> a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné velikosti.</p><p>
-           See
-           <a class="ulink" href="http://mathworld.wolfram.com/EulerForwardMethod.html"; 
target="_top">Mathworld</a> or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Eulers_method"; target="_top">Wikipedia</a> 
for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-EulersMethodFull"></a>EulersMethodFull</span></dt><dd><pre 
class="synopsis">EulersMethodFull (f,x0,y0,x1,n)</pre><p>
-           Use classical Euler's method to numerically solve y'=f(x,y) for
-           initial <code class="varname">x0</code>, <code class="varname">y0</code> going to
-           <code class="varname">x1</code> with <code class="varname">n</code> increments,
-           returns an <strong class="userinput"><code>n+1</code></strong> by 2 matrix with the
-           <code class="varname">x</code> and <code class="varname">y</code> values.
-           Unless you explicitly want to use Euler's method, you should really
-           think about using
-           <a class="link" href="ch11s13.html#gel-function-RungeKuttaFull">RungeKuttaFull</a>
-           for solving ODE.
-           Suitable
-           for plugging into 
-           <a class="link" href="ch11s20.html#gel-function-LinePlotDrawLine">LinePlotDrawLine</a> or
-           <a class="link" href="ch11s20.html#gel-function-LinePlotDrawPoints">LinePlotDrawPoints</a>.
-         </p><p>Příklad: </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotClear();</code></strong>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Řešení 
rovnic</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" 
href="index.html" title="Příručka k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. 
Seznam funkcí GEL"><link rel="prev" href="ch11s12.html" title="Funkce"><link rel="next" href="ch11s14.html" 
title="Statistika"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" 
alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" 
align="center">Řešení rovnic</th></tr><tr><td width="20%" align="left"><a accesskey="p" 
href="ch11s12.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam funkcí 
GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s14.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class="titl
 e" style="clear: both"><a name="genius-gel-function-list-equation-solving"></a>Řešení 
rovnic</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-CubicFormula"></a>CubicFormula</span></dt><dd><pre class="synopsis">CubicFormula 
(p)</pre><p>Vypočítat kořeny kubického (3. stupně) polynomu pomocí kubické rovnice. Polynom by měl být zadán 
jako vektor koeficientů. Tj. <strong class="userinput"><code>4*x^3 + 2*x + 1</code></strong> odpovídá vektoru 
<strong class="userinput"><code>[1,2,0,4]</code></strong>. Vrací sloupcový vektor tří řešení. První řešení je 
vždy reálné, protože kubická rovnice má vždy jedno reálné řešení.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://planetmath.org/CubicFormula"; target="_top">Planetmath</a> (text 
je v angličtině), <a class="ulink" href="http://mathworld.wolfram.com/CubicFormula.html"; 
target="_top">Mathworld</a> (
 text je v angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Kubick%C3%A1_rovnice"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-EulersMethod"></a>EulersMethod</span></dt><dd><pre class="synopsis">EulersMethod 
(f,x0,y0,x1,n)</pre><p>Použít klasickou Eulerovu metodu k numerickému řešení y'=f(x,y) pro počáteční <code 
class="varname">x0</code>, <code class="varname">y0</code> měnící se do <code class="varname">x1</code> s 
přírůstky <code class="varname">n</code> a vrátit <code class="varname">y</code> v <code 
class="varname">x1</code>. Pokud nechcete výslovně použít Eulerovu metodu, měli byste vážně popřemýšlet o 
použití <a class="link" href="ch11s13.html#gel-function-RungeKutta">RungeKutta</a> k řešení obyčejných 
diferenciálních rovnic.</p><p>Systémy je možné vyřešit jednoduše tak, že <code class="varname">y</code> musí 
být všude (sloupcový) vektor. To znamená, že <code clas
 s="varname">y0</code> může být vektor v případech, kdy by <code class="varname">f</code> mělo přebírat <code 
class="varname">x</code> a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné 
velikosti.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/EulerForwardMethod.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Eulerova_metoda"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-EulersMethodFull"></a>EulersMethodFull</span></dt><dd><pre 
class="synopsis">EulersMethodFull (f,x0,y0,x1,n)</pre><p>Použít klasickou Eulerovu metodu k numerickému 
řešení y'=f(x,y) pro počáteční <code class="varname">x0</code>, <code class="varname">y0</code> měnící se do 
<code class="varname">x1</code> s přírůstky <code class="varname">n</code> a vrátit matici <strong 
class="userinput"><code>n+1</code><
 /strong> krát 2 s hodnotami <code class="varname">x</code> a <code class="varname">y</code>. Pokud nechcete 
výslovně použít Eulerovu metodu, měli byste vážně popřemýšlet o použití <a class="link" 
href="ch11s13.html#gel-function-RungeKuttaFull">RungeKuttaFull</a> k řešení obyčejných diferenciálních 
rovnic. Vhodné pro zapojení do <a class="link" 
href="ch11s20.html#gel-function-LinePlotDrawLine">LinePlotDrawLine</a> nebo <a class="link" 
href="ch11s20.html#gel-function-LinePlotDrawPoints">LinePlotDrawPoints</a>.</p><p>Příklad: </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotClear();</code></strong>
 <code class="prompt">genius&gt;</code> <strong class="userinput"><code>line = 
EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponenciální 
vývoj");</code></strong>
 </pre><p>Systémy je možné vyřešit jednoduše tak, že <code class="varname">y</code> musí být všude 
(sloupcový) vektor. To znamená, že <code class="varname">y0</code> může být vektor v případech, kdy by <code 
class="varname">f</code> mělo přebírat <code class="varname">x</code> a vektor stejné velikosti pro druhý 
argument a mělo by vracet vektor stejné velikosti.</p><p>Výstup pro systém je nicméně matice n krát 2 s 
druhou položkou v podobě vektoru. Když si přejete vykreslit čáru, ujistěte se, že používáte řádkové vektory a 
pak převeďte matici na vektor pomocí <a class="link" 
href="ch11s08.html#gel-function-ExpandMatrix">ExpandMatrix</a> a vyberte si pravý sloupec. Například: 
</p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotClear();</code></strong>
@@ -32,44 +9,9 @@
 <code class="prompt">genius&gt;</code> <strong class="userinput"><code>LinePlotWindow = 
[0,10,-2,2];</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine(firstline,"color","blue","legend","První");</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Druhý");</code></strong>
-</pre><p>
-           See
-           <a class="ulink" href="http://mathworld.wolfram.com/EulerForwardMethod.html"; 
target="_top">Mathworld</a> or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Eulers_method"; target="_top">Wikipedia</a> 
for more information.
-         </p><p>Verze 1.0.10 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-FindRootBisection"></a>FindRootBisection</span></dt><dd><pre 
class="synopsis">FindRootBisection (f,a,b,TOL,N)</pre><p>Najít kořen funkce pomocí metody bisekce. <code 
class="varname">a</code> a <code class="varname">b</code> je počáteční odhad intervalu, <strong 
class="userinput"><code>f(a)</code></strong> a <strong class="userinput"><code>f(b)</code></strong> by měly 
mít opačná znaménka. <code class="varname">TOL</code> je požadovaná tolerance a <code 
class="varname">N</code> je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací 
vektor <strong class="userinput"><code>[uspech,hodnota,iteratce]</code></strong>, kde <code 
class="varname">uspech</code> je pravdivostní hodnota signalizující úspěch, <code 
class="varname">hodnota</code> je poslední spočtená hodnota a <code class="varname">iterace</code> je počet 
dokončených iterac
 í.</p></dd><dt><span class="term"><a 
name="gel-function-FindRootFalsePosition"></a>FindRootFalsePosition</span></dt><dd><pre 
class="synopsis">FindRootFalsePosition (f,a,b,TOL,N)</pre><p>Najít kořen funkce pomocí metody tětiv. <code 
class="varname">a</code> a <code class="varname">b</code> je počáteční odhad intervalu, <strong 
class="userinput"><code>f(a)</code></strong> a <strong class="userinput"><code>f(b)</code></strong> by měly 
mít opačná znaménka. <code class="varname">TOL</code> je požadovaná tolerance a <code 
class="varname">N</code> je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací 
vektor <strong class="userinput"><code>[uspech,hodnota,iteratce]</code></strong>, kde <code 
class="varname">uspech</code> je pravdivostní hodnota signalizující úspěch, <code 
class="varname">hodnota</code> je poslední spočtená hodnota a <code class="varname">iterace</code> je počet 
dokončených iterací.</p></dd><dt><span 
 class="term"><a name="gel-function-FindRootMullersMethod"></a>FindRootMullersMethod</span></dt><dd><pre 
class="synopsis">FindRootMullersMethod (f,x0,x1,x2,TOL,N)</pre><p>Najít kořen funkce pomocí Mullerovy metody. 
<code class="varname">TOL</code> je požadovaná tolerance a <code class="varname">N</code> je omezení počtu 
iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor <strong 
class="userinput"><code>[uspech,hodnota,iteratce]</code></strong>, kde <code class="varname">uspech</code> je 
pravdivostní hodnota signalizující úspěch, <code class="varname">hodnota</code> je poslední spočtená hodnota 
a <code class="varname">iterace</code> je počet dokončených iterací.</p></dd><dt><span class="term"><a 
name="gel-function-FindRootSecant"></a>FindRootSecant</span></dt><dd><pre class="synopsis">FindRootSecant 
(f,a,b,TOL,N)</pre><p>Najít kořen funkce pomocí metody sečen. <code class="varname">a</code> a <code 
class="varname">b</code> je
  počáteční odhad intervalu, <strong class="userinput"><code>f(a)</code></strong> a <strong 
class="userinput"><code>f(b)</code></strong> by měly mít opačná znaménka. <code class="varname">TOL</code> je 
požadovaná tolerance a <code class="varname">N</code> je omezení počtu iterací, které mají proběhnout, 0 
značí bez omezení. Funkce vrací vektor <strong 
class="userinput"><code>[uspech,hodnota,iteratce]</code></strong>, kde <code class="varname">uspech</code> je 
pravdivostní hodnota signalizující úspěch, <code class="varname">hodnota</code> je poslední spočtená hodnota 
a <code class="varname">iterace</code> je počet dokončených iterací.</p></dd><dt><span class="term"><a 
name="gel-function-HalleysMethod"></a>HalleysMethod</span></dt><dd><pre class="synopsis">HalleysMethod 
(f,df,ddf,odhad,epsilon,maxn)</pre><p>Najde nuly pomocí Halleyovy metody. <code class="varname">f</code> je 
funkce, <code class="varname">df</code> je její derivace a <code cla
 ss="varname">ddf</code> její druhá derivace. <code class="varname">odhad</code> je počáteční odhad. Funkce 
vrací výsledek po dvou úspěšných hodnotách, které každá spadají do <code class="varname">epsilon</code> nebo 
po <code class="varname">maxn</code> pokusech, v kterémžto případě vrací <code class="constant">null</code>, 
což značí selhání.</p><p>Viz také <a class="link" href="ch11s13.html#gel-function-NewtonsMethod"><code 
class="function">NewtonsMethod</code></a> a <a class="link" 
href="ch11s19.html#gel-function-SymbolicDerivative"><code 
class="function">SymbolicDerivative</code></a>.</p><p>Příklad vyhledání druhé odmocniny z 10: </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</code></strong>
-</pre><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Halley%27s_method"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NewtonsMethod"></a>NewtonsMethod</span></dt><dd><pre class="synopsis">NewtonsMethod 
(f,df,odhad,epsilon,maxn)</pre><p>Najde nuly pomocí metody tečen (Newtonovy metody). <code 
class="varname">f</code> je funkce a <code class="varname">df</code> je její derivace. <code 
class="varname">odhad</code> je počáteční odhad. Funkce vrací výsledek po dvou úspěšných hodnotách, které 
každá spadají do <code class="varname">epsilon</code> nebo po <code class="varname">maxn</code> pokusech, v 
kterémžto případě vrací <code class="constant">null</code>, což značí selhání.</p><p>Viz také <a class="link" 
href="ch11s15.html#gel-function-NewtonsMethodPoly"><code class="function">NewtonsMethodPoly</code></a> a <a 
class="link" href="ch11s19.html#gel-function-SymbolicDerivative"><code 
class="function">SymbolicDerivative</code></a>.</p><p>Příklad vyhledání druhé odmocniny z 10:
  </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</code></strong>
-</pre><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Newtons_method"; target="_top">Wikipedia</a> 
for more information.
-         </p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-PolynomialRoots"></a>PolynomialRoots</span></dt><dd><pre class="synopsis">PolynomialRoots 
(p)</pre><p>Vypočítat kořeny polynomu (1. až 4. stupně) pomocí jedné z rovnic pro takovéto polynomy. Polynom 
by měl být zadán jako vektor koeficientů. Tj. <strong class="userinput"><code>4*x^3 + 2*x + 1</code></strong> 
odpovídá vektoru <strong class="userinput"><code>[1,2,0,4]</code></strong>. Vrací sloupcový vektor 
řešení.</p><p>Funkce volá <a class="link" 
href="ch11s13.html#gel-function-QuadraticFormula">QuadraticFormula</a>, <a class="link" 
href="ch11s13.html#gel-function-CubicFormula">CubicFormula</a> a <a class="link" 
href="ch11s13.html#gel-function-QuarticFormula">QuarticFormula</a>.</p></dd><dt><span class="term"><a 
name="gel-function-QuadraticFormula"></a>QuadraticFormula</span></dt><dd><pre 
class="synopsis">QuadraticFormula (p)</pre><p>Vypočítat kořeny kvadratického
  (2. stupně) polynomu pomocí kvadratické rovnice. Polynom by měl být zadán jako vektor koeficientů. Tj. 
<strong class="userinput"><code>3*x^2 + 2*x + 1</code></strong> odpovídá vektoru <strong 
class="userinput"><code>[1,2,3]</code></strong>. Vrací sloupcový vektor dvou řešení.</p><p>
-           See
-           <a class="ulink" href="http://planetmath.org/QuadraticFormula"; target="_top">Planetmath</a>, or
-           <a class="ulink" href="http://mathworld.wolfram.com/QuadraticFormula.html"; 
target="_top">Mathworld</a>, or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Quadratic_formula"; 
target="_top">Wikipedia</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-QuarticFormula"></a>QuarticFormula</span></dt><dd><pre class="synopsis">QuarticFormula 
(p)</pre><p>Vypočítat kořeny kvartického (4. stupně) polynomu pomocí kvartické rovnice. Polynom by měl být 
zadán jako vektor koeficientů. Tj. <strong class="userinput"><code>5*x^4 + 2*x + 1</code></strong> odpovídá 
vektoru <strong class="userinput"><code>[1,2,0,0,5]</code></strong>. Vrací sloupcový vektor čtyř 
řešení.</p><p>
-           See
-           <a class="ulink" href="http://planetmath.org/QuarticFormula"; target="_top">Planetmath</a>,
-           <a class="ulink" href="http://mathworld.wolfram.com/QuarticEquation.html"; 
target="_top">Mathworld</a>, or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Quartic_equation"; 
target="_top">Wikipedia</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-RungeKutta"></a>RungeKutta</span></dt><dd><pre class="synopsis">RungeKutta 
(f,x0,y0,x1,n)</pre><p>Použít klasickou neadaptivní Rungeho-Kuttovu metodu čtvrtého řádu k numerickému řešení 
y'=f(x,y) pro počáteční <code class="varname">x0</code>, <code class="varname">y0</code> měnící se do <code 
class="varname">x1</code> s přírůstky <code class="varname">n</code>, vrací <code class="varname">y</code> v 
<code class="varname">x1</code>.</p><p>Systémy je možné vyřešit jednoduše tak, že <code 
class="varname">y</code> musí být všude (sloupcový) vektor. To znamená, že <code class="varname">y0</code> 
může být vektor v případech, kdy by <code class="varname">f</code> mělo přebírat <code 
class="varname">x</code> a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné 
velikosti.</p><p>
-           See
-           <a class="ulink" href="http://mathworld.wolfram.com/Runge-KuttaMethod.html"; 
target="_top">Mathworld</a> or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Runge-Kutta_methods"; 
target="_top">Wikipedia</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-RungeKuttaFull"></a>RungeKuttaFull</span></dt><dd><pre class="synopsis">RungeKuttaFull 
(f,x0,y0,x1,n)</pre><p>
-           Use classical non-adaptive fourth order Runge-Kutta method to
-           numerically solve
-           y'=f(x,y) for initial <code class="varname">x0</code>, <code class="varname">y0</code>
-           going to <code class="varname">x1</code> with <code class="varname">n</code>
-           increments,
-           returns an <strong class="userinput"><code>n+1</code></strong> by 2 matrix with the
-           <code class="varname">x</code> and <code class="varname">y</code> values.  Suitable
-           for plugging into 
-           <a class="link" href="ch11s20.html#gel-function-LinePlotDrawLine">LinePlotDrawLine</a> or
-           <a class="link" href="ch11s20.html#gel-function-LinePlotDrawPoints">LinePlotDrawPoints</a>.
-         </p><p>Příklad: </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotClear();</code></strong>
+</pre><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/EulerForwardMethod.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Eulerova_metoda"; 
target="_top">Wikipedia</a>.</p><p>Verze 1.0.10 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-FindRootBisection"></a>FindRootBisection</span></dt><dd><pre 
class="synopsis">FindRootBisection (f,a,b,TOL,N)</pre><p>Najít kořen funkce pomocí metody bisekce. <code 
class="varname">a</code> a <code class="varname">b</code> je počáteční odhad intervalu, <strong 
class="userinput"><code>f(a)</code></strong> a <strong class="userinput"><code>f(b)</code></strong> by měly 
mít opačná znaménka. <code class="varname">TOL</code> je požadovaná tolerance a <code 
class="varname">N</code> je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací 
vektor <strong class="userinput"
<code>[uspech,hodnota,iteratce]</code></strong>, kde <code class="varname">uspech</code> je pravdivostní 
hodnota signalizující úspěch, <code class="varname">hodnota</code> je poslední spočtená hodnota a <code 
class="varname">iterace</code> je počet dokončených iterací.</p></dd><dt><span class="term"><a 
name="gel-function-FindRootFalsePosition"></a>FindRootFalsePosition</span></dt><dd><pre 
class="synopsis">FindRootFalsePosition (f,a,b,TOL,N)</pre><p>Najít kořen funkce pomocí metody tětiv. <code 
class="varname">a</code> a <code class="varname">b</code> je počáteční odhad intervalu, <strong 
class="userinput"><code>f(a)</code></strong> a <strong class="userinput"><code>f(b)</code></strong> by měly 
mít opačná znaménka. <code class="varname">TOL</code> je požadovaná tolerance a <code 
class="varname">N</code> je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací 
vektor <strong class="userinput"><code>[uspech,hodnota
 ,iteratce]</code></strong>, kde <code class="varname">uspech</code> je pravdivostní hodnota signalizující 
úspěch, <code class="varname">hodnota</code> je poslední spočtená hodnota a <code 
class="varname">iterace</code> je počet dokončených iterací.</p></dd><dt><span class="term"><a 
name="gel-function-FindRootMullersMethod"></a>FindRootMullersMethod</span></dt><dd><pre 
class="synopsis">FindRootMullersMethod (f,x0,x1,x2,TOL,N)</pre><p>Najít kořen funkce pomocí Mullerovy metody. 
<code class="varname">TOL</code> je požadovaná tolerance a <code class="varname">N</code> je omezení počtu 
iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor <strong 
class="userinput"><code>[uspech,hodnota,iteratce]</code></strong>, kde <code class="varname">uspech</code> je 
pravdivostní hodnota signalizující úspěch, <code class="varname">hodnota</code> je poslední spočtená hodnota 
a <code class="varname">iterace</code> je počet dokončených ite
 rací.</p></dd><dt><span class="term"><a 
name="gel-function-FindRootSecant"></a>FindRootSecant</span></dt><dd><pre class="synopsis">FindRootSecant 
(f,a,b,TOL,N)</pre><p>Najít kořen funkce pomocí metody sečen. <code class="varname">a</code> a <code 
class="varname">b</code> je počáteční odhad intervalu, <strong class="userinput"><code>f(a)</code></strong> a 
<strong class="userinput"><code>f(b)</code></strong> by měly mít opačná znaménka. <code 
class="varname">TOL</code> je požadovaná tolerance a <code class="varname">N</code> je omezení počtu iterací, 
které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor <strong 
class="userinput"><code>[uspech,hodnota,iteratce]</code></strong>, kde <code class="varname">uspech</code> je 
pravdivostní hodnota signalizující úspěch, <code class="varname">hodnota</code> je poslední spočtená hodnota 
a <code class="varname">iterace</code> je počet dokončených iterací.</p></dd><dt><span class="term"><a na
 me="gel-function-HalleysMethod"></a>HalleysMethod</span></dt><dd><pre class="synopsis">HalleysMethod 
(f,df,ddf,odhad,epsilon,maxn)</pre><p>Najde nuly pomocí Halleyovy metody. <code class="varname">f</code> je 
funkce, <code class="varname">df</code> je její derivace a <code class="varname">ddf</code> její druhá 
derivace. <code class="varname">odhad</code> je počáteční odhad. Funkce vrací výsledek po dvou úspěšných 
hodnotách, které každá spadají do <code class="varname">epsilon</code> nebo po <code 
class="varname">maxn</code> pokusech, v kterémžto případě vrací <code class="constant">null</code>, což značí 
selhání.</p><p>Viz také <a class="link" href="ch11s13.html#gel-function-NewtonsMethod"><code 
class="function">NewtonsMethod</code></a> a <a class="link" 
href="ch11s19.html#gel-function-SymbolicDerivative"><code 
class="function">SymbolicDerivative</code></a>.</p><p>Příklad vyhledání druhé odmocniny z 10: </p><pre 
class="screen"><code class=
 "prompt">genius&gt;</code> <strong 
class="userinput"><code>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</code></strong>
+</pre><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://en.wikipedia.org/wiki/Halley%27s_method"; target="_top">Wikipedia</a> (text je v 
angličtině).</p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-NewtonsMethod"></a>NewtonsMethod</span></dt><dd><pre class="synopsis">NewtonsMethod 
(f,df,odhad,epsilon,maxn)</pre><p>Najde nuly pomocí metody tečen (Newtonovy metody). <code 
class="varname">f</code> je funkce a <code class="varname">df</code> je její derivace. <code 
class="varname">odhad</code> je počáteční odhad. Funkce vrací výsledek po dvou úspěšných hodnotách, které 
každá spadají do <code class="varname">epsilon</code> nebo po <code class="varname">maxn</code> pokusech, v 
kterémžto případě vrací <code class="constant">null</code>, což značí selhání.</p><p>Viz také <a class="link" 
href="ch11s15.html#gel-function-NewtonsMethodPoly"><code class="function">NewtonsMethodPoly</code></a> a <
 a class="link" href="ch11s19.html#gel-function-SymbolicDerivative"><code 
class="function">SymbolicDerivative</code></a>.</p><p>Příklad vyhledání druhé odmocniny z 10: </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</code></strong>
+</pre><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Metoda_te%C4%8Den"; target="_top">Wikipedia</a>.</p><p>Verze 1.0.18 a 
novější.</p></dd><dt><span class="term"><a 
name="gel-function-PolynomialRoots"></a>PolynomialRoots</span></dt><dd><pre class="synopsis">PolynomialRoots 
(p)</pre><p>Vypočítat kořeny polynomu (1. až 4. stupně) pomocí jedné z rovnic pro takovéto polynomy. Polynom 
by měl být zadán jako vektor koeficientů. Tj. <strong class="userinput"><code>4*x^3 + 2*x + 1</code></strong> 
odpovídá vektoru <strong class="userinput"><code>[1,2,0,4]</code></strong>. Vrací sloupcový vektor 
řešení.</p><p>Funkce volá <a class="link" 
href="ch11s13.html#gel-function-QuadraticFormula">QuadraticFormula</a>, <a class="link" 
href="ch11s13.html#gel-function-CubicFormula">CubicFormula</a> a <a class="link" 
href="ch11s13.html#gel-function-QuarticFormula">QuarticFormula</a>.</p></dd><dt><span class="term"><a 
name="gel-fu
 nction-QuadraticFormula"></a>QuadraticFormula</span></dt><dd><pre class="synopsis">QuadraticFormula 
(p)</pre><p>Vypočítat kořeny kvadratického (2. stupně) polynomu pomocí kvadratické rovnice. Polynom by měl 
být zadán jako vektor koeficientů. Tj. <strong class="userinput"><code>3*x^2 + 2*x + 1</code></strong> 
odpovídá vektoru <strong class="userinput"><code>[1,2,3]</code></strong>. Vrací sloupcový vektor dvou 
řešení.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/QuadraticFormula"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/QuadraticFormula.html"; target="_top">Mathworld</a> (text je 
v angličtině) a <a class="ulink" href="https://en.wikipedia.org/wiki/Quadratic_formula"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-QuarticFormula"></a>QuarticFormula</span></dt><dd><pre class="synopsis">Qua
 rticFormula (p)</pre><p>Vypočítat kořeny kvartického (4. stupně) polynomu pomocí kvartické rovnice. Polynom 
by měl být zadán jako vektor koeficientů. Tj. <strong class="userinput"><code>5*x^4 + 2*x + 1</code></strong> 
odpovídá vektoru <strong class="userinput"><code>[1,2,0,0,5]</code></strong>. Vrací sloupcový vektor čtyř 
řešení.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://planetmath.org/QuarticFormula"; target="_top">Planetmath</a> (text je v angličtině), <a 
class="ulink" href="http://mathworld.wolfram.com/QuarticEquation.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://en.wikipedia.org/wiki/Quartic_equation"; 
target="_top">Wikipedia</a> (text je v angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-RungeKutta"></a>RungeKutta</span></dt><dd><pre class="synopsis">RungeKutta 
(f,x0,y0,x1,n)</pre><p>Použít klasickou neadaptivní Rungeho-Kuttovu metodu čtvrtého �
 �ádu k numerickému řešení y'=f(x,y) pro počáteční <code class="varname">x0</code>, <code 
class="varname">y0</code> měnící se do <code class="varname">x1</code> s přírůstky <code 
class="varname">n</code>, vrací <code class="varname">y</code> v <code 
class="varname">x1</code>.</p><p>Systémy je možné vyřešit jednoduše tak, že <code class="varname">y</code> 
musí být všude (sloupcový) vektor. To znamená, že <code class="varname">y0</code> může být vektor v 
případech, kdy by <code class="varname">f</code> mělo přebírat <code class="varname">x</code> a vektor stejné 
velikosti pro druhý argument a mělo by vracet vektor stejné velikosti.</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/Runge-KuttaMethod.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Numerick%C3%A9_%C5%99e%C5%A1en%C3%AD_oby%C4%8Dejn%C3%BDch_diferenci%C3%A1ln%C3
 %ADch_rovnic#Metody_Runge-Kutta" target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-RungeKuttaFull"></a>RungeKuttaFull</span></dt><dd><pre class="synopsis">RungeKuttaFull 
(f,x0,y0,x1,n)</pre><p>Použít klasickou neadaptivní metodu Runge-Kutta čtvrtého řádu k numerickému řešení 
y'=f(x,y) pro počáteční <code class="varname">x0</code>, <code class="varname">y0</code> měnící se do <code 
class="varname">x1</code> s přírůstky <code class="varname">n</code> a vrátit matici <strong 
class="userinput"><code>n+1</code></strong> krát 2 s hodnotami <code class="varname">x</code> a <code 
class="varname">y</code>. Vhodné pro zapojení do <a class="link" 
href="ch11s20.html#gel-function-LinePlotDrawLine">LinePlotDrawLine</a> nebo <a class="link" 
href="ch11s20.html#gel-function-LinePlotDrawPoints">LinePlotDrawPoints</a>.</p><p>Příklad: </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong class="userinput"><code>LinePlot
 Clear();</code></strong>
 <code class="prompt">genius&gt;</code> <strong class="userinput"><code>line = 
RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponenciální 
vývoj");</code></strong>
 </pre><p>Systémy je možné vyřešit jednoduše tak, že <code class="varname">y</code> musí být všude 
(sloupcový) vektor. To znamená, že <code class="varname">y0</code> může být vektor v případech, kdy by <code 
class="varname">f</code> mělo přebírat <code class="varname">x</code> a vektor stejné velikosti pro druhý 
argument a mělo by vracet vektor stejné velikosti.</p><p>Výstup pro systém je nicméně matice n krát 2 s 
druhou položkou v podobě vektoru. Když si přejete vykreslit čáru, ujistěte se, že používáte řádkové vektory a 
pak převeďte matici na vektor pomocí <a class="link" 
href="ch11s08.html#gel-function-ExpandMatrix">ExpandMatrix</a> a vyberte si pravý sloupec. Například: 
</p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotClear();</code></strong>
@@ -80,8 +22,4 @@
 <code class="prompt">genius&gt;</code> <strong class="userinput"><code>LinePlotWindow = 
[0,10,-2,2];</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine(firstline,"color","blue","legend","První");</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Druhý");</code></strong>
-</pre><p>
-           See
-           <a class="ulink" href="http://mathworld.wolfram.com/Runge-KuttaMethod.html"; 
target="_top">Mathworld</a> or
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Runge-Kutta_methods"; 
target="_top">Wikipedia</a> for more information.
-         </p><p>Verze 1.0.10 a novější.</p></dd></dl></div></div><div class="navfooter"><hr><table 
width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch11s12.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s14.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Funkce </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Statistika</td></tr></table></div></body></html>
+</pre><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/Runge-KuttaMethod.html"; target="_top">Mathworld</a> (text je v angličtině) 
a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Numerick%C3%A9_%C5%99e%C5%A1en%C3%AD_oby%C4%8Dejn%C3%BDch_diferenci%C3%A1ln%C3%ADch_rovnic#Metody_Runge-Kutta";
 target="_top">Wikipedia</a>.</p><p>Verze 1.0.10 a novější.</p></dd></dl></div></div><div 
class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a 
accesskey="p" href="ch11s12.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s14.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Funkce </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Statistika</td></tr></table>
 </div></body></html>
diff --git a/help/cs/html/ch11s14.html b/help/cs/html/ch11s14.html
index a6f3379..850e4b9 100644
--- a/help/cs/html/ch11s14.html
+++ b/help/cs/html/ch11s14.html
@@ -1,26 +1 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Statistika</title><meta name="generator" content="DocBook XSL Stylesheets 
V1.79.1"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" 
href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" href="ch11s13.html" title="Řešení 
rovnic"><link rel="next" href="ch11s15.html" title="Polynomy"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Statistika</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s13.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s15.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class="title" s
 tyle="clear: both"><a name="genius-gel-function-list-statistics"></a>Statistika</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-Average"></a>Average</span></dt><dd><pre class="synopsis">Average (m)</pre><p>Alternativní 
názvy: <code class="function">average</code><code class="function">Mean</code><code 
class="function">mean</code></p><p>Calculate average (the arithmetic mean) of an entire matrix.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Mean"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/ArithmeticMean.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-GaussDistribution"></a>GaussDistribution</span></dt><dd><pre 
class="synopsis">GaussDistribution (x,sigma)</pre><p>Integrál Gaussovy funkce od 0 do <code 
class="varname">x</code> (oblast pod normální křivkou).</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Normal_distribution"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/NormalDistribution.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-GaussFunction"></a>GaussFunction</span></dt><dd><pre class="synopsis">GaussFunction 
(x,sigma)</pre><p>Normalizovaného Gaussova funkce rozdělení (normální křivka).</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Normal_distribution"; 
target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/NormalDistribution.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-Median"></a>Median</span></dt><dd><pre 
class="synopsis">Median (m)</pre><p>Alternativní názvy: <code class="function">median</code></p><p>Vypočítat 
medián z celé matice.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Median"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/StatisticalMedian.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-PopulationStandardDeviation"></a>PopulationStandardDeviation</span></dt><dd><pre 
class="synopsis">PopulationStandardDeviation (m)</pre><p>Alternativní názvy: <code 
class="function">stdevp</code></p><p>Spočítat standardní odchylku souboru celé matice.</p></dd><dt><span 
class="term"><a name="gel-function-RowAverage"></a>RowAverage</span></dt><dd><pre class="synopsis">RowAverage 
(m)</pre><p>Alternativní názvy: <code class="function">RowMean</code></p><p>Calculate average of each row in 
a matrix.  That is, compute the
-         arithmetic mean.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Mean"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/ArithmeticMean.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a name="gel-function-RowMedian"></a>RowMedian</span></dt><dd><pre 
class="synopsis">RowMedian (m)</pre><p>Vypočítat medián každého řádku v matici a vrátit sloupcový vektor 
mediánů.</p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Median"; target="_top">Wikipedia</a> or
-           <a class="ulink" href="http://mathworld.wolfram.com/StatisticalMedian.html"; 
target="_top">Mathworld</a> for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-RowPopulationStandardDeviation"></a>RowPopulationStandardDeviation</span></dt><dd><pre 
class="synopsis">RowPopulationStandardDeviation (m)</pre><p>Alternativní názvy: <code 
class="function">rowstdevp</code></p><p>Spočítat standardní odchylku souboru řádků matice a vrátit svislý 
vektor.</p></dd><dt><span class="term"><a 
name="gel-function-RowStandardDeviation"></a>RowStandardDeviation</span></dt><dd><pre 
class="synopsis">RowStandardDeviation (m)</pre><p>Alternativní názvy: <code 
class="function">rowstdev</code></p><p>Spočítat standardní odchylku řádků matice a vrátit svislý 
vektor.</p></dd><dt><span class="term"><a 
name="gel-function-StandardDeviation"></a>StandardDeviation</span></dt><dd><pre 
class="synopsis">StandardDeviation (m)</pre><p>Alternativní názvy: <code 
class="function">stdev</code></p><p>Spočítat standardní odchylku celé matice.</p></dd></dl></div></div><div 
class="navfooter"><hr><
 table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch11s13.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s15.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Řešení rovnic </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Polynomy</td></tr></table></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Statistika</title><meta name="generator" content="DocBook XSL Stylesheets 
V1.79.1"><link rel="home" href="index.html" title="Příručka k aplikaci Genius"><link rel="up" 
href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" href="ch11s13.html" title="Řešení 
rovnic"><link rel="next" href="ch11s15.html" title="Polynomy"></head><body bgcolor="white" text="black" 
link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation 
header"><tr><th colspan="3" align="center">Statistika</th></tr><tr><td width="20%" align="left"><a 
accesskey="p" href="ch11s13.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam 
funkcí GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s15.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class="title" s
 tyle="clear: both"><a name="genius-gel-function-list-statistics"></a>Statistika</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-Average"></a>Average</span></dt><dd><pre class="synopsis">Average (m)</pre><p>Alternativní 
názvy: <code class="function">average</code><code class="function">Mean</code><code 
class="function">mean</code></p><p>Vypočítat průměr (aritmetickou střední hodnotu) z celé matice.</p><p>Více 
informací najdete v encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/ArithmeticMean.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://en.wikipedia.org/wiki/Mean"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-GaussDistribution"></a>GaussDistribution</span></dt><dd><pre 
class="synopsis">GaussDistribution (x,sigma)</pre><p>Integrál Gaussovy funkce od 0 do <code class="varna
 me">x</code> (oblast pod normální křivkou).</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/NormalDistribution.html"; target="_top">Mathworld</a> (text je v 
angličtině) a <a class="ulink" href="https://cs.wikipedia.org/wiki/Norm%C3%A1ln%C3%AD_rozd%C4%9Blen%C3%AD"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-GaussFunction"></a>GaussFunction</span></dt><dd><pre class="synopsis">GaussFunction 
(x,sigma)</pre><p>Normalizovaného Gaussova funkce rozdělení (normální křivka).</p><p>Více informací najdete v 
encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/NormalDistribution.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Norm%C3%A1ln%C3%AD_rozd%C4%9Blen%C3%AD"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-Median"></a>Median</span></dt><dd><pre class="synopsis">Media
 n (m)</pre><p>Alternativní názvy: <code class="function">median</code></p><p>Vypočítat medián z celé 
matice.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/StatisticalMedian.html"; target="_top">Mathworld</a> (text je v angličtině) 
a <a class="ulink" href="https://cs.wikipedia.org/wiki/Medi%C3%A1n"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-PopulationStandardDeviation"></a>PopulationStandardDeviation</span></dt><dd><pre 
class="synopsis">PopulationStandardDeviation (m)</pre><p>Alternativní názvy: <code 
class="function">stdevp</code></p><p>Spočítat standardní odchylku souboru celé matice.</p></dd><dt><span 
class="term"><a name="gel-function-RowAverage"></a>RowAverage</span></dt><dd><pre class="synopsis">RowAverage 
(m)</pre><p>Alternativní názvy: <code class="function">RowMean</code></p><p>Vypočítat průměr každého řádku v 
matici. Tj. vypočitat aritmetickou střed
 ní hodnotu.</p><p>Více informací najdete v encyklopediích <a class="ulink" 
href="http://mathworld.wolfram.com/ArithmeticMean.html"; target="_top">Mathworld</a> (text je v angličtině) a 
<a class="ulink" href="https://en.wikipedia.org/wiki/Mean"; target="_top">Wikipedia</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a 
name="gel-function-RowMedian"></a>RowMedian</span></dt><dd><pre class="synopsis">RowMedian 
(m)</pre><p>Vypočítat medián každého řádku v matici a vrátit sloupcový vektor mediánů.</p><p>Více informací 
najdete v encyklopediích <a class="ulink" href="http://mathworld.wolfram.com/StatisticalMedian.html"; 
target="_top">Mathworld</a> (text je v angličtině) a <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Medi%C3%A1n"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a 
name="gel-function-RowPopulationStandardDeviation"></a>RowPopulationStandardDeviation</span></dt><dd><pre 
class="synopsis">RowPopulationStandardDeviation 
 (m)</pre><p>Alternativní názvy: <code class="function">rowstdevp</code></p><p>Spočítat standardní odchylku 
souboru řádků matice a vrátit svislý vektor.</p></dd><dt><span class="term"><a 
name="gel-function-RowStandardDeviation"></a>RowStandardDeviation</span></dt><dd><pre 
class="synopsis">RowStandardDeviation (m)</pre><p>Alternativní názvy: <code 
class="function">rowstdev</code></p><p>Spočítat standardní odchylku řádků matice a vrátit svislý 
vektor.</p></dd><dt><span class="term"><a 
name="gel-function-StandardDeviation"></a>StandardDeviation</span></dt><dd><pre 
class="synopsis">StandardDeviation (m)</pre><p>Alternativní názvy: <code 
class="function">stdev</code></p><p>Spočítat standardní odchylku celé matice.</p></dd></dl></div></div><div 
class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a 
accesskey="p" href="ch11s13.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u"
  href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s15.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Řešení rovnic </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Polynomy</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s15.html b/help/cs/html/ch11s15.html
index 4f2364a..2753641 100644
--- a/help/cs/html/ch11s15.html
+++ b/help/cs/html/ch11s15.html
@@ -1,5 +1,2 @@
 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Polynomy</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka 
k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" 
href="ch11s14.html" title="Statistika"><link rel="next" href="ch11s16.html" title="Teorie 
množin"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div 
class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" 
align="center">Polynomy</th></tr><tr><td width="20%" align="left"><a accesskey="p" 
href="ch11s14.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam funkcí 
GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s16.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class="title" style
 ="clear: both"><a name="genius-gel-function-list-polynomials"></a>Polynomy</h2></div></div></div><div 
class="variablelist"><dl class="variablelist"><dt><span class="term"><a 
name="gel-function-AddPoly"></a>AddPoly</span></dt><dd><pre class="synopsis">AddPoly (p1,p2)</pre><p>Sečíst 
dva polynomy (vektory).</p></dd><dt><span class="term"><a 
name="gel-function-DividePoly"></a>DividePoly</span></dt><dd><pre class="synopsis">DividePoly 
(p,q,&amp;r)</pre><p>Podělit dva polynomy (jako vektory) pomocí dlouhého dělení. Vrátit rozdíl dvou polynomů. 
Volitelný argument <code class="varname">r</code> se použije k vrácení zbytku. Zbytek bude mít nižší řád, než 
polynom <code class="varname">q</code>.</p><p>Více informací najdete v encyklopedii <a class="ulink" 
href="http://planetmath.org/PolynomialLongDivision"; target="_top">Planetmath</a> (text je v 
angličtině).</p></dd><dt><span class="term"><a name="gel-function-IsPoly"></a>IsPoly</span></dt><dd><pre 
class="synop
 sis">IsPoly (p)</pre><p>Zkontrolovat, zda je vektor použitelný jako polynom.</p></dd><dt><span 
class="term"><a name="gel-function-MultiplyPoly"></a>MultiplyPoly</span></dt><dd><pre 
class="synopsis">MultiplyPoly (p1,p2)</pre><p>Vynásobit dva polynomy (jako vektory).</p></dd><dt><span 
class="term"><a name="gel-function-NewtonsMethodPoly"></a>NewtonsMethodPoly</span></dt><dd><pre 
class="synopsis">NewtonsMethodPoly (poly,odhad,epsilon,maxn)</pre><p>Najde kořeny polynomu pomocí metody 
tečen (Newtonovy metody). <code class="varname">poly</code> je polynom v podobě vektoru a <code 
class="varname">odhad</code> je počáteční odhad. Funkce vrací výsledek po dvou úspěšných hodnotách, které 
každá spadají do <code class="varname">epsilon</code> nebo po <code class="varname">maxn</code> pokusech, v 
kterémžto případě vrací <code class="constant">null</code>, což značí selhání.</p><p>Viz také <a class="link" 
href="ch11s13.html#gel-function-NewtonsMethod"><co
 de class="function">NewtonsMethod</code></a>.</p><p>Příklad vyhledání druhé odmocniny z 10: </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</code></strong>
-</pre><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/Newtons_method"; target="_top">Wikipedia</a> 
for more information.
-         </p></dd><dt><span class="term"><a 
name="gel-function-Poly2ndDerivative"></a>Poly2ndDerivative</span></dt><dd><pre 
class="synopsis">Poly2ndDerivative (p)</pre><p>Vypočítat druhou derivaci polynomu (jako 
vektoru).</p></dd><dt><span class="term"><a 
name="gel-function-PolyDerivative"></a>PolyDerivative</span></dt><dd><pre class="synopsis">PolyDerivative 
(p)</pre><p>Derivovat polynom (jako vektor).</p></dd><dt><span class="term"><a 
name="gel-function-PolyToFunction"></a>PolyToFunction</span></dt><dd><pre class="synopsis">PolyToFunction 
(p)</pre><p>Vytvořit funkci z polynomu (jako vektoru).</p></dd><dt><span class="term"><a 
name="gel-function-PolyToString"></a>PolyToString</span></dt><dd><pre class="synopsis">PolyToString 
(p,prom...)</pre><p>Vytvořit řetězec z polynomu (jako vektoru).</p></dd><dt><span class="term"><a 
name="gel-function-SubtractPoly"></a>SubtractPoly</span></dt><dd><pre class="synopsis">SubtractPoly 
(p1,p2)</pre><p>Odečíst dva polynomy (jako vektory).<
 /p></dd><dt><span class="term"><a name="gel-function-TrimPoly"></a>TrimPoly</span></dt><dd><pre 
class="synopsis">TrimPoly (p)</pre><p>Odstranit nuly z polynomu (jako vektoru).</p></dd></dl></div></div><div 
class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a 
accesskey="p" href="ch11s14.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s16.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Statistika </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Teorie množin</td></tr></table></div></body></html>
+</pre><p>Více informací najdete v encyklopedii <a class="ulink" 
href="https://cs.wikipedia.org/wiki/Metoda_te%C4%8Den"; target="_top">Wikipedia</a>.</p></dd><dt><span 
class="term"><a name="gel-function-Poly2ndDerivative"></a>Poly2ndDerivative</span></dt><dd><pre 
class="synopsis">Poly2ndDerivative (p)</pre><p>Vypočítat druhou derivaci polynomu (jako 
vektoru).</p></dd><dt><span class="term"><a 
name="gel-function-PolyDerivative"></a>PolyDerivative</span></dt><dd><pre class="synopsis">PolyDerivative 
(p)</pre><p>Derivovat polynom (jako vektor).</p></dd><dt><span class="term"><a 
name="gel-function-PolyToFunction"></a>PolyToFunction</span></dt><dd><pre class="synopsis">PolyToFunction 
(p)</pre><p>Vytvořit funkci z polynomu (jako vektoru).</p></dd><dt><span class="term"><a 
name="gel-function-PolyToString"></a>PolyToString</span></dt><dd><pre class="synopsis">PolyToString 
(p,prom...)</pre><p>Vytvořit řetězec z polynomu (jako vektoru).</p></dd><dt><span class="term"><a name="gel
 -function-SubtractPoly"></a>SubtractPoly</span></dt><dd><pre class="synopsis">SubtractPoly 
(p1,p2)</pre><p>Odečíst dva polynomy (jako vektory).</p></dd><dt><span class="term"><a 
name="gel-function-TrimPoly"></a>TrimPoly</span></dt><dd><pre class="synopsis">TrimPoly (p)</pre><p>Odstranit 
nuly z polynomu (jako vektoru).</p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" 
summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="ch11s14.html">Předcházející</a> </td><td width="20%" align="center"><a accesskey="u" 
href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a accesskey="n" 
href="ch11s16.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top">Statistika </td><td 
width="20%" align="center"><a accesskey="h" href="index.html">Domů</a></td><td width="40%" align="right" 
valign="top"> Teorie množin</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s18.html b/help/cs/html/ch11s18.html
index 870c50b..f89605a 100644
--- a/help/cs/html/ch11s18.html
+++ b/help/cs/html/ch11s18.html
@@ -1,45 +1,13 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Různé</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka 
k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" 
href="ch11s17.html" title="Komutativní algebra"><link rel="next" href="ch11s19.html" title="Symbolické 
operace"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div 
class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" 
align="center">Různé</th></tr><tr><td width="20%" align="left"><a accesskey="p" 
href="ch11s17.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam funkcí 
GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s19.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class=
 "title" style="clear: both"><a 
name="genius-gel-function-list-miscellaneous"></a>Různé</h2></div></div></div><div class="variablelist"><dl 
class="variablelist"><dt><span class="term"><a 
name="gel-function-ASCIIToString"></a>ASCIIToString</span></dt><dd><pre class="synopsis">ASCIIToString 
(vektor)</pre><p>Convert a vector of ASCII values to a string.
-                 See also
-                 <a class="link" href="ch11s18.html#gel-function-StringToASCII"><code 
class="function">StringToASCII</code></a>.
-          </p><p>
-           Example:
-          </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>ASCIIToString([97,98,99])</code></strong>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Různé</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Příručka 
k aplikaci Genius"><link rel="up" href="ch11.html" title="Kapitola 11. Seznam funkcí GEL"><link rel="prev" 
href="ch11s17.html" title="Komutativní algebra"><link rel="next" href="ch11s19.html" title="Symbolické 
operace"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div 
class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" 
align="center">Různé</th></tr><tr><td width="20%" align="left"><a accesskey="p" 
href="ch11s17.html">Předcházející</a> </td><th width="60%" align="center">Kapitola 11. Seznam funkcí 
GEL</th><td width="20%" align="right"> <a accesskey="n" 
href="ch11s19.html">Další</a></td></tr></table><hr></div><div class="sect1"><div 
class="titlepage"><div><div><h2 class=
 "title" style="clear: both"><a 
name="genius-gel-function-list-miscellaneous"></a>Různé</h2></div></div></div><div class="variablelist"><dl 
class="variablelist"><dt><span class="term"><a 
name="gel-function-ASCIIToString"></a>ASCIIToString</span></dt><dd><pre class="synopsis">ASCIIToString 
(vektor)</pre><p>Převést vektor hodnot ASCII na řetězec. Viz také <a class="link" 
href="ch11s18.html#gel-function-StringToASCII"><code 
class="function">StringToASCII</code></a>.</p><p>Příklad: </p><pre class="screen"><code 
class="prompt">genius&gt;</code> <strong class="userinput"><code>ASCIIToString([97,98,99])</code></strong>
 = "abc"
-</pre><p>
-          </p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/ASCII"; target="_top">Wikipedia</a> for more 
information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-AlphabetToString"></a>AlphabetToString</span></dt><dd><pre 
class="synopsis">AlphabetToString (vektor,abeceda)</pre><p>Convert a vector of 0-based alphabet values 
(positions in the alphabet string) to a string.  A <code class="constant">null</code> vector results in an 
empty string.
-                 See also
-                 <a class="link" href="ch11s18.html#gel-function-StringToAlphabet"><code 
class="function">StringToAlphabet</code></a>.
-          </p><p>
-           Examples:
-          </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>AlphabetToString([1,2,3,0,0],"abcd")</code></strong>
+</pre><p>Více informací najdete v encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/ASCII"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-AlphabetToString"></a>AlphabetToString</span></dt><dd><pre 
class="synopsis">AlphabetToString (vektor,abeceda)</pre><p>Převést vektor na hodnoty indexů písmen indexované 
od 0 (nacházejících se v textovém řetězci) na řetězec. Vektor <code class="constant">null</code> vede na 
prázdný řetězec. Viz také <a class="link" href="ch11s18.html#gel-function-StringToAlphabet"><code 
class="function">StringToAlphabet</code></a>.</p><p>Příklady: </p><pre class="screen"><code 
class="prompt">genius&gt;</code> <strong 
class="userinput"><code>AlphabetToString([1,2,3,0,0],"abcd")</code></strong>
 = "bcdaa"
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>AlphabetToString(null,"abcd")</code></strong>
 = ""
-</pre><p>
-          </p></dd><dt><span class="term"><a 
name="gel-function-StringToASCII"></a>StringToASCII</span></dt><dd><pre class="synopsis">StringToASCII 
(retezec)</pre><p>Convert a string to a (row) vector of ASCII values.
-                 See also
-                 <a class="link" href="ch11s18.html#gel-function-ASCIIToString"><code 
class="function">ASCIIToString</code></a>.
-          </p><p>
-           Example:
-          </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>StringToASCII("abc")</code></strong>
+</pre></dd><dt><span class="term"><a name="gel-function-StringToASCII"></a>StringToASCII</span></dt><dd><pre 
class="synopsis">StringToASCII (retezec)</pre><p>Převést řetězec na (řádkový) vektor hodnot ASCII. Viz také 
<a class="link" href="ch11s18.html#gel-function-ASCIIToString"><code 
class="function">ASCIIToString</code></a>.</p><p>Příklad: </p><pre class="screen"><code 
class="prompt">genius&gt;</code> <strong class="userinput"><code>StringToASCII("abc")</code></strong>
 = [97, 98, 99]
-</pre><p>
-          </p><p>
-           See
-           <a class="ulink" href="https://en.wikipedia.org/wiki/ASCII"; target="_top">Wikipedia</a> for more 
information.
-          </p></dd><dt><span class="term"><a 
name="gel-function-StringToAlphabet"></a>StringToAlphabet</span></dt><dd><pre 
class="synopsis">StringToAlphabet (retezec,abeceda)</pre><p>Convert a string to a (row) vector of 0-based 
alphabet values
-                 (positions in the alphabet string), -1's for unknown letters.
-                 An empty string results in a <code class="constant">null</code>.
-                 See also
-                 <a class="link" href="ch11s18.html#gel-function-AlphabetToString"><code 
class="function">AlphabetToString</code></a>.
-          </p><p>
-           Examples:
-          </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>StringToAlphabet("cca","abcd")</code></strong>
+</pre><p>Více informací najdete v encyklopedii <a class="ulink" href="https://cs.wikipedia.org/wiki/ASCII"; 
target="_top">Wikipedia</a>.</p></dd><dt><span class="term"><a 
name="gel-function-StringToAlphabet"></a>StringToAlphabet</span></dt><dd><pre 
class="synopsis">StringToAlphabet (retezec,abeceda)</pre><p>Převést řetězec na (řádkový) vektor na hodnoty 
indexů písmen indexované od 0 (nacházejících se v textovém řetězci), případně -1 pro neznámá písmena. Prázdný 
řetězec vede na <code class="constant">null</code>. Viz také <a class="link" 
href="ch11s18.html#gel-function-AlphabetToString"><code 
class="function">AlphabetToString</code></a>.</p><p>Příklady: </p><pre class="screen"><code 
class="prompt">genius&gt;</code> <strong 
class="userinput"><code>StringToAlphabet("cca","abcd")</code></strong>
 = [2, 2, 0]
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>StringToAlphabet("ccag","abcd")</code></strong>
 = [2, 2, 0, -1]
-</pre><p>
-          </p></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s17.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s19.html">Další</a></td></tr><tr><td width="40%" align="left" 
valign="top">Komutativní algebra </td><td width="20%" align="center"><a accesskey="h" 
href="index.html">Domů</a></td><td width="40%" align="right" valign="top"> Symbolické 
operace</td></tr></table></div></body></html>
+</pre></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation 
footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s17.html">Předcházející</a> </td><td 
width="20%" align="center"><a accesskey="u" href="ch11.html">Nahoru</a></td><td width="40%" align="right"> <a 
accesskey="n" href="ch11s19.html">Další</a></td></tr><tr><td width="40%" align="left" 
valign="top">Komutativní algebra </td><td width="20%" align="center"><a accesskey="h" 
href="index.html">Domů</a></td><td width="40%" align="right" valign="top"> Symbolické 
operace</td></tr></table></div></body></html>
diff --git a/help/cs/html/ch11s20.html b/help/cs/html/ch11s20.html
index dc380ce..807ed7e 100644
--- a/help/cs/html/ch11s20.html
+++ b/help/cs/html/ch11s20.html
@@ -2,24 +2,18 @@
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>ExportPlot("/složka/soubor","eps")</code></strong>
 </pre><p>Verze 1.0.16 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlot"></a>LinePlot</span></dt><dd><pre class="synopsis">LinePlot 
(fce1,fce2,fce3,...)</pre><pre class="synopsis">LinePlot (fce1,fce2,fce3,x1,x2)</pre><pre 
class="synopsis">LinePlot (fce1,fce2,fce3,x1,x2,y1,y2)</pre><pre class="synopsis">LinePlot 
(fce1,fce2,fce3,[x1,x2])</pre><pre class="synopsis">LinePlot (fce1,fce2,fce3,[x1,x2,y1,y2])</pre><p>Vykreslí 
funkci (nebo několik funkcí) v podobě čárového grafu. Prvních (až 10) argumentů jsou funkce, volitelně můžete 
zadat meze vykreslovaného okna jako souřadnice <code class="varname">x1</code>, <code 
class="varname">x2</code>, <code class="varname">y1</code>, <code class="varname">y2</code>. Pokud žádné meze 
nejsou zadány, použijí se aktuálně nastavené meze (viz <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">LinePlotWindow</code></a>). Pokud 
nejsou zadány jen meze v ose y, fu
 nkce se propočítají a vezme se jejich minimum a maximu.</p><p>Parametr <a class="link" 
href="ch11s03.html#gel-function-LinePlotDrawLegends"><code class="function">LinePlotDrawLegends</code></a> 
ovládá vykreslování legendy.</p><p>Příklady: </p><pre class="screen"><code class="prompt">genius&gt;</code> 
<strong class="userinput"><code>LinePlot(sin,cos)</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlot(`(x)=x^2,-1,1,0,1)</code></strong>
-</pre></dd><dt><span class="term"><a name="gel-function-LinePlotClear"></a>LinePlotClear</span></dt><dd><pre 
class="synopsis">LinePlotClear ()</pre><p>Zobrazí okno pro vykreslování čar a vymaže funkce a ostatní čáry, 
které jsou v něm vykresleny.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotCParametric"></a>LinePlotCParametric</span></dt><dd><pre 
class="synopsis">LinePlotCParametric (fce,...)</pre><pre class="synopsis">LinePlotCParametric 
(fce,t1,t2,tprirust)</pre><pre class="synopsis">LinePlotCParametric 
(fce,t1,t2,tprirust,x1,x2,y1,y2)</pre><p>Vykreslit parametrickou funkci komplexní hodnoty v podobě čárového 
grafu. Jako první se předává funkce, která vrací <code class="computeroutput">x+iy</code>, následovaná 
volitelnými omezeními <strong class="userinput"><code>t1,t2,tprirust</code></strong> pro <code 
class="varname">t</code> a pak mezemi v podobě <strong 
class="userinput"><code>x1,x2,y1,y2</code></strong>.</p><p>Pokud žádné me
 ze nejsou zadány, použijí se aktuálně nastavené meze (viz <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">LinePlotWindow</code></a>). Místo mezí 
x a y je možné zadat řetězec "fit" a meze se pak zvolí podle maximálního rozsahu grafu.</p><p>Parametr <a 
class="link" href="ch11s03.html#gel-function-LinePlotDrawLegends"><code 
class="function">LinePlotDrawLegends</code></a> ovládá vykreslování legendy.</p></dd><dt><span 
class="term"><a name="gel-function-LinePlotDrawLine"></a>LinePlotDrawLine</span></dt><dd><pre 
class="synopsis">LinePlotDrawLine (x1,y1,x2,y2,...)</pre><pre class="synopsis">LinePlotDrawLine 
(v,...)</pre><p>Vykreslit čáru z <code class="varname">x1</code>,<code class="varname">y1</code> do <code 
class="varname">x2</code>,<code class="varname">y2</code>. <code class="varname">x1</code>,<code 
class="varname">y1</code>, <code class="varname">x2</code>,<code class="varname">y2</code> může být pro delší 
lom
 ené čáry nahrazeno maticí <code class="varname">n</code> krát 2. Připadně vektor <code 
class="varname">v</code> může být sloupcový vektor komplexních čísel, což je matice <code 
class="varname">n</code> krát 1 a jednotlivá komplexní čísla jsou pak považována za body v 
rovině.</p><p>Mohou být přidány dodatečné parametry, které určují barvu, tloušťku a šipky čáry a vykreslení 
okna nebo legendy. Stačí přidat argument v podobě řetězce <strong 
class="userinput"><code>"color"</code></strong>, <strong class="userinput"><code>"thickness"</code></strong>, 
<strong class="userinput"><code>"window"</code></strong>, <strong 
class="userinput"><code>"arrow"</code></strong> nebo <strong class="userinput"><code>"legend"</code></strong> 
a za ním určit barvu, tloušťku, okno jako 4prvkový vektor, typ šipky nebo legendu. (Šipka a okno jsou 
podporovány od verze 1.0.6.)</p><p>Pokud je čára považovaná za vyplněný mnohoúhelník, vyplněný dan
 ou barvou, můžete zadat argument <strong class="userinput"><code>"filled"</code></strong>. K dispozici od 
verze 1.0.22.</p><p>Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou 
rozpozná GTK, jako <strong class="userinput"><code>"red"</code></strong>, <strong 
class="userinput"><code>"blue"</code></strong>, <strong class="userinput"><code>"yellow"</code></strong>, 
apod. Nebo druhou možností je zadat barvu ve formátu RGB jako <strong 
class="userinput"><code>"#rgb"</code></strong>, <strong class="userinput"><code>"#rrggbb"</code></strong> 
nebo <strong class="userinput"><code>"#rrrrggggbbbb"</code></strong>, kde r, g a b jsou číslice šestnáctkové 
soustavy červené, zelené a modré složky barvy. A nakonec třetí možností, od verze 1.0.18, je také určení 
barvy vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1, např. 
<strong class="userinput"><code>[1.0,0.5,0.1]</cod
 e></strong>.</p><p>Okno by mělo být zadáno buď obvyklým způsobem jako <strong 
class="userinput"><code>[x1,x2,y1,y2]</code></strong> nebo alternativně může být použit řetězec <strong 
class="userinput"><code>"fit"</code></strong>, v kterémž to případě bude rozsah x určen přesně a rozsah y 
bude nastaven s pětiprocentním přesahem křivky.</p><p>Specifikace šipky by měla být <strong 
class="userinput"><code>"origin"</code></strong> (počátek), <strong 
class="userinput"><code>"end"</code></strong> (konec), <strong class="userinput"><code>"both"</code></strong> 
(obojí) nebo <strong class="userinput"><code>"none"</code></strong> (nic).</p><p>A nakonec legenda, která by 
měla být zadána jako řetězec, který se použije k osvětlení grafu. Samozřejmě jen v případě, že se legenda 
tiskne.</p><p>
-         Examples:
-          </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</code></strong>
+</pre></dd><dt><span class="term"><a name="gel-function-LinePlotClear"></a>LinePlotClear</span></dt><dd><pre 
class="synopsis">LinePlotClear ()</pre><p>Zobrazí okno pro vykreslování čar a vymaže funkce a ostatní čáry, 
které jsou v něm vykresleny.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotCParametric"></a>LinePlotCParametric</span></dt><dd><pre 
class="synopsis">LinePlotCParametric (fce,...)</pre><pre class="synopsis">LinePlotCParametric 
(fce,t1,t2,tprirust)</pre><pre class="synopsis">LinePlotCParametric 
(fce,t1,t2,tprirust,x1,x2,y1,y2)</pre><p>Vykreslit parametrickou funkci komplexní hodnoty v podobě čárového 
grafu. Jako první se předává funkce, která vrací <code class="computeroutput">x+iy</code>, následovaná 
volitelnými omezeními <strong class="userinput"><code>t1,t2,tprirust</code></strong> pro <code 
class="varname">t</code> a pak mezemi v podobě <strong 
class="userinput"><code>x1,x2,y1,y2</code></strong>.</p><p>Pokud žádné me
 ze nejsou zadány, použijí se aktuálně nastavené meze (viz <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">LinePlotWindow</code></a>). Místo mezí 
x a y je možné zadat řetězec "fit" a meze se pak zvolí podle maximálního rozsahu grafu.</p><p>Parametr <a 
class="link" href="ch11s03.html#gel-function-LinePlotDrawLegends"><code 
class="function">LinePlotDrawLegends</code></a> ovládá vykreslování legendy.</p></dd><dt><span 
class="term"><a name="gel-function-LinePlotDrawLine"></a>LinePlotDrawLine</span></dt><dd><pre 
class="synopsis">LinePlotDrawLine (x1,y1,x2,y2,...)</pre><pre class="synopsis">LinePlotDrawLine 
(v,...)</pre><p>Vykreslit čáru z <code class="varname">x1</code>,<code class="varname">y1</code> do <code 
class="varname">x2</code>,<code class="varname">y2</code>. <code class="varname">x1</code>,<code 
class="varname">y1</code>, <code class="varname">x2</code>,<code class="varname">y2</code> může být pro delší 
lom
 ené čáry nahrazeno maticí <code class="varname">n</code> krát 2. Připadně vektor <code 
class="varname">v</code> může být sloupcový vektor komplexních čísel, což je matice <code 
class="varname">n</code> krát 1 a jednotlivá komplexní čísla jsou pak považována za body v 
rovině.</p><p>Mohou být přidány dodatečné parametry, které určují barvu, tloušťku a šipky čáry a vykreslení 
okna nebo legendy. Stačí přidat argument v podobě řetězce <strong 
class="userinput"><code>"color"</code></strong>, <strong class="userinput"><code>"thickness"</code></strong>, 
<strong class="userinput"><code>"window"</code></strong>, <strong 
class="userinput"><code>"arrow"</code></strong> nebo <strong class="userinput"><code>"legend"</code></strong> 
a za ním určit barvu, tloušťku, okno jako 4prvkový vektor, typ šipky nebo legendu. (Šipka a okno jsou 
podporovány od verze 1.0.6.)</p><p>Pokud je čára považovaná za vyplněný mnohoúhelník, vyplněný dan
 ou barvou, můžete zadat argument <strong class="userinput"><code>"filled"</code></strong>. K dispozici od 
verze 1.0.22.</p><p>Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou 
rozpozná GTK, jako <strong class="userinput"><code>"red"</code></strong>, <strong 
class="userinput"><code>"blue"</code></strong>, <strong class="userinput"><code>"yellow"</code></strong>, 
apod. Nebo druhou možností je zadat barvu ve formátu RGB jako <strong 
class="userinput"><code>"#rgb"</code></strong>, <strong class="userinput"><code>"#rrggbb"</code></strong> 
nebo <strong class="userinput"><code>"#rrrrggggbbbb"</code></strong>, kde r, g a b jsou číslice šestnáctkové 
soustavy červené, zelené a modré složky barvy. A nakonec třetí možností, od verze 1.0.18, je také určení 
barvy vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1, např. 
<strong class="userinput"><code>[1.0,0.5,0.1]</cod
 e></strong>.</p><p>Okno by mělo být zadáno buď obvyklým způsobem jako <strong 
class="userinput"><code>[x1,x2,y1,y2]</code></strong> nebo alternativně může být použit řetězec <strong 
class="userinput"><code>"fit"</code></strong>, v kterémž to případě bude rozsah x určen přesně a rozsah y 
bude nastaven s pětiprocentním přesahem křivky.</p><p>Specifikace šipky by měla být <strong 
class="userinput"><code>"origin"</code></strong> (počátek), <strong 
class="userinput"><code>"end"</code></strong> (konec), <strong class="userinput"><code>"both"</code></strong> 
(obojí) nebo <strong class="userinput"><code>"none"</code></strong> (nic).</p><p>A nakonec legenda, která by 
měla být zadána jako řetězec, který se použije k osvětlení grafu. Samozřejmě jen v případě, že se legenda 
tiskne.</p><p>Příklady: </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine(0,0,1,1,"color","blue","thickne
 ss",3)</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine([0,0;1,-1;-1,-1])</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine([0,0;1,1],"arrow","end")</code></strong>
-<code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</code></strong>
+<code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","Řešení")</code></strong>
 <code class="prompt">genius&gt;</code> <strong class="userinput"><code>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</code></strong>
-</pre><p>
-          </p><p>Na rozdíl od většiny ostatních funkcí, u kterých je jedno, jestli je předán sloupcový nebo 
řádkový vektor, při zadávání bodů v podobě vektoru komplexních čísel je kvůli možným nejednoznačnostem nutné 
vždy zadat sloupcový vektor.</p><p>Zadávání <code class="varname">v</code> jako sloupcového vektoru 
komplexních čísel je implementováno od verze 1.0.22.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotDrawPoints"></a>LinePlotDrawPoints</span></dt><dd><pre 
class="synopsis">LinePlotDrawPoints (x,y,...)</pre><pre class="synopsis">LinePlotDrawPoints 
(v,...)</pre><p>Vykreslit bod v <code class="varname">x</code>, <code class="varname">y</code>. Vstupem může 
být matice <code class="varname">n</code> krát 2 pro <code class="varname">n</code> různých bodů. Tato funkce 
má v podstatě stejné vstupní údaje jako <a class="link" 
href="ch11s20.html#gel-function-LinePlotDrawLine">LinePlotDrawLine</a>. Případně vekt
 or <code class="varname">v</code> může být sloupcový vektor komplexních čísel, což je matice <code 
class="varname">n</code> krát 1 a jednotlivá komplexní čísla jsou považována za body v rovině.</p><p>Mohou 
být přidány dodatečné parametry, které určují barvu a tloušťku čáry a vykreslení okna nebo legendy. Stačí 
přidat argument v podobě řetězce <strong class="userinput"><code>"color"</code></strong>, <strong 
class="userinput"><code>"thickness"</code></strong>, <strong class="userinput"><code>"window"</code></strong> 
nebo <strong class="userinput"><code>"legend"</code></strong> a za ním určit barvu, tloušťku, okno jako 
4prvkový vektor nebo legendu.</p><p>Barva by měla být buď řetězec symbolizující běžným anglickým slovem 
barvu, kterou rozpozná GTK, jako <strong class="userinput"><code>"red"</code></strong>, <strong 
class="userinput"><code>"blue"</code></strong>, <strong class="userinput"><code>"yellow"</code></strong>, 
apod. N
 ebo druhou možností je zadat barvu ve formátu RGB jako <strong 
class="userinput"><code>"#rgb"</code></strong>, <strong class="userinput"><code>"#rrggbb"</code></strong> 
nebo <strong class="userinput"><code>"#rrrrggggbbbb"</code></strong>, kde r, g a b jsou číslice šestnáctkové 
soustavy červené, zelené a modré složky barvy. A nakonec třetí možností je také určení barvy vektorem 
reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1.</p><p>Okno by mělo být 
zadáno buď obvyklým způsobem jako <strong class="userinput"><code>[x1,x2,y1,y2]</code></strong> nebo 
alternativně může být použit řetězec <strong class="userinput"><code>"fit"</code></strong>, v kterémž to 
případě bude rozsah x určen přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.</p><p>A nakonec 
legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. Samozřejmě jen v případě, 
že
  se legenda tiskne.</p><p>
-         Examples:
-          </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</code></strong>
+</pre><p>Na rozdíl od většiny ostatních funkcí, u kterých je jedno, jestli je předán sloupcový nebo řádkový 
vektor, při zadávání bodů v podobě vektoru komplexních čísel je kvůli možným nejednoznačnostem nutné vždy 
zadat sloupcový vektor.</p><p>Zadávání <code class="varname">v</code> jako sloupcového vektoru komplexních 
čísel je implementováno od verze 1.0.22.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotDrawPoints"></a>LinePlotDrawPoints</span></dt><dd><pre 
class="synopsis">LinePlotDrawPoints (x,y,...)</pre><pre class="synopsis">LinePlotDrawPoints 
(v,...)</pre><p>Vykreslit bod v <code class="varname">x</code>, <code class="varname">y</code>. Vstupem může 
být matice <code class="varname">n</code> krát 2 pro <code class="varname">n</code> různých bodů. Tato funkce 
má v podstatě stejné vstupní údaje jako <a class="link" 
href="ch11s20.html#gel-function-LinePlotDrawLine">LinePlotDrawLine</a>. Případně vektor <code
  class="varname">v</code> může být sloupcový vektor komplexních čísel, což je matice <code 
class="varname">n</code> krát 1 a jednotlivá komplexní čísla jsou považována za body v rovině.</p><p>Mohou 
být přidány dodatečné parametry, které určují barvu a tloušťku čáry a vykreslení okna nebo legendy. Stačí 
přidat argument v podobě řetězce <strong class="userinput"><code>"color"</code></strong>, <strong 
class="userinput"><code>"thickness"</code></strong>, <strong class="userinput"><code>"window"</code></strong> 
nebo <strong class="userinput"><code>"legend"</code></strong> a za ním určit barvu, tloušťku, okno jako 
4prvkový vektor nebo legendu.</p><p>Barva by měla být buď řetězec symbolizující běžným anglickým slovem 
barvu, kterou rozpozná GTK, jako <strong class="userinput"><code>"red"</code></strong>, <strong 
class="userinput"><code>"blue"</code></strong>, <strong class="userinput"><code>"yellow"</code></strong>, 
apod. Nebo druh
 ou možností je zadat barvu ve formátu RGB jako <strong class="userinput"><code>"#rgb"</code></strong>, 
<strong class="userinput"><code>"#rrggbb"</code></strong> nebo <strong 
class="userinput"><code>"#rrrrggggbbbb"</code></strong>, kde r, g a b jsou číslice šestnáctkové soustavy 
červené, zelené a modré složky barvy. A nakonec třetí možností je také určení barvy vektorem reálných čísel, 
která představují červenou, zelenou a modrou složku v rozmezí 0 až 1.</p><p>Okno by mělo být zadáno buď 
obvyklým způsobem jako <strong class="userinput"><code>[x1,x2,y1,y2]</code></strong> nebo alternativně může 
být použit řetězec <strong class="userinput"><code>"fit"</code></strong>, v kterémž to případě bude rozsah x 
určen přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.</p><p>A nakonec legenda, která by 
měla být zadána jako řetězec, který se použije k osvětlení grafu. Samozřejmě jen v případě, že se lege
 nda tiskne.</p><p>Examples: </p><pre class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints([0,0;1,-1;-1,-1])</code></strong>
-<code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The
 Solution")</code></strong>
+<code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","Řešení")</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</code></strong>
-<code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The
 7th roots of unity")</code></strong>
-</pre><p>
-          </p><p>Na rozdíl od většiny ostatních funkcí, u kterých je jedno, jestli jim předáte sloupcový 
nebo řádkový vektor, může u předávání bodu v podobě vektoru komplexních čísel docházet k nejednoznačnostem. 
Proto musíte vždy předat sloupcový vektor. Všimněte si v posledním příkladu transpozice vektoru <strong 
class="userinput"><code>0:6</code></strong>, aby se z něj stal sloupcový vektor.</p><p>Dostupné od verze 
1.0.18. Zadávání <code class="varname">v</code> v podobě sloupcového vektoru komplexních čísel je 
implementováno od verze 1.0.22.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotMouseLocation"></a>LinePlotMouseLocation</span></dt><dd><pre 
class="synopsis">LinePlotMouseLocation ()</pre><p>Vrátit řádkový vektor v kreslení odpovídající aktuální 
pozici myši. Pokud kreslení není viditelné, vypíše se chyba a vrátí <code class="constant">null</code>. V 
takovém případě byste měli spustit <
 a class="link" href="ch11s20.html#gel-function-LinePlot"><code class="function">LinePlot</code></a> nebo <a 
class="link" href="ch11s20.html#gel-function-LinePlotClear"><code class="function">LinePlotClear</code></a>, 
abyste přepnuli okno s grafem do režimu kreslení. Viz také <a class="link" 
href="ch11s20.html#gel-function-LinePlotWaitForClick"><code 
class="function">LinePlotWaitForClick</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotParametric"></a>LinePlotParametric</span></dt><dd><pre 
class="synopsis">LinePlotParametric (xfce,yfce,...)</pre><pre class="synopsis">LinePlotParametric 
(xfce,yfce,t1,t2,tprirust)</pre><pre class="synopsis">LinePlotParametric 
(xfce,yfce,t1,t2,tprirust,x1,x2,y1,y2)</pre><pre class="synopsis">LinePlotParametric 
(xfce,yfce,t1,t2,tprirust,[x1,x2,y1,y2])</pre><pre class="synopsis">LinePlotParametric 
(xfce,yfce,t1,t2,tprirust, "fit")</pre><p>Vykreslit parametrickou funkci v podobě čárového grafu. Jako první 
se zadáva
 jí funkce pro <code class="varname">x</code> a <code class="varname">y</code>, následované volitelnými 
omezeními <strong class="userinput"><code>t1,t2,tprirust</code></strong> pro <code class="varname">t</code> a 
pak mezemi v podobě <strong class="userinput"><code>x1,x2,y1,y2</code></strong>.</p><p>Pokud žádné meze 
nejsou zadány, použijí se aktuálně nastavené meze (viz <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">LinePlotWindow</code></a>). Místo mezí 
x a y je možné zadat řetězec "fit" a meze se pak zvolí podle maximálního rozsahu grafu.</p><p>Parametr <a 
class="link" href="ch11s03.html#gel-function-LinePlotDrawLegends"><code 
class="function">LinePlotDrawLegends</code></a> ovládá vykreslování legendy.</p></dd><dt><span 
class="term"><a name="gel-function-LinePlotWaitForClick"></a>LinePlotWaitForClick</span></dt><dd><pre 
class="synopsis">LinePlotWaitForClick ()</pre><p>Pokud je v režimu kreslení, čeká na
  kliknutí v kreslícím okně a následně vrátí pozici kliknutí v podobě řádkového vektoru. Pokud je okno 
zavřené, vrátí se funkce okamžitě s hodnotou <code class="constant">null</code>. Pokud okno není v režimu 
kreslení, přepne jej do něj a, pokud není zobrazené, zobrazí jej. Viz také <a class="link" 
href="ch11s20.html#gel-function-LinePlotMouseLocation"><code 
class="function">LinePlotMouseLocation</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-PlotCanvasFreeze"></a>PlotCanvasFreeze</span></dt><dd><pre 
class="synopsis">PlotCanvasFreeze ()</pre><p>Dočasně zmrazí vykreslování grafu na plátno. To se hodí, když 
kreslíte spoustu prvků a chcete to pozdržet, aby se fyzicky vykreslilo až všechno naráz a předešlo se tím 
blikání. Až máte veškeré kreslení hotovo, měli byste zavolat funkci <a class="link" 
href="ch11s20.html#gel-function-PlotCanvasThaw"><code class="function">PlotCanvasThaw</code></a>.</p><p>Na 
konci jak
 éhokoliv provádění je plátno automaticky rozmrazeno, takže by se nemělo stát, že zůstane zmrazené. 
Kupříkladu ve chvíli, kdy se zobrazí nový příkazový řádek, dojde k automatickému rozmrazení. Také si 
všimněte, že volání zmrazení a rozmrazení mohou být zanořená.</p><p>Verze 1.0.18 a novější.</p></dd><dt><span 
class="term"><a name="gel-function-PlotCanvasThaw"></a>PlotCanvasThaw</span></dt><dd><pre 
class="synopsis">PlotCanvasThaw ()</pre><p>Rozmrazí plátno pro vykreslování grafu zmrazené pomocí <a 
class="link" href="ch11s20.html#gel-function-PlotCanvasFreeze"><code 
class="function">PlotCanvasFreeze</code></a> a ihned jej překreslí. Platno je také rozmrazeno vždy po 
skončení provádění libovolného programu.</p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-PlotWindowPresent"></a>PlotWindowPresent</span></dt><dd><pre 
class="synopsis">PlotWindowPresent ()</pre><p>Zobrazí a přenese do popřed
 í vykreslovací okno, případně jej vytvoří, pokud je třeba. Normálně je okno vytvořeno, když je zavolána 
některá z kreslících funkcí, ale nemusí být vždy přeneseno do popředí, když je schováno za jinými okny. Proto 
je dobré volat tento kript, když bylo vykreslovací okno vytvořeno již dříve a nyní je schováno za konzolí 
nebo jinými okny.</p><p>Verze 1.0.19 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldClearSolutions"></a>SlopefieldClearSolutions</span></dt><dd><pre 
class="synopsis">SlopefieldClearSolutions ()</pre><p>Vymazat řešení vykreslená funkcí <a class="link" 
href="ch11s20.html#gel-function-SlopefieldDrawSolution"><code 
class="function">SlopefieldDrawSolution</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldDrawSolution"></a>SlopefieldDrawSolution</span></dt><dd><pre 
class="synopsis">SlopefieldDrawSolution (x, y, dx)</pre><p>Když je aktivní vykreslování směrového pol
 e, vykreslí řešení se zadanou počáteční podmínkou. Použita je standardní Rungeho-Kuttova metoda s přírůstkem 
<code class="varname">dx</code>. Řešení v grafu zůstanou, dokud není zobrazen jiný graf nebo není zavolána 
funkce <a class="link" href="ch11s20.html#gel-function-SlopefieldClearSolutions"><code 
class="function">SlopefieldClearSolutions</code></a>. Pro vykreslení řešení můžete použít i grafické rozhraní 
a počáteční podmínky zadat pomocí myši.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldPlot"></a>SlopefieldPlot</span></dt><dd><pre class="synopsis">SlopefieldPlot 
(fce)</pre><pre class="synopsis">SlopefieldPlot (fce,x1,x2,y1,y2)</pre><p>Vykreslit směrové pole. Funkce 
<code class="varname">fce</code> by měla přebírat dvě reálná čísla <code class="varname">x</code> a <code 
class="varname">y</code> nebo jedno komplexní číslo. Volitelně můžete zadat meze vykreslovacího okna jako 
souřadnice <code class
 ="varname">x1</code>, <code class="varname">x2</code>, <code class="varname">y1</code>, <code 
class="varname">y2</code>. Pokud žádné meze nejsou zadány, použijí se aktuálně nastavení mezí (viz <a 
class="link" href="ch11s03.html#gel-function-LinePlotWindow"><code 
class="function">LinePlotWindow</code></a>).</p><p>Parametr <a class="link" 
href="ch11s03.html#gel-function-LinePlotDrawLegends"><code class="function">LinePlotDrawLegends</code></a> 
ovládá vykreslování legendy.</p><p>Příklady: </p><pre class="screen"><code class="prompt">genius&gt;</code> 
<strong class="userinput"><code>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</code></strong>
+<code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","Sedmá
 odmocnina z jednotky")</code></strong>
+</pre><p>Na rozdíl od většiny ostatních funkcí, u kterých je jedno, jestli jim předáte sloupcový nebo 
řádkový vektor, může u předávání bodu v podobě vektoru komplexních čísel docházet k nejednoznačnostem. Proto 
musíte vždy předat sloupcový vektor. Všimněte si v posledním příkladu transpozice vektoru <strong 
class="userinput"><code>0:6</code></strong>, aby se z něj stal sloupcový vektor.</p><p>Dostupné od verze 
1.0.18. Zadávání <code class="varname">v</code> v podobě sloupcového vektoru komplexních čísel je 
implementováno od verze 1.0.22.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotMouseLocation"></a>LinePlotMouseLocation</span></dt><dd><pre 
class="synopsis">LinePlotMouseLocation ()</pre><p>Vrátit řádkový vektor v kreslení odpovídající aktuální 
pozici myši. Pokud kreslení není viditelné, vypíše se chyba a vrátí <code class="constant">null</code>. V 
takovém případě byste měli spustit <a class=
 "link" href="ch11s20.html#gel-function-LinePlot"><code class="function">LinePlot</code></a> nebo <a 
class="link" href="ch11s20.html#gel-function-LinePlotClear"><code class="function">LinePlotClear</code></a>, 
abyste přepnuli okno s grafem do režimu kreslení. Viz také <a class="link" 
href="ch11s20.html#gel-function-LinePlotWaitForClick"><code 
class="function">LinePlotWaitForClick</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotParametric"></a>LinePlotParametric</span></dt><dd><pre 
class="synopsis">LinePlotParametric (xfce,yfce,...)</pre><pre class="synopsis">LinePlotParametric 
(xfce,yfce,t1,t2,tprirust)</pre><pre class="synopsis">LinePlotParametric 
(xfce,yfce,t1,t2,tprirust,x1,x2,y1,y2)</pre><pre class="synopsis">LinePlotParametric 
(xfce,yfce,t1,t2,tprirust,[x1,x2,y1,y2])</pre><pre class="synopsis">LinePlotParametric 
(xfce,yfce,t1,t2,tprirust, "fit")</pre><p>Vykreslit parametrickou funkci v podobě čárového grafu. Jako první 
se zadávají funk
 ce pro <code class="varname">x</code> a <code class="varname">y</code>, následované volitelnými omezeními 
<strong class="userinput"><code>t1,t2,tprirust</code></strong> pro <code class="varname">t</code> a pak 
mezemi v podobě <strong class="userinput"><code>x1,x2,y1,y2</code></strong>.</p><p>Pokud žádné meze nejsou 
zadány, použijí se aktuálně nastavené meze (viz <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">LinePlotWindow</code></a>). Místo mezí 
x a y je možné zadat řetězec "fit" a meze se pak zvolí podle maximálního rozsahu grafu.</p><p>Parametr <a 
class="link" href="ch11s03.html#gel-function-LinePlotDrawLegends"><code 
class="function">LinePlotDrawLegends</code></a> ovládá vykreslování legendy.</p></dd><dt><span 
class="term"><a name="gel-function-LinePlotWaitForClick"></a>LinePlotWaitForClick</span></dt><dd><pre 
class="synopsis">LinePlotWaitForClick ()</pre><p>Pokud je v režimu kreslení, čeká na kliknut
 í v kreslícím okně a následně vrátí pozici kliknutí v podobě řádkového vektoru. Pokud je okno zavřené, vrátí 
se funkce okamžitě s hodnotou <code class="constant">null</code>. Pokud okno není v režimu kreslení, přepne 
jej do něj a, pokud není zobrazené, zobrazí jej. Viz také <a class="link" 
href="ch11s20.html#gel-function-LinePlotMouseLocation"><code 
class="function">LinePlotMouseLocation</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-PlotCanvasFreeze"></a>PlotCanvasFreeze</span></dt><dd><pre 
class="synopsis">PlotCanvasFreeze ()</pre><p>Dočasně zmrazí vykreslování grafu na plátno. To se hodí, když 
kreslíte spoustu prvků a chcete to pozdržet, aby se fyzicky vykreslilo až všechno naráz a předešlo se tím 
blikání. Až máte veškeré kreslení hotovo, měli byste zavolat funkci <a class="link" 
href="ch11s20.html#gel-function-PlotCanvasThaw"><code class="function">PlotCanvasThaw</code></a>.</p><p>Na 
konci jakéhokoli
 v provádění je plátno automaticky rozmrazeno, takže by se nemělo stát, že zůstane zmrazené. Kupříkladu ve 
chvíli, kdy se zobrazí nový příkazový řádek, dojde k automatickému rozmrazení. Také si všimněte, že volání 
zmrazení a rozmrazení mohou být zanořená.</p><p>Verze 1.0.18 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-PlotCanvasThaw"></a>PlotCanvasThaw</span></dt><dd><pre class="synopsis">PlotCanvasThaw 
()</pre><p>Rozmrazí plátno pro vykreslování grafu zmrazené pomocí <a class="link" 
href="ch11s20.html#gel-function-PlotCanvasFreeze"><code class="function">PlotCanvasFreeze</code></a> a ihned 
jej překreslí. Platno je také rozmrazeno vždy po skončení provádění libovolného programu.</p><p>Verze 1.0.18 
a novější.</p></dd><dt><span class="term"><a 
name="gel-function-PlotWindowPresent"></a>PlotWindowPresent</span></dt><dd><pre 
class="synopsis">PlotWindowPresent ()</pre><p>Zobrazí a přenese do popředí vykre
 slovací okno, případně jej vytvoří, pokud je třeba. Normálně je okno vytvořeno, když je zavolána některá z 
kreslících funkcí, ale nemusí být vždy přeneseno do popředí, když je schováno za jinými okny. Proto je dobré 
volat tento kript, když bylo vykreslovací okno vytvořeno již dříve a nyní je schováno za konzolí nebo jinými 
okny.</p><p>Verze 1.0.19 a novější.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldClearSolutions"></a>SlopefieldClearSolutions</span></dt><dd><pre 
class="synopsis">SlopefieldClearSolutions ()</pre><p>Vymazat řešení vykreslená funkcí <a class="link" 
href="ch11s20.html#gel-function-SlopefieldDrawSolution"><code 
class="function">SlopefieldDrawSolution</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldDrawSolution"></a>SlopefieldDrawSolution</span></dt><dd><pre 
class="synopsis">SlopefieldDrawSolution (x, y, dx)</pre><p>Když je aktivní vykreslování směrového pole, vykre
 slí řešení se zadanou počáteční podmínkou. Použita je standardní Rungeho-Kuttova metoda s přírůstkem <code 
class="varname">dx</code>. Řešení v grafu zůstanou, dokud není zobrazen jiný graf nebo není zavolána funkce 
<a class="link" href="ch11s20.html#gel-function-SlopefieldClearSolutions"><code 
class="function">SlopefieldClearSolutions</code></a>. Pro vykreslení řešení můžete použít i grafické rozhraní 
a počáteční podmínky zadat pomocí myši.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldPlot"></a>SlopefieldPlot</span></dt><dd><pre class="synopsis">SlopefieldPlot 
(fce)</pre><pre class="synopsis">SlopefieldPlot (fce,x1,x2,y1,y2)</pre><p>Vykreslit směrové pole. Funkce 
<code class="varname">fce</code> by měla přebírat dvě reálná čísla <code class="varname">x</code> a <code 
class="varname">y</code> nebo jedno komplexní číslo. Volitelně můžete zadat meze vykreslovacího okna jako 
souřadnice <code class="varnam
 e">x1</code>, <code class="varname">x2</code>, <code class="varname">y1</code>, <code 
class="varname">y2</code>. Pokud žádné meze nejsou zadány, použijí se aktuálně nastavení mezí (viz <a 
class="link" href="ch11s03.html#gel-function-LinePlotWindow"><code 
class="function">LinePlotWindow</code></a>).</p><p>Parametr <a class="link" 
href="ch11s03.html#gel-function-LinePlotDrawLegends"><code class="function">LinePlotDrawLegends</code></a> 
ovládá vykreslování legendy.</p><p>Příklady: </p><pre class="screen"><code class="prompt">genius&gt;</code> 
<strong class="userinput"><code>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</code></strong>
 </pre></dd><dt><span class="term"><a name="gel-function-SurfacePlot"></a>SurfacePlot</span></dt><dd><pre 
class="synopsis">SurfacePlot (fce)</pre><pre class="synopsis">SurfacePlot (fce,x1,x2,y1,y2,z1,z2)</pre><pre 
class="synopsis">SurfacePlot (fce,x1,x2,y1,y2)</pre><pre class="synopsis">SurfacePlot 
(fce,[x1,x2,y1,y2,z1,z2])</pre><pre class="synopsis">SurfacePlot (fce,[x1,x2,y1,y2])</pre><p>Vykreslit funkci 
plochy, která přebírá buď dva argumenty nebo komplexní číslo. Jako první se předává funkce, pak následují 
meze <code class="varname">x1</code>, <code class="varname">x2</code>, <code class="varname">y1</code>, <code 
class="varname">y2</code>, <code class="varname">z1</code>, <code class="varname">z2</code>. Pokud žádné meze 
nejsou zadány, použijí se aktuálně nastavené meze (viz <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">SurfacePlotWindow</code></a>). V 
současnosti umí Genius vykreslovat jen funkci jedné p
 lochy.</p><p>Když nejsou meze zadány, použije se pro ně minimum a maximum funkce.</p><p>Příklady: </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</code></strong>
diff --git a/help/cs/html/index.html b/help/cs/html/index.html
index 83c844e..f3b4f05 100644
--- a/help/cs/html/index.html
+++ b/help/cs/html/index.html
@@ -1,3 +1,3 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Příručka k aplikaci 
Genius</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="description" 
content="Příručka k matematickému nástroji Genius."><link rel="home" href="index.html" title="Příručka k 
aplikaci Genius"><link rel="next" href="ch01.html" title="Kapitola 1. Úvod"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Příručka k aplikaci Genius</th></tr><tr><td 
width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a 
accesskey="n" href="ch01.html">Další</a></td></tr></table><hr></div><div lang="cs" class="book"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a>Příručka k aplikaci 
Genius</h1></div><div><div class="authorgroup">
 <div class="author"><h3 class="author"><span class="firstname">Jiří</span> <span 
class="surname">Lebl</span></h3><div class="affiliation"><span class="orgname">Státní oklahamská 
univerzita<br></span><div class="address"><p> <code class="email">&lt;<a class="email" href="mailto:jirka 5z 
com">jirka 5z com</a>&gt;</code> </p></div></div></div><div class="author"><h3 class="author"><span 
class="firstname">Kai</span> <span class="surname">Willadsen</span></h3><div class="affiliation"><span 
class="orgname">Univerzita Queensland, Austrálie<br></span><div class="address"><p> <code 
class="email">&lt;<a class="email" href="mailto:kaiw itee uq edu au">kaiw itee uq edu au</a>&gt;</code> 
</p></div></div></div></div></div><div><p class="releaseinfo">Tato příručka popisuje aplikaci Genius ve verzi 
1.0.22.</p></div><div><p class="copyright">Copyright © 1997 – 2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><div c
 lass="legalnotice"><a name="legalnotice"></a><p>Je povoleno kopírovat, šířit a/nebo upravovat tento dokument 
za podmínek GNU Free Documentation License (GFDL) ve verzi 1.1 nebo v jakékoli další verzi vydané nadací Free 
Software Foundation; bez neměnných oddílů, bez textů předních desek a bez textů zadních desek. Kopii licence 
GFDL naleznete pod <a class="ulink" href="ghelp:fdl" target="_top">tímto odkazem</a> nebo v souboru 
COPYING-DOCS dodávaném s touto příručkou.</p><p>Tato příručka je součástí sbírky příruček GNOME šířených za 
podmínek licence GFDL. Pokud chcete tento dokument šířit odděleně od sbírky, musíte přiložit kopii licence 
dle popisu v oddílu 6 dané licence.</p><p>Mnoho názvů použitých firmami k zviditelnění produktů nebo služeb 
jsou ochranné známky. Na místech, kde jsou tyto názvy v dokumentaci použity a členové Dokumentačního projektu 
GNOME jsou si vědomi skutečnosti, že se jedná o ochranno
 u známku, je takovýto název psán velkými písmeny celý nebo s velkým písmenem na začátku.</p><p>DOKUMENT A 
JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM 
USTANOVENÍM: </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>DOKUMENT 
JE POSKYTOVÁN V PODOBĚ „JAK JE“, BEZ ZÁRUKY JAKÉHOKOLIV DRUHU, NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE 
DOKUMENT, NEBO JEHO UPRAVENÁ VERZE, JE BEZCHYBNÝ, NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL, NEBO 
NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, NEBO JEHO UPRAVENÉ VERZE, NESETE 
VY. POKUD JE TENTO DOKUMENT NEBO JEHO UPRAVENÁ VERZE VADNÁ V JAKÉMKOLIV SMYSLU, VY (NIKOLIV PŮVODCE, AUTOR 
NEBO JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE ODPOVĚDNOST ZA JAKÉKOLIV NÁKLADY NA NUTNÉ ÚPRAVY, OPRAVY ČI SLUŽBY. 
TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST T�
 �TO LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ PODLE TÉTO DOHODY POVOLENO UŽÍVÁNÍ ANI ÚPRAVY TOHOTO DOKUMENTU; 
DÁLE</p></li><li class="listitem"><p>ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O 
PŘEČIN (VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, KTERÝKOLIV PŘISPĚVATEL NEBO 
KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z 
TĚCHTO STRAN ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ ŠKODY JAKÉHOKOLIV 
CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ 
FUNKCE POČÍTAČE NEBO JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE K POUŽÍVÁNÍ 
TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI 
TAKOVÉHOTO POŠKOZENÍ.</p></li></ol></d
 iv></div></div><div><div class="legalnotice"><a name="idm46019829823952"></a><p 
class="legalnotice-title"><b>Ohlasy</b></p><p>Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující 
se k aplikaci <span class="application">matematický nástroj Genius</span> nebo této příručce, navštivte 
prosím <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">webovou stránku aplikace 
Genius</a> nebo napište autorovi na e-mail <code class="email">&lt;<a class="email" href="mailto:jirka 5z 
com">jirka 5z com</a>&gt;</code>.</p></div></div><div><div class="revhistory"><table 
style="border-style:solid; width:100%;" summary="Přehled revizí"><tr><th align="left" valign="top" 
colspan="2"><b>Přehled revizí</b></th></tr><tr><td align="left">Revize 0.2</td><td align="left">Září 
2016</td></tr><tr><td align="left" colspan="2"> 
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Příručka k aplikaci 
Genius</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="description" 
content="Příručka k matematickému nástroji Genius."><link rel="home" href="index.html" title="Příručka k 
aplikaci Genius"><link rel="next" href="ch01.html" title="Kapitola 1. Úvod"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Příručka k aplikaci Genius</th></tr><tr><td 
width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a 
accesskey="n" href="ch01.html">Další</a></td></tr></table><hr></div><div lang="cs" class="book"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a>Příručka k aplikaci 
Genius</h1></div><div><div class="authorgroup">
 <div class="author"><h3 class="author"><span class="firstname">Jiří</span> <span 
class="surname">Lebl</span></h3><div class="affiliation"><span class="orgname">Státní oklahamská 
univerzita<br></span><div class="address"><p> <code class="email">&lt;<a class="email" href="mailto:jirka 5z 
com">jirka 5z com</a>&gt;</code> </p></div></div></div><div class="author"><h3 class="author"><span 
class="firstname">Kai</span> <span class="surname">Willadsen</span></h3><div class="affiliation"><span 
class="orgname">Univerzita Queensland, Austrálie<br></span><div class="address"><p> <code 
class="email">&lt;<a class="email" href="mailto:kaiw itee uq edu au">kaiw itee uq edu au</a>&gt;</code> 
</p></div></div></div></div></div><div><p class="releaseinfo">Tato příručka popisuje aplikaci Genius ve verzi 
1.0.22.</p></div><div><p class="copyright">Copyright © 1997 – 2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><div c
 lass="legalnotice"><a name="legalnotice"></a><p>Je povoleno kopírovat, šířit a/nebo upravovat tento dokument 
za podmínek GNU Free Documentation License (GFDL) ve verzi 1.1 nebo v jakékoli další verzi vydané nadací Free 
Software Foundation; bez neměnných oddílů, bez textů předních desek a bez textů zadních desek. Kopii licence 
GFDL naleznete pod <a class="ulink" href="ghelp:fdl" target="_top">tímto odkazem</a> nebo v souboru 
COPYING-DOCS dodávaném s touto příručkou.</p><p>Tato příručka je součástí sbírky příruček GNOME šířených za 
podmínek licence GFDL. Pokud chcete tento dokument šířit odděleně od sbírky, musíte přiložit kopii licence 
dle popisu v oddílu 6 dané licence.</p><p>Mnoho názvů použitých firmami k zviditelnění produktů nebo služeb 
jsou ochranné známky. Na místech, kde jsou tyto názvy v dokumentaci použity a členové Dokumentačního projektu 
GNOME jsou si vědomi skutečnosti, že se jedná o ochranno
 u známku, je takovýto název psán velkými písmeny celý nebo s velkým písmenem na začátku.</p><p>DOKUMENT A 
JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM 
USTANOVENÍM: </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>DOKUMENT 
JE POSKYTOVÁN V PODOBĚ „JAK JE“, BEZ ZÁRUKY JAKÉHOKOLIV DRUHU, NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE 
DOKUMENT, NEBO JEHO UPRAVENÁ VERZE, JE BEZCHYBNÝ, NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL, NEBO 
NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, NEBO JEHO UPRAVENÉ VERZE, NESETE 
VY. POKUD JE TENTO DOKUMENT NEBO JEHO UPRAVENÁ VERZE VADNÁ V JAKÉMKOLIV SMYSLU, VY (NIKOLIV PŮVODCE, AUTOR 
NEBO JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE ODPOVĚDNOST ZA JAKÉKOLIV NÁKLADY NA NUTNÉ ÚPRAVY, OPRAVY ČI SLUŽBY. 
TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST T�
 �TO LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ PODLE TÉTO DOHODY POVOLENO UŽÍVÁNÍ ANI ÚPRAVY TOHOTO DOKUMENTU; 
DÁLE</p></li><li class="listitem"><p>ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O 
PŘEČIN (VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, KTERÝKOLIV PŘISPĚVATEL NEBO 
KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z 
TĚCHTO STRAN ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ ŠKODY JAKÉHOKOLIV 
CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ 
FUNKCE POČÍTAČE NEBO JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE K POUŽÍVÁNÍ 
TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI 
TAKOVÉHOTO POŠKOZENÍ.</p></li></ol></d
 iv></div></div><div><div class="legalnotice"><a name="idm48"></a><p 
class="legalnotice-title"><b>Ohlasy</b></p><p>Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující 
se k aplikaci <span class="application">matematický nástroj Genius</span> nebo této příručce, navštivte 
prosím <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">webovou stránku aplikace 
Genius</a> nebo napište autorovi na e-mail <code class="email">&lt;<a class="email" href="mailto:jirka 5z 
com">jirka 5z com</a>&gt;</code>.</p></div></div><div><div class="revhistory"><table 
style="border-style:solid; width:100%;" summary="Přehled revizí"><tr><th align="left" valign="top" 
colspan="2"><b>Přehled revizí</b></th></tr><tr><td align="left">Revize 0.2</td><td align="left">Září 
2016</td></tr><tr><td align="left" colspan="2"> 
                        <p class="author">Jiri (George) Lebl <code class="email">&lt;<a class="email" 
href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code></p>
                </td></tr></table></div></div><div><div class="abstract"><p 
class="title"><b>Abstrakt</b></p><p>Příručka k matematickému nástroji 
Genius.</p></div></div></div><hr></div><div class="toc"><p><b>Obsah</b></p><dl class="toc"><dt><span 
class="chapter"><a href="ch01.html">1. Úvod</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. 
Začínáme</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#genius-to-start">Jak spustit <span 
class="application">matematický nástroj Genius</span></a></span></dt><dt><span class="sect1"><a 
href="ch02s02.html">Když spustíte aplikaci Genius</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="ch03.html">3. Základy používání</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch03.html#genius-usage-workarea">Používání pracovní oblasti</a></span></dt><dt><span class="sect1"><a 
href="ch03s02.html">Jak vytvořit nový program</a></span></dt><dt><span class="sect1"><a 
href="ch03s03.html">Jak otev�
 �ít a spustit program</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. 
Vykreslování</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#genius-line-plots">Čárové 
grafy</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Parametrické 
grafy</a></span></dt><dt><span class="sect1"><a href="ch04s03.html">Grafy směrových 
polí</a></span></dt><dt><span class="sect1"><a href="ch04s04.html">Grafy vektorových 
polí</a></span></dt><dt><span class="sect1"><a href="ch04s05.html">Plošné 
grafy</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. Základy jazyka 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch05.html#genius-gel-values">Hodnoty</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-numbers">Čísla</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-booleans">Pravdivostní hodnoty</a></span></dt><dt><span class="sect2"><a 
href="
 ch05.html#genius-gel-values-strings">Řetězce</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-null">Null</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="ch05s02.html">Používání proměnných</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05s02.html#genius-gel-variables-setting">Nastavování proměnných</a></span></dt><dt><span 
class="sect2"><a href="ch05s02.html#genius-gel-variables-built-in">Vestavěné 
proměnné</a></span></dt><dt><span class="sect2"><a href="ch05s02.html#genius-gel-previous-result">Proměnná s 
posledním výsledkem</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s03.html">Používání 
funkcí</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-defining">Definování funkcí</a></span></dt><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-variable-argument-lists">Proměnný seznam 
argumentů</a></span></dt><dt><span class="sect2"><
 a href="ch05s03.html#genius-gel-functions-passing-functions">Předávání funkcí 
funkcím</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-operations">Operace 
s funkcemi</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="ch05s04.html">Oddělovač</a></span></dt><dt><span class="sect1"><a 
href="ch05s05.html">Komentáře</a></span></dt><dt><span class="sect1"><a href="ch05s06.html">Modulární 
aritmetika</a></span></dt><dt><span class="sect1"><a href="ch05s07.html">Seznam operátorů 
GEL</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch06.html">6. Programování s jazykem 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch06.html#genius-gel-conditionals">Podmínky</a></span></dt><dt><span class="sect1"><a 
href="ch06s02.html">Smyčky</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loops-while">Smyčky while</a></span></dt><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loo
 ps-for">Smyčky for</a></span></dt><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loops-foreach">Smyčky foreach</a></span></dt><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loops-break-continue">Break a continue</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="ch06s03.html">Součty a součiny</a></span></dt><dt><span class="sect1"><a 
href="ch06s04.html">Porovnávací operátory</a></span></dt><dt><span class="sect1"><a 
href="ch06s05.html">Globální proměnné a působnost proměnných</a></span></dt><dt><span class="sect1"><a 
href="ch06s06.html">Proměnné parametrů</a></span></dt><dt><span class="sect1"><a href="ch06s07.html">Návrat 
hodnot</a></span></dt><dt><span class="sect1"><a href="ch06s08.html">Reference</a></span></dt><dt><span 
class="sect1"><a href="ch06s09.html">L-hodnoty</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="ch07.html">7. Pokročilé programování v jazyce GEL</a></span></dt><dd><dl><dt><span class="sect1"><
 a href="ch07.html#genius-gel-error-handling">Obsluha chyb</a></span></dt><dt><span class="sect1"><a 
href="ch07s02.html">Syntaxe v nejvyšší úrovni</a></span></dt><dt><span class="sect1"><a 
href="ch07s03.html">Vracení funkcí</a></span></dt><dt><span class="sect1"><a href="ch07s04.html">Skutečně 
lokální proměnné</a></span></dt><dt><span class="sect1"><a href="ch07s05.html">Spouštěcí procedura 
GEL</a></span></dt><dt><span class="sect1"><a href="ch07s06.html">Načítání 
programů</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch08.html">8. Matice v jazyce 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch08.html#genius-gel-matrix-support">Zadávání 
matic</a></span></dt><dt><span class="sect1"><a href="ch08s02.html">Operátor konjugované transpozice a 
transpozice</a></span></dt><dt><span class="sect1"><a href="ch08s03.html">Lineární 
algebra</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch09.html">9. Polynomy v jazyce GEL
 </a></span></dt><dd><dl><dt><span class="sect1"><a href="ch09.html#genius-gel-polynomials-using">Používání 
polynomů</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch10.html">10. Teorie množin v jazyce 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch10.html#genius-gel-sets-using">Používání 
množin</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch11.html">11. Seznam funkcí 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch11.html#genius-gel-function-list-commands">Příkazy</a></span></dt><dt><span class="sect1"><a 
href="ch11s02.html">Základy</a></span></dt><dt><span class="sect1"><a 
href="ch11s03.html">Parametry</a></span></dt><dt><span class="sect1"><a 
href="ch11s04.html">Konstanty</a></span></dt><dt><span class="sect1"><a href="ch11s05.html">Práce s 
čísly</a></span></dt><dt><span class="sect1"><a href="ch11s06.html">Trigonometrie</a></span></dt><dt><span 
class="sect1"><a href="ch11s07.html">Teorie čísel</a
</span></dt><dt><span class="sect1"><a href="ch11s08.html">Práce s maticemi</a></span></dt><dt><span 
class="sect1"><a href="ch11s09.html">Lineární algebra</a></span></dt><dt><span class="sect1"><a 
href="ch11s10.html">Kombinatorika</a></span></dt><dt><span class="sect1"><a 
href="ch11s11.html">Diferenciální/integrální počet </a></span></dt><dt><span class="sect1"><a 
href="ch11s12.html">Funkce</a></span></dt><dt><span class="sect1"><a href="ch11s13.html">Řešení 
rovnic</a></span></dt><dt><span class="sect1"><a href="ch11s14.html">Statistika</a></span></dt><dt><span 
class="sect1"><a href="ch11s15.html">Polynomy</a></span></dt><dt><span class="sect1"><a 
href="ch11s16.html">Teorie množin</a></span></dt><dt><span class="sect1"><a href="ch11s17.html">Komutativní 
algebra</a></span></dt><dt><span class="sect1"><a href="ch11s18.html">Různé</a></span></dt><dt><span 
class="sect1"><a href="ch11s19.html">Symbolické operace</a></span></dt><dt><span class="sect1"><a href="ch1
 1s20.html">Vykreslování</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch12.html">12. Příklad 
programů v jazyce GEL</a></span></dt><dt><span class="chapter"><a href="ch13.html">13. 
Nastavení</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch13.html#genius-prefs-output">Výstup</a></span></dt><dt><span class="sect1"><a 
href="ch13s02.html">Přesnost</a></span></dt><dt><span class="sect1"><a 
href="ch13s03.html">Terminál</a></span></dt><dt><span class="sect1"><a 
href="ch13s04.html">Paměť</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch14.html">14. O <span 
class="application">Matematickém nástroji Genius</span></a></span></dt></dl></div><div 
class="list-of-figures"><p><b>Seznam obrázků</b></p><dl><dt>2.1. <a href="ch02s02.html#mainwindow-fig">Okno 
<span class="application">Matematického nástroje Genius</span></a></dt><dt>4.1. <a 
href="ch04.html#lineplot-fig">Okno Vytváření grafu</a></dt><dt>4.2. <a href="ch04.html#lineplot2-fig
 ">Okno s grafem</a></dt><dt>4.3. <a href="ch04s02.html#paramplot-fig">Karta parametrických 
grafů</a></dt><dt>4.4. <a href="ch04s02.html#paramplot2-fig">Parametrické grafy</a></dt><dt>4.5. <a 
href="ch04s05.html#surfaceplot-fig">Plošný graf</a></dt></dl></div></div><div class="navfooter"><hr><table 
width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" 
align="center"> </td><td width="40%" align="right"> <a accesskey="n" 
href="ch01.html">Další</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" 
align="center"> </td><td width="40%" align="right" valign="top"> Kapitola 1. 
Úvod</td></tr></table></div></body></html>
diff --git a/help/de/genius.xml b/help/de/genius.xml
new file mode 100644
index 0000000..f11e9a5
--- /dev/null
+++ b/help/de/genius.xml
@@ -0,0 +1,9762 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY app "<application>Genius Mathematics Tool</application>">
+<!ENTITY appname "Genius">
+<!ENTITY appversion "1.0.22">
+<!ENTITY date "September 2016">
+<!ENTITY legal SYSTEM "legal.xml">
+<!ENTITY manrevision "0.2">
+<!ENTITY lt "&#60;">
+<!ENTITY gt "&#62;">
+<!ENTITY le "&#8804;">
+<!ENTITY ge "&#8805;">
+<!ENTITY lsquo "&#8216;">
+<!ENTITY rsquo "&#8217;">
+<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
+<!-- 
+      (Do not remove this comment block.)
+  Maintained by the GNOME Documentation Project
+  http://developer.gnome.org/projects/gdp
+  Template version: 2.0 beta
+  Template last modified Apr 11, 2002
+-->
+<!-- =============Document Header ============================= -->
+<book id="index" lang="de">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <bookinfo>
+         <abstract role="description"><para>Handbuch für das Genius Mathematikwerkzeug.</para></abstract>
+    <title>Genius-Handbuch</title>       
+
+    <copyright>
+      <year>1997-2016</year>
+      <holder>Jiří (George) Lebl</holder>
+    </copyright>
+    <copyright>
+      <year>2004</year>
+      <holder>Kai Willadsen</holder>
+    </copyright><copyright><year>2009, 2011</year><holder>Mario Blättermann (mariobl freenet 
de)</holder></copyright>
+<!-- translators: uncomment this:
+  <copyright>
+   <year>2002</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+-->
+
+    <publisher> 
+      <publishername/> 
+    </publisher> 
+
+     <legalnotice id="legalnotice">
+       <para>Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free Documentation License (GFDL), 
Version 1.1 oder jeder späteren, von der Free Software Foundation veröffentlichten Version ohne 
unveränderbare Abschnitte sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt 
und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem <ulink type="help" 
url="ghelp:fdl">Link</ulink> oder in der mit diesem Handbuch gelieferten Datei COPYING-DOCS.</para>
+         <para>Dieses Handbuch ist Teil einer Sammlung von GNOME-Handbüchern, die unter der GFDL 
veröffentlicht werden. Wenn Sie dieses Handbuch getrennt von der Sammlung weiterverbreiten möchten, können 
Sie das tun, indem Sie eine Kopie der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 6 der Lizenz 
beschrieben ist.</para>
+
+       <para>Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und Dienstleistungen 
von anderen zu unterscheiden, sind eingetragene Warenzeichen. An den Stellen, an denen diese Namen in einer 
GNOME-Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem großen Anfangsbuchstaben 
geschrieben, wenn das GNOME-Dokumentationsprojekt auf diese Warenzeichen hingewiesen wird.</para>
+
+       <para>DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN BEDINGUNGEN DER GNU FREE 
DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM WEITERGEHENDEN VERSTÄNDNIS, DASS: <orderedlist>
+               <listitem>
+                 <para>DIESES DOKUMENT WIRD »WIE VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER ART, 
SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH AUCH OHNE EINSCHRÄNKUNG AUF GARANTIEN, 
DASS DIESES DOKUMENT ODER VERÄNDERTE FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FÜR EINEN 
BESTIMMTEN ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE RISIKO WAS QUALITÄT, 
GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN 
DOKUMENT ODER EINE VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE (NICHT DER 
URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER 
FEHLERKORREKTUREN. DIESER HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG EINES 
DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT GESTATTET AUßER UNTER BEACHTUNG DIESES 
HAFTUNGSAUSSCHLUSSES UND</para>
+               </listitem>
+               <listitem>
+                 <para>UNTER KEINEN UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH 
UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH FAHRLÄSSIGKEIT), VERTRAG ODER ANDERWEITIG KANN DER AUTOR, 
URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERÄNDERTEN FASSUNG 
DES DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN FÜR DIREKTE, INDIREKTE, 
SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER ART, EINSCHLIEßLICH UND OHNE EINSCHRÄNKUNGEN SCHÄDEN 
DURCH VERLUST VON KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN ODER ALLE ANDEREN 
SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER VERWENDUNG DES DOKUMENTS UND VERÄNDERTER 
FASSUNGEN DES DOKUMENTS ERGEBEN, AUCH WENN DIE OBEN GENANNTEN PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN 
INFORMIERT WAREN.</para>
+               </listitem>
+         </orderedlist></para>
+  </legalnotice>
+
+
+   <!-- This file  contains link to license for the documentation (GNU FDL), and 
+        other legal stuff such as "NO WARRANTY" statement. Please do not change 
+       any of this. -->
+
+    <authorgroup> 
+      <author role="maintainer"> 
+               <firstname>Jiří</firstname> 
+               <surname>Lebl</surname> 
+               <affiliation> 
+                       <orgname>Oklahoma State University</orgname> 
+                       <address> <email>jirka 5z com</email> </address> 
+               </affiliation> 
+      </author> 
+      <author> 
+               <firstname>Kai</firstname> 
+               <surname>Willadsen</surname> 
+               <affiliation> 
+                       <orgname>University of Queensland, Australien</orgname> 
+                       <address> <email>kaiw itee uq edu au</email> </address> 
+               </affiliation> 
+      </author> 
+      
+<!-- This is appropriate place for other contributors: translators,
+     maintainers,  etc. Commented out by default.
+     
+      <othercredit role="translator">
+               <firstname>Latin</firstname> 
+               <surname>Translator 1</surname> 
+               <affiliation> 
+                       <orgname>Latin Translation Team</orgname> 
+                       <address> <email>translator gnome org</email> </address> 
+               </affiliation>
+               <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+    </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+-->
+<!-- than the current revision. -->
+<!-- The revision numbering system for GNOME manuals is as follows: -->
+<!-- * the revision number consists of two components -->
+<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
+<!-- * the second component of the revision number is a decimal unit that is incremented with each revision 
of the manual. -->
+<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
+<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
+<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
+<!-- to V3.0, and so on. -->  
+<!--  This is unmaintained quite a bit so screw this it just makes things
+      ugly and we don't update the manrevision stuff anyway
+    <revhistory>
+      <revision> 
+               <revnumber>&manrevision;</revnumber> 
+               <date>&date;</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>0.1</revnumber> 
+               <date>September 2004</date> 
+               <revdescription> 
+                       <para role="author">Kai Willadsen
+               <email>kaiw itee uq edu au</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>Genius Calculator Manual</revnumber> 
+               <date>August 2004</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+    </revhistory> 
+-->
+
+    <revhistory>
+      <revision> 
+               <revnumber>0.2</revnumber> 
+               <date>September 2016</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl <email>jirka 5z com</email></para>
+               </revdescription> 
+      </revision> 
+    </revhistory>
+    <releaseinfo>This manual describes version 1.0.22 of Genius.
+    </releaseinfo> 
+    <legalnotice> 
+      <title>Rückmeldungen</title> 
+      <para>Um einen Fehler zu melden oder einen Vorschlag zur Anwendung <application>Genius 
Mathematikwerkzeug</application> oder zu diesem Handbuch zu machen, folge Sie den Anweisungen auf der <ulink 
url="http://www.jirka.org/genius.html"; type="http">Genius-Webseite</ulink> oder schreiben Sie eine E-Mail an 
<email>jirka 5z com</email>.</para>
+<!-- Translators may also add here feedback address for translations -->
+    </legalnotice> 
+  </bookinfo> 
+
+<!-- ============= Introduction =============================== -->
+  <chapter id="genius-introduction"> 
+    <title>Einführung</title> 
+    <para>Die Anwendung <application>Genius Mathematikwerkzeug</application> ist ein allgemeines 
Rechenprogramm, ein Hilfsmittel zur mathematischen Ausbildung und sogar dienlich für Forschungszwecke. Die in 
<application>Genius Mathematikwerkzeug</application> verwendete Sprache ist »mathematisch« im Sinne von »man 
bekommt, was man meint«. Natürlich ist das ein nicht vollständig erreichbares Ziel. <application>Genius 
Mathematikwerkzeug</application> arbeitet mit rationalen Zahlen, langen Ganzzahlen und Gleitkommazahlen 
unterschiedlicher Genauigkeit unter Verwendung der GMP-Bibliothek. Es arbeitet mit komplexen Zahlen in 
kartesischer Form. Darüber hinaus stehen umfangreiche Vektor- und Matrixoperationen, sowie grundlegende 
Lineare Algebra zur Verfügung. Die Programmiersprache erlaubt benutzerdefinierte Funktionen, Variablen und 
Veränderungen von Parametern.</para> 
+
+    <para>Es gibt zwei Versionen von <application>Genius Mathematikwerkzeug</application>. Die eine Version 
ist die graphische GNOME-Version, welche eine Schnittstelle im Stil einer integrierten Entwicklungsumgebung 
bietet und die Möglichkeit, Funktionen mit einer oder zwei Variablen darzustellen. Die Befehlszeilenversion 
benötigt kein GNOME, allerdings beinhaltet sie keine Funktionalitäten, welche eine graphische Schnittstelle 
erfordern.</para> 
+
+    <para>Dieses Handbuch beschreibt hauptsächlich die graphische Version des Rechners, wobei die Sprache 
natürlich für beide dieselbe ist. In der Befehlszeilenversion fehlen die graphischen Möglichkeiten und andere 
Funktionalitäten, die eine graphische Schnittstelle benötigen.</para>
+
+    <para>Generell werden neue Funktionsmerkmale der Sprache (Funktion, Operator usw.) in Versionen ab 1.0.5 
hier erwähnt. Für Versionen vor 1.0.5 finden Sie entsprechende Informationen in der Datei NEWS.</para>
+
+  </chapter>
+
+<!-- =========== Getting Started ============================== -->
+  <chapter id="genius-getting-started"> 
+    <title>Erste Schritte</title> 
+
+    <sect1 id="genius-to-start">
+      <title><application>Genius Mathematikwerkzeug starten</application></title>
+      <para>Sie können <application>Genius Mathematikwerkzeug</application> auf folgende Arten 
starten:</para> 
+      <variablelist>
+        <varlistentry>
+          <term>Menü <guimenu>Anwendungen</guimenu></term>
+          <listitem>
+           <para>Abhängig von Ihrem Betriebssystem und dessen Version kann sich der Menüeintrag für 
<application>Genius Mathematikwerkzeug</application> an verschiedenen Stellen befinden. Es kann sich unter 
<guisubmenu>Bildung</guisubmenu>, <guisubmenu>Zubehör</guisubmenu>, <guisubmenu>Büro</guisubmenu>, 
<guisubmenu>Wissenschaft</guisubmenu> oder einem ähnlichen Untermenü befinden, abhängig von den Einstellungen 
Ihres Systems. Der Menüeintrag, nach dem Sie suchen sollten, lautet <guimenuitem>Genius 
Mathematikwerkzeug</guimenuitem>. Sobald Sie diesen Menüeintrag gefunden haben, klicken Sie darauf, um 
<application>Genius Mathematikwerkzeug</application> zu starten.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><guilabel>Ausführen</guilabel>-Dialog</term>
+          <listitem>
+           <para>Es kann auch vorkommen, dass der Menüeintrag bei Ihrem System nicht vorhanden ist. In 
diesem Fall können Sie das Dialogfeld zum Ausführen von Programmen öffnen und den Befehl 
<command>gnome-genius</command> eingeben.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>Befehlszeile</term>
+         <listitem>
+           <para>Um die GNOME-Version des <application>Genius Mathematikwerkzeug</application> von der 
Befehlszeile aus zu starten, geben Sie <command>gnome-genius</command> ein.</para>
+           <para>Zum Starten der Befehlszeilen-Version führen Sie folgenden Befehl aus: 
<command>genius</command>. Diese Version enthält keine graphische Umgebung und einige Funktionen wie zum 
Beispiel die Darstellung stehen nicht zur Verfügung.</para> 
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-when-start">
+    <title>Beim Start von <application>Genius</application></title>
+      <para>Wenn Sie die GNOME-Ausgabe von <application>Genius Mathematikwerkzeug</application> starten, 
wird das in <xref linkend="mainwindow-fig"/> dargestellte Fenster geöffnet.</para>
+
+      <figure id="mainwindow-fig"> 
+        <title><application>Genius Mathematikwerkzeug</application>-Fenster</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+             <phrase>Zeigt das Hauptfenster von <application>Genius Mathematikwerkzeug</application>. 
Enthält Titelleiste, Menüleiste, Werkzeugleiste und Arbeitsplatz. Die Menüleiste enthält die Menüs 
<guilabel>Datei</guilabel>, <guilabel>Bearbeiten</guilabel>, <guilabel>Taschenrechner</guilabel>, 
<guilabel>Beispiele</guilabel>, <guilabel>Programme</guilabel>, <guilabel>Einstellungen</guilabel> und 
<guilabel>Hilfe</guilabel> menus.</phrase> 
+            </textobject> 
+          </mediaobject>
+        </screenshot> 
+      </figure>
+
+      <para>Das Fenster von <application>Genius Mathematikwerkzeug</application> enthält die folgenden 
Elemente:</para>
+      <variablelist>
+        <varlistentry>
+          <term>Menüleiste.</term>
+          <listitem>
+            <para>Die Menüleiste beinhaltet alle Befehle, die Sie benötigen, um mit dem <application>Genius 
Mathematikwerkzeug</application> zu arbeiten. Das <guilabel>Datei</guilabel>-Menü enthält Einträge zum Öffnen 
und Speichern von Dateien sowie zum Erstellen neuer Programme. Der Befehl <guilabel>Laden und ausführen 
…</guilabel> öffnet kein neues Fenster für das Programm, sondern führt das Programm direkt aus. Dies 
entspricht dem Befehl <command>load</command>.</para>
+           <para>
+               The <guilabel>Calculator</guilabel> menu controls the
+calculator engine.  It allows you to run the currently selected program or to
+interrupt the current calculation.  You can also look at the full expression of
+the last answer (useful if the last answer was too large to fit onto the
+console), or you can view a listing of the values of all user defined
+variables.  You can also monitor user variables, which is especially useful
+while a long calculation is running, or to debug a certain program.
+                   Finally the <guilabel>Calculator</guilabel> allows plotting functions using a user 
friendly dialog box.
+          </para>
+          <para>
+                  The <guilabel>Examples</guilabel> menu is a list of example
+                  programs or demos.  If you open the menu, it will load the
+                  example into a new program, which you can run, edit, modify,
+                  and save.  These programs should be well documented
+                  and generally demonstrate either some feature of <application>Genius Mathematics 
Tool</application>
+                  or some mathematical concept.
+          </para>
+          <para>
+                  The <guilabel>Programs</guilabel> menu lists
+                  the currently open programs and allows you to switch
+                  between them.
+          </para>
+          <para>Die anderen Menüs beinhalten ähnliche Funktionen wie in anderen Anwendungen.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Werkzeugleiste.</term>
+          <listitem>
+            <para>Die Werkzeugleiste enthält eine Auswahl der Befehle, die Sie über die Menüleiste 
erreichen.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Arbeitsplatz</term>
+          <listitem>
+            <para>Der Arbeitsplatz stellt die vorrangige Methode zur Interaktion mit der Anwendung 
dar.</para>
+           <para>Der Arbeitsplatz beinhaltet zu Beginn nur den Reiter <guilabel>Konsole</guilabel>, welcher 
hauptsächlich für Interaktionen mit dem Rechner verwendet wird. Hier können Sie Ausdrücke eingeben und die 
Ergebnisse werden sofort nach Betätigung der Eingabetaste angezeigt.</para>
+           <para>
+               Alternatively you can write longer programs and those can
+               appear in separate tabs.  The programs are a set of commands or
+               functions that can be run all at once rather than entering them
+               at the command line.  The programs can be saved in files for later
+               retrieval.
+           </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+<!-- ================ Usage =================================== -->
+  <chapter id="genius-usage"> 
+    <title>Grundlagen der Benutzung</title> 
+
+    <sect1 id="genius-usage-workarea"> 
+      <title>Benutzung des Arbeitsplatzes</title> 
+
+      <para>Normalerweise interagieren Sie mit dem Rechenprogramm im Reiter <guilabel>Konsole</guilabel> des 
Arbeitsplatzes. Falls Sie die textbasierte Version verwenden, wird Ihnen nur diese Konsole zur Verfügung 
stehen. Wenn Sie das <application>Genius Mathematikwerkzeug</application> als reines Rechenprogramm verwenden 
wollen, geben Sie einfach Ihren Ausdruck hier ein, und das Ergebnis wird berechnet.</para>
+
+      <para>
+             To evaluate an expression, type it into the <guilabel>Console</guilabel> work area and press 
enter.
+             Expressions are written in a
+language called GEL.  The most simple GEL expressions just looks like
+mathematics.  For example
+<screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
+</screen>
+(Last is the harmonic sum from 1 to 70)
+</para>
+<para>So erhalten Sie eine Liste mit Funktionen und Befehlen: <screen><prompt>genius&gt; 
</prompt><userinput>help</userinput>
+</screen> Wenn Sie zusätzliche Hilfe zu einer bestimmten Funktion wünschen, geben Sie Folgendes ein: 
<screen><prompt>genius&gt; </prompt><userinput>help FunktionsName</userinput>
+</screen> Dieses Handbuch zeigen Sie folgendermaßen an: <screen><prompt>genius&gt; 
</prompt><userinput>manual</userinput>
+</screen></para>
+<para>
+Suppose you have previously saved some GEL commands as a program to a file and
+you now want to execute them.
+To load this program from the file <filename>path/to/program.gel</filename>,
+type
+<screen><prompt>genius&gt; </prompt><userinput>load path/to/program.gel</userinput>
+</screen>
+<application>Genius Mathematics Tool</application> keeps track of the current directory.
+To list files in the current directory type <command>ls</command>, to change directory
+do <userinput>cd directory</userinput> as in the UNIX command shell.
+</para>
+    </sect1>
+
+    <sect1 id="genius-usage-create-program"> 
+      <title>Erstellen eines neuen Programms</title> 
+      <para>
+             If you wish to enter several more complicated commands, or perhaps write a complicated
+             function using the <link linkend="genius-gel">GEL</link> language, you can create a new
+            program.
+      </para>
+      <para>
+To start writing a new program, choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>New
+Program</guimenuitem></menuchoice>. A new tab will appear in the work area. You
+can write a <link linkend="genius-gel">GEL</link> program in this work area.
+Once you have written your program you can run it by 
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice> (or
+the <guilabel>Run</guilabel> toolbar button).
+This will execute your program and will display any output on the <guilabel>Console</guilabel> tab.
+Executing a program is equivalent of taking the text of the program and
+typing it into the console.  The only difference is that this input is done
+independent of the console and just the output goes onto the console.
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice>
+will always run the currently selected program even if you are on the <guilabel>Console</guilabel>
+tab.  The currently selected program has its tab in bold type.  To select a
+program, just click on its tab.
+      </para>
+      <para>
+To save the program you've just written, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save 
As...</guimenuitem></menuchoice>.
+Similarly as in other programs you can choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice> to save a program that 
already has
+a filename attached to it.  If you have many opened programs you have edited and wish to save you can also 
choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save All Unsaved</guimenuitem></menuchoice>.
+      </para>
+      <para>
+             Programs that have unsaved changes will have a "[+]" next to their filename.  This way you can 
see if the file
+             on disk and the currently opened tab differ in content.  Programs which have not yet had a 
filename associated
+             with them are always considered unsaved and no "[+]" is printed.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-usage-open-program"> 
+      <title>Öffnen und Ausführen eines Programms</title> 
+      <para>Um eine Datei zu öffnen, wählen Sie 
<menuchoice><guimenu>Datei</guimenu><guimenuitem>Öffnen</guimenuitem></menuchoice>. Ein neuer Reiter 
erscheint im Arbeitsplatz, der diese Datei enthält. Hier können Sie die Datei bearbeiten.</para>
+      <para>Wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Laden und ausführen 
…</guimenuitem></menuchoice>, um ein Programm aus einer Datei zu starten. Auf diese Weise wird das Programm 
ausgeführt, ohne dabei einen eigenen Reiter zu öffnen. Dies entspricht dem 
<command>load</command>-Befehl.</para>
+      <para>
+             If you have made edits to a file you wish to throw away and want to reload to the version 
that's on disk,
+             you can choose the
+             <menuchoice><guimenu>File</guimenu><guimenuitem>Reload from Disk</guimenuitem></menuchoice> 
menuitem.  This is useful for experimenting
+             with a program and making temporary edits, to run a program, but that you do not intend to keep.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Plotting ============================== -->
+  <chapter id="genius-gel-plotting">
+    <title>Darstellung</title>
+
+    <para>Die Darstellung von Funktionen steht nur in der graphischen GNOME-Version zur Verfügung. Alle 
Darstellungen mittels graphischer Schnittstelle können über das Fenster <guilabel>Darstellung 
erstellen</guilabel> erreicht werden. In dieses Fenster gelangen Sie entweder durch Klick auf den Knopf 
<guilabel>Darstellen</guilabel> in der Werkzeugleiste oder durch Auswahl von <guilabel>Darstellen 
…</guilabel> im Menü <guilabel>Rechner</guilabel>. Sie können die Darstellungsmöglichkeiten auch unter 
Verwendung der GEL-<link linkend="genius-gel-function-list-plotting">Darstellungsfunktionen</link> einsetzen. 
Sehen Sie auch unter <xref linkend="genius-gel"/> nach, um herauszufinden, wie Sie Ausdrücke eingeben können, 
die von Genius verstanden werden.</para>
+
+    <sect1 id="genius-line-plots">
+      <title>Kurvendarstellungen</title>
+      <para>Um Funktionen einer Variablen mit reellen Zahlen darzustellen, öffnen Sie das Fenster 
<guilabel>Darstellung erstellen</guilabel>. Sie können auch die Funktion <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> auf der Befehlszeile verwenden (siehe 
Dokumentation dazu).</para>
+      <para>Sobald Sie auf den <guilabel>Darstellen</guilabel>-Knopf im Hauptfenster klicken, öffnet sich 
ein Fenster mit einigen Reitern darin. Sie befinden sich nun im Reiter <guilabel>Funktionsgraphen 
darstellen</guilabel> und darin im Reiter <guilabel>Funktionen / Ausdrücke</guilabel>. Siehe auch <xref 
linkend="lineplot-fig"/>.</para>
+
+      <figure id="lineplot-fig"> 
+        <title>Fenster »Darstellung erstellen«</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Anzeige des Kurven-Darstellungsfensters.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       Type expressions with <userinput>x</userinput> as
+       the independent variable into the textboxes.  Alternatively you can give names of functions such as
+       <userinput>cos</userinput> rather then having to type <userinput>cos(x)</userinput>.
+       You can graph up to ten functions.  If you make a mistake and Genius cannot
+       parse the input it will signify this with a warning icon on the right of the text
+       input box where the error occurred, as well as giving you an error dialog.
+       You can change the ranges of the dependent and independent variables in the bottom
+       part of the dialog.
+       The <varname>y</varname> (dependent) range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+       checkbox.
+       The names of the variables can also be changed.
+       Pressing the <guilabel>Plot</guilabel> button produces the graph shown in <xref 
linkend="lineplot2-fig"/>.
+      </para>
+      <para>
+             The variables can be renamed by clicking the <guilabel>Change variable names...</guilabel> 
button, which is useful if you wish to print or save the figure and don't want to use the standard
+             names.  Finally you can also avoid printing the legend and the axis labels completely,
+             which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="lineplot2-fig"> 
+        <title>Fenster »Darstellen«</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Erstellter Graph.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Von hier aus können Sie die Darstellung ausdrucken, PostScript-, EPS- oder PNG-Versionen davon 
erstellen und die Vergrößerungsstufe verändern.</para>
+
+      <para>Um Darstellungen von der Befehlszeile aus zu erstellen, lesen Sie bitte die Dokumentation der 
<link linkend="gel-function-LinePlot"><function>LinePlot</function></link>-Funktion.</para>
+    </sect1>
+
+    <sect1 id="genius-parametric-plots">
+      <title>Parametrische Darstellungen</title>
+      <para>
+       In the create plot window, you can also choose the <guilabel>Parametric</guilabel> notebook
+        tab to create two dimensional parametric plots.  This way you can
+       plot a single parametric function.  You can either specify the
+       points as <varname>x</varname> and <varname>y</varname>, or giving a single complex number
+       as a function of the variable <varname>t</varname>.
+       The range of the variable <varname>t</varname> is given explicitly, and the function is sampled
+       according to the given increment.
+       The <varname>x</varname> and <varname>y</varname> range can be set
+       automatically by turning on the <guilabel>Fit dependent axis</guilabel>
+       checkbox, or it can be specified explicitly.
+       See <xref linkend="paramplot-fig"/>.
+      </para>
+
+      <figure id="paramplot-fig"> 
+        <title>Reiter »Parametrische Darstellung«</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Reiter »Parametrische Darstellung« im <guilabel>Darstellung 
erstellen</guilabel>-Fenster.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       An example of a parametric plot is given in
+       <xref linkend="paramplot2-fig"/>.
+       Similar operations can be
+       done on such graphs as can be done on the other line plots.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> or
+        <link linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link> 
function.
+      </para>
+
+      <figure id="paramplot2-fig"> 
+        <title>Parametrische Darstellung</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Erstellte parametrische Darstellung</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+    </sect1>
+
+    <sect1 id="genius-slopefield-plots">
+      <title>Richtungsfeld-Darstellungen</title>
+      <para>Im Fenster »Darstellung erstellen« können Sie den Reiter <guilabel>Richtungsfeld</guilabel> 
wählen, um eine zweidimensionale Richtungsfeld-Darstellung zu erstellen. Auf derartige Graphen können 
ähnliche Operationen angewendet werden wie bei anderen Kurvendarstellungen. Wie Sie Darstellungen von der 
Befehlszeile aus erzeugen, können Sie in der Dokumentation der Funktion <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link> nachlesen.</para>
+
+      <para>Wenn ein Richtungsfeld dargestellt wird, so steht ein zusätzlicher Menüeintrag 
<guilabel>Löser</guilabel> zur Verfügung. Damit gelangen Sie zum Löser-Dialogfeld und Sie können Genius 
bestimmte Lösungen zu den gegebenen Anfangsbedingungen darstellen lassen. Sie können die Anfangsbedingungen 
entweder im Dialogfeld angeben oder Sie klicken direkt auf die Darstellung, um den Anfangspunkt festzulegen. 
Während das Löser-Dialogfeld aktiv ist, funktionieren Größenänderungen durch Klicken und Ziehen nicht. Wenn 
Sie die Vergrößerungsstufe mit der Maus verändern möchten, müssen Sie zuerst das Dialogfenster 
schließen.</para>
+
+      <para>Der Löser verwendet das klassische Runge-Kutta-Verfahren. Die Darstellungen bleiben so lange am 
Bildschirm erhalten, bis sie gelöscht werden. Der Löser stoppt, sobald er die Grenzen des 
Darstellungsfensters erreicht hat. Durch Ändern der Vergrößerungsstufe werden die Grenzen der Parameter der 
Lösungen nicht verändert, dazu müssen Sie die Lösungen löschen und mit den gewünschten Parametern neu 
darstellen. Sie können auch die Funktion <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link> verwenden, 
um Lösungen von der Befehlszeile oder von Programmen aus darzustellen.</para>
+
+    </sect1>
+
+    <sect1 id="genius-vectorfield-plots">
+      <title>Vektorfeld-Darstellungen</title>
+      <para>Im Fenster »Darstellung erstellen« können Sie den Reiter <guilabel>Vektorfeld</guilabel> wählen, 
um eine zweidimensionale Vektorfeld-Darstellung zu erstellen. Auf derartige Graphen können ähnliche 
Operationen angewendet werden wie bei anderen Kurvendarstellungen. Wie Sie Darstellungen von der Befehlszeile 
aus erzeugen, können Sie in der Dokumentation der Funktion <link 
linkend="gel-function-SlopefieldPlot"><function>VectorfieldPlot</function></link> nachlesen.</para>
+
+      <para>Standardmäßig werden Richtung und Größe des Vektorfelds angezeigt. Sie können das Ankreuzfeld 
<guilabel>Pfeillänge normalisieren</guilabel> aktivieren, um nur die Richtung und nicht die Größe 
anzuzeigen.</para>
+
+      <para>Wenn ein Vektorfeld dargestellt wird, so steht ein zusätzlicher Menüeintrag 
<guilabel>Löser</guilabel> zur Verfügung. Damit gelangen Sie zum Löser-Dialogfeld und Sie können Genius 
bestimmte Lösungen zu den gegebenen Anfangsbedingungen darstellen lassen. Sie können die Anfangsbedingungen 
entweder im Dialogfeld angeben oder Sie klicken direkt auf die Darstellung, um den Anfangspunkt festzulegen. 
Während das Löser-Dialogfeld aktiv ist, funktioniert das Ändern der Vergrößerungsstufe durch Klicken und 
Ziehen nicht. Wenn Sie mit der Maus die Vergrößerungsstufe ändern möchten, müssen Sie zuerst das 
Dialogfenster schließen.</para>
+
+      <para>Der Löser verwendet das klassische Runge-Kutta-Verfahren. Die Darstellungen bleiben so lange am 
Bildschirm erhalten, bis sie gelöscht werden. Durch Ändern der Vergrößerungsstufe werden die Grenzen der 
Parameter der Lösungen nicht verändert, dazu müssen Sie die Lösungen löschen und mit den gewünschten 
Parametern neu darstellen. Sie können auch die Funktion <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link> verwenden, 
um Lösungen von der Befehlszeile oder von Programmen aus darzustellen.</para>
+
+    </sect1>
+
+    <sect1 id="genius-surface-plots">
+      <title>2D-Darstellungen</title>
+      <para>
+       Genius can also plot surfaces.  Select the <guilabel>Surface plot</guilabel> tab in the
+       main notebook of the <guilabel>Create Plot</guilabel> window.  Here you can specify a single
+       expression that should use either <varname>x</varname> and <varname>y</varname> as real independent 
variables
+       or <varname>z</varname> as a complex variable (where <varname>x</varname> is the real part of 
<varname>z</varname> and <varname>y</varname> is the
+       imaginary part).  For example to plot the modulus of the cosine
+       function for complex parameters,
+       you could enter <userinput>|cos(z)|</userinput>.  This would be
+       equivalent to <userinput>|cos(x+1i*y)|</userinput>.
+       See <xref linkend="surfaceplot-fig"/>.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link> function.
+      </para>
+      <para>
+             The <varname>z</varname> range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+             checkbox.  The variables can be renamed by clicking the <guilabel>Change variable 
names...</guilabel> button, which is useful if you wish to print or save the figure and don't want to use the 
standard
+             names.  Finally you can also avoid printing the legend, which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="surfaceplot-fig"> 
+        <title>2D-Darstellung</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Modulus der komplexen Kosinus-Funktion.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+             In surface mode, left and right arrow keys on your keyboard will rotate the
+             view along the z axis.  Alternatively you can rotate along any axis by
+             selecting <guilabel>Rotate axis...</guilabel> in the <guilabel>View</guilabel> 
+             menu.  The <guilabel>View</guilabel> menu also has a top view mode which rotates the
+             graph so that the z axis is facing straight out, that is, we view the graph from the top
+             and get essentially just the colors that define the values of the function getting a
+             temperature plot of the function.  Finally you should
+             try <guilabel>Start rotate animation</guilabel>, to start a continuous slow rotation.
+             This is especially good if using <application>Genius Mathematics Tool</application> to present 
to an audience.
+      </para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL ====================================== -->
+  <chapter id="genius-gel"> 
+    <title>GEL-Grundlagen</title> 
+
+       <para>
+         GEL stands for Genius Extension Language.    It is the language you use
+         to write programs in Genius. A program in GEL is simply an
+         expression that evaluates to a number, a matrix, or another object
+         in GEL.
+         <application>Genius Mathematics Tool</application> can be used as a simple calculator, or as a
+         powerful theoretical research tool.  The syntax is meant to
+         have as shallow of a learning curve as possible, especially for use
+         as a calculator.
+       </para>
+
+    <sect1 id="genius-gel-values">
+      <title>Werte</title>
+
+      <para>
+             Values in GEL can be <link linkend="genius-gel-values-numbers">numbers</link>, <link 
linkend="genius-gel-values-booleans">Booleans</link>, or <link 
linkend="genius-gel-values-strings">strings</link>.   GEL also treats 
+<link linkend="genius-gel-matrices">matrices</link> as values.
+             Values can be used in calculations, assigned to variables and returned from functions, among 
other uses.
+      </para>
+
+      <sect2 id="genius-gel-values-numbers">
+        <title>Zahlen</title>
+        <para>
+Integers are the first type of number in GEL. Integers are written in the normal way.
+<programlisting>1234
+</programlisting>
+Hexadecimal and octal numbers can be written using C notation. For example:
+<programlisting>0x123ABC
+01234
+</programlisting>
+Or you can type numbers in an arbitrary base using <literal>&lt;base&gt;\&lt;number&gt;</literal>. Digits 
higher than 10 use letters in a similar way to hexadecimal. For example, a number in base 23 could be written:
+<programlisting>23\1234ABCD
+</programlisting>
+        </para>
+
+        <para>
+The second type of GEL number is rationals. Rationals are simply achieved by dividing two integers. So one 
could write:
+<programlisting>3/4
+</programlisting>
+to get three quarters. Rationals also accept mixed fraction notation. So in order to get one and three 
tenths you could write:
+<programlisting>1 3/10
+</programlisting>
+        </para>
+
+        <para>
+The next type of number is floating point. These are entered in a similar fashion to C notation. You can use 
<literal>E</literal>, <literal>e</literal> or <literal>@</literal> as the exponent delimiter. Note that using 
the exponent delimiter gives a float even if there is no decimal point in the number. Examples:
+<programlisting>1.315
+7.887e77
+7.887e-77
+.3
+0.3
+77e5
+</programlisting>
+       When Genius prints a floating point number it will always append a
+       <computeroutput>.0</computeroutput> even if the number is whole.  This is to indicate that
+       floating point numbers are taken as imprecise quantities.  When a number is written in the
+       scientific notation, it is always a floating point number and thus Genius does not
+       print the <computeroutput>.0</computeroutput>.
+        </para>
+
+        <para>
+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:
+<programlisting>1+2i
+8.01i
+77*e^(1.3i)
+</programlisting>
+        </para>
+
+        <important>
+          <para>
+When entering imaginary numbers, a number must be in front of the <literal>i</literal>. If you use 
<literal>i</literal> by itself, Genius will interpret this as referring to the variable <varname>i</varname>. 
If you need to refer to <literal>i</literal> by itself, use <literal>1i</literal> instead.
+          </para>
+
+          <para>
+In order to use mixed fraction notation with imaginary numbers you must have the mixed fraction in 
parentheses. (i.e., <userinput>(1 2/5)i</userinput>)
+          </para>
+        </important>
+
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-booleans">
+        <title>Wahrheitswerte</title>
+        <para>
+Genius also supports native Boolean values. The two Boolean constants are
+defined as <constant>true</constant> and <constant>false</constant>; these
+identifiers can be used like any other variable. You can also use the
+identifiers <constant>True</constant>, <constant>TRUE</constant>,
+<constant>False</constant> and <constant>FALSE</constant> as aliases for the
+above.
+        </para>
+        <para>
+At any place where a Boolean expression is expected, you can use a Boolean
+value or any expression that produces either a number or a Boolean. If
+Genius needs to evaluate a number as a Boolean it will interpret
+0 as <constant>false</constant> and any other number as
+<constant>true</constant>.
+         </para>
+        <para>
+In addition, you can do arithmetic with Boolean values. For example:
+<programlisting>( (1 + true) - false ) * true
+</programlisting>
+is the same as:
+<programlisting>( (true or true) or not false ) and true
+</programlisting>
+Only addition, subtraction and multiplication are supported. If you mix numbers with Booleans in an 
expression then the numbers are converted to Booleans as described above. This means that, for example:
+<programlisting>1 == true
+</programlisting>
+always evaluates to <constant>true</constant> since 1 will be converted to <constant>true</constant> before 
being compared to <constant>true</constant>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-strings">
+        <title>Strings</title>
+        <para>
+Like numbers and Booleans, strings in GEL can be stored as values inside variables and passed to functions. 
You can also concatenate a string with another value using the plus operator. For example:
+<programlisting>a=2+3;"Das Ergebnis ist: "+a
+</programlisting>
+will create the string:
+<programlisting>Das Ergebnis ist: 5
+</programlisting>
+You can also use C-like escape sequences such as 
<literal>\n</literal>,<literal>\t</literal>,<literal>\b</literal>,<literal>\a</literal> and 
<literal>\r</literal>. To get a <literal>\</literal> or <literal>"</literal> into the string you can quote it 
with a <literal>\</literal>. For example:
+<programlisting>"Slash: \\ Quotes: \" Tabs: \t1\t2\t3"
+</programlisting>
+will make a string:
+<programlisting>Slash: \ Quotes: " Tabs:       1       2       3
+</programlisting>
+Do note however that when a string is returned from a function, escapes are
+quoted, so that the output can be used as input.  If you wish to print the
+string as it is (without escapes), use the 
+<link linkend="gel-function-print"><function>print</function></link>
+or
+<link linkend="gel-function-printn"><function>printn</function></link> functions.
+        </para>
+        <para>
+               In addition, you can use the library function <link 
linkend="gel-function-string"><function>string</function></link> to convert anything to a string. For example:
+<programlisting>string(22)
+</programlisting>
+will return
+<programlisting>"22"
+</programlisting>
+Strings can also be compared with <literal>==</literal> (equal), <literal>!=</literal> (not equal) and 
<literal>&lt;=&gt;</literal> (comparison) operators
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-null">
+        <title>Null</title>
+        <para>
+There is a special value called
+<constant>null</constant>. No operations can be performed on
+it, and nothing is printed when it is returned. Therefore,
+<constant>null</constant> is useful when you do not want output from an
+expression.  The value <constant>null</constant> can be obtained as an expression when you
+type <literal>.</literal>, the constant <constant>null</constant> or nothing.
+By nothing we mean that if you end an expression with
+a separator <literal>;</literal>, it is equivalent to ending it with a
+separator followed by a <constant>null</constant>.
+        </para>
+        <para>Beispiel: <programlisting>x=5;.
+x=5;
+</programlisting></para>
+<para>
+Some functions return <constant>null</constant> when no value can be returned
+or an error happened.  Also <constant>null</constant> is used as an empty vector
+or matrix, or an empty reference.
+</para>
+      </sect2>
+
+    </sect1>
+
+    <sect1 id="genius-gel-variables">
+      <title>Verwendung von Variablen</title>
+
+      <para>Syntax: <programlisting>VariableName
+</programlisting> Beispiel: <screen><prompt>genius&gt; </prompt><userinput>e</userinput>
+= 2.71828182846
+</screen></para>
+
+      <para>
+To evaluate a variable by itself, just enter the name of the variable. This will return the value of the 
variable. You can use a variable anywhere you would normally use a number or string. In addition, variables 
are necessary when defining functions that take arguments (see <xref 
linkend="genius-gel-functions-defining"/>).
+      </para>
+
+      <tip>
+        <title>Vervollständigung mit der Tabulatortaste</title>
+        <para>
+You can use Tab completion to get Genius to complete variable names for you. Try typing the first few 
letters of the name and pressing <userinput>Tab</userinput>.
+        </para>
+      </tip>
+
+      <important>
+        <title>Groß-/Kleinschreibung für Variablennamen</title>
+        <para>Bei Variablennamen wird zwischen Groß- und Kleinschreibung unterschieden. Das bedeutet, dass 
die Variablennamen <varname>hello</varname>, <varname>HELLO</varname> und <varname>Hello</varname> als 
unterschiedliche Variablen erkannt werden.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-variables-setting">
+        <title>Setzen von Variablen</title>
+        <para>Syntax: <programlisting><![CDATA[<identifier> = <value>
+<identifier> := <value>]]>
+</programlisting> Beispiel: <programlisting>x = 3
+x := 3
+</programlisting></para>
+
+        <para>
+To assign a value to a variable, use the <literal>=</literal> or <literal>:=</literal> operators. These 
operators set the value of the variable and return the value you set, so you can do things like
+<programlisting>a = b = 5
+</programlisting>
+This will set <varname>b</varname> to 5 and then also set <varname>a</varname> to 5.
+        </para>
+
+        <para>
+The <literal>=</literal> and <literal>:=</literal> operators can both be used to set variables. The 
difference between them is that the <literal>:=</literal> operator always acts as an assignment operator, 
whereas the <literal>=</literal> operator may be interpreted as testing for equality when used in a context 
where a Boolean expression is expected.
+       </para>
+
+       <para>
+         For more information about the scope of variables, that is when are what variables visible, see 
<xref linkend="genius-gel-variables-global"/>.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-variables-built-in">
+        <title>Eingebaute Variablen</title>
+        <para>
+GEL has a number of built-in ‘variables’, such as
+<varname>e</varname>, <varname>pi</varname> or <varname>GoldenRatio</varname>.  These are widely used 
constants with a preset value, and
+they cannot be assigned new values.
+There are a number of other built-in variables.
+See <xref linkend="genius-gel-function-list-constants"/> for a full list.  Note that <varname>i</varname> is 
not by default
+the square root of negative one (the imaginary number), and is undefined to allow its use as a counter.  If 
you wish to write the imaginary number you need to
+use <userinput>1i</userinput>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-previous-result">
+        <title>Vorherige Ergebnisvariable</title>
+        <para>
+The <varname>Ans</varname> and <varname>ans</varname> variables can be used to get the result of the last 
expression. For example, if you had performed some calculation, to add 389 to the result you could do:
+<programlisting>Ans+389
+</programlisting>
+        </para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-functions">
+      <title>Verwendung von Funktionen</title>
+
+      <para>
+Syntax:
+<programlisting>FunctionName(argument1, argument2, ...)
+</programlisting>
+Example:
+<programlisting>Factorial(5)
+cos(2*pi)
+gcd(921,317)
+</programlisting>
+
+To evaluate a function, enter the name of the function, followed by the arguments (if any) to the function 
in parentheses. This will return the result of applying the function to its arguments. The number of 
arguments to the function is, of course, different for each function.
+      </para>
+
+      <para>
+             There are many built-in functions, such as <link 
linkend="gel-function-sin"><function>sin</function></link>, <link 
linkend="gel-function-cos"><function>cos</function></link> and <link 
linkend="gel-function-tan"><function>tan</function></link>. You can use the <link 
linkend="gel-command-help"><function>help</function></link> built-in command to get a list of available 
functions, or see <xref linkend="genius-gel-function-list"/> for a full listing.
+      </para>
+
+      <tip>
+        <title>Vervollständigung mit der Tabulatortaste</title>
+        <para>
+You can use Tab completion to get Genius to complete function names for you. Try typing the first few 
letters of the name and pressing <userinput>Tab</userinput>.
+        </para>
+      </tip>
+
+      <important>
+        <title>Groß-/Kleinschreibung für Funktionsnamen</title>
+        <para>
+The names of functions are case sensitive. That means that functions named <function>dosomething</function>, 
<function>DOSOMETHING</function> and <function>DoSomething</function> are all different functions.
+        </para>
+      </important>
+
+
+      <sect2 id="genius-gel-functions-defining">
+        <title>Definieren von Funktionen</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[function <identifier>(<comma separated arguments>) = <function body>
+<identifier> = (`() = <function body>)
+]]></programlisting>
+The <literal>`</literal> is the backquote character, and signifies an anonymous function. By setting it to a 
variable name you effectively define a function.
+        </para>
+
+        <para>
+A function takes zero or more comma separated arguments, and returns the result of the function body. 
Defining your own functions is primarily a matter of convenience; one possible use is to have sets of 
functions defined in GEL files that Genius can load in order to make them available.
+Example:
+<programlisting>function addup(a,b,c) = a+b+c
+</programlisting>
+then <userinput>addup(1,4,9)</userinput> yields 14
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-functions-variable-argument-lists">
+        <title>Variable Argument Lists</title>
+        <para>
+If you include <literal>...</literal> after the last argument name in the function declaration, then Genius 
will allow any number of arguments to be passed in place of that argument. If no arguments were passed then 
that argument will be set to <constant>null</constant>. Otherwise, it will be a horizontal vector containing 
all the arguments. For example:
+<programlisting>function f(a,b...) = b
+</programlisting>
+Then <userinput>f(1,2,3)</userinput> yields <computeroutput>[2,3]</computeroutput>, while 
<userinput>f(1)</userinput> yields a <constant>null</constant>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-functions-passing-functions">
+        <title>Übergabe von Funktionen an Funktionen</title>
+
+        <para>
+In Genius, it is possible to pass a function as an argument to another function. This can be done using 
either ‘function nodes’ or anonymous functions.
+        </para>
+
+        <para>
+If you do not enter the parentheses after a function name, instead of being evaluated, the function will 
instead be returned as a ‘function node’. The function node can then be passed to another function.
+Example:
+<programlisting>function f(a,b) = a(b)+1;
+function b(x) = x*x;
+f(b,2)
+</programlisting>
+        </para>
+        <para>
+To pass functions that are not defined,
+you can use an anonymous function (see <xref linkend="genius-gel-functions-defining"/>).  That is, you want 
to pass a function without giving it a name.
+Syntax:
+<programlisting><![CDATA[function(<comma separated arguments>) = <function body>
+`(<comma separated arguments>) = <function body>
+]]></programlisting>
+Example:
+<programlisting>function f(a,b) = a(b)+1;
+f(`(x) = x*x,2)
+</programlisting>
+This will return 5.
+        </para>
+      </sect2>
+
+
+    <sect2 id="genius-gel-functions-operations">
+      <title>Operationen mit Funktionen</title>
+      <para>
+             Some functions allow arithmetic operations, and some single argument functions such as <link 
linkend="gel-function-exp"><function>exp</function></link> or <link 
linkend="gel-function-ln"><function>ln</function></link>, to operate on the function. For example,
+<programlisting>exp(sin*cos+4)
+</programlisting>
+will return a function that takes <varname>x</varname> and returns 
<userinput>exp(sin(x)*cos(x)+4)</userinput>.  It is functionally equivalent
+to typing
+<programlisting>`(x) = exp(sin(x)*cos(x)+4)
+</programlisting>
+
+This operation can be useful when quickly defining functions. For example to create a function called 
<varname>f</varname>
+to perform the above operation, you can just type:
+<programlisting>f = exp(sin*cos+4)
+</programlisting>
+It can also be used in plotting. For example, to plot sin squared you can enter:
+<programlisting>LinePlot(sin^2)
+</programlisting>
+      </para>
+
+      <warning>
+        <para>
+Not all functions can be used in this way.  For example, when you use a binary operation the functions must 
take the same number of arguments. 
+        </para>
+      </warning>
+    </sect2>
+
+
+    </sect1>
+
+    <sect1 id="genius-gel-separator">
+      <title>Trenner</title>
+      <para>
+             GEL is somewhat different from other languages in how it deals with multiple commands and 
functions.
+             In GEL you must chain commands together with a separator operator.
+That is, if you want to type more than one expression you have to use
+the <literal>;</literal> operator in between the expressions.   This is
+a way in which both expressions are evaluated and the result of the second one (or the last one
+if there is more than two expressions) is returned.
+Suppose you type the following:
+<programlisting>3 ; 5
+</programlisting>
+This expression will yield 5.
+      </para>
+      <para>
+This will require some parenthesizing to make it unambiguous sometimes,
+especially if the <literal>;</literal> is not the top most primitive. This slightly differs from
+other programming languages where the <literal>;</literal> is a terminator of statements, whereas
+in GEL it’s actually a binary operator. If you are familiar with pascal
+this should be second nature. However genius can let you pretend it is a
+terminator to some degree.  If a <literal>;</literal> is found at the end of a parenthesis or a block,
+genius will append a null to it as if you would have written
+<userinput>;null</userinput>.
+This is useful in case you do not want to return a value from say a loop,
+or if you handle the return differently. Note that it will slightly slow down
+the code if it is executed too often as there is one more operator involved.
+      </para>
+      <para>
+             If you are typing expressions in a program you do not have to add a semicolon.  In this case
+             genius will simply print the return value whenever it executes the expression.  However, do 
note that if you are defining a
+             function, the body of the function is a single expression.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comments">
+      <title>Kommentare</title>
+      <para>
+             GEL is similar to other scripting languages in that <literal>#</literal> denotes
+             a comment, that is text that is not meant to be evaluated.  Everything beyond the
+             pound sign till the end of line will just be ignored.  For example,
+<programlisting># This is just a comment
+# every line in a comment must have its own pound sign
+# in the next line we set x to the value 123
+x=123;
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-modular-evaluation">
+      <title>Modulare Auswertung</title>
+      <para>
+             Genius implements modular arithmetic.
+To use it you just add "mod &lt;integer&gt;" after
+the expression.  Example:
+<userinput>2^(5!) * 3^(6!) mod 5</userinput>
+It could be possible to do modular arithmetic by computing with integers and then modding in the end with
+the <literal>%</literal> operator, which simply gives the remainder, but
+that may be time consuming if not impossible when working with larger numbers.
+For example, <userinput>10^(10^10) % 6</userinput> will simply not work (the exponent
+will be too large), while
+<userinput>10^(10^10) mod 6</userinput> is instantaneous.  The first expression first tries to compute the 
integer
+<userinput>10^(10^10)</userinput> and then find remainder after division by 6, while the second expression 
evaluates
+everything modulo 6 to begin with.
+      </para>
+      <para>
+You can calculate the inverses of numbers mod some integer by just using
+rational numbers (of course the inverse has to exist).
+Examples:
+<programlisting>10^-1 mod 101
+1/10 mod 101</programlisting>
+You can also do modular evaluation with matrices including taking inverses,
+powers and dividing.
+Example:
+<programlisting>A = [1,2;3,4]
+B = A^-1 mod 5
+A*B mod 5</programlisting>
+This should yield the identity matrix as B will be the inverse of A mod 5.
+      </para>
+      <para>
+Some functions such as
+<link linkend="gel-function-sqrt"><function>sqrt</function></link> or
+<link linkend="gel-function-log"><function>log</function></link>
+work in a different way when in modulo mode.  These will then work like their
+discrete versions working within the ring of integers you selected.  For
+example:
+<programlisting>genius&gt; sqrt(4) mod 7
+=
+[2, 5]
+genius&gt; 2*2 mod 7
+= 4</programlisting>
+       <function>sqrt</function> will actually return all the possible square
+       roots.
+      </para>
+      <para>
+             Do not chain mod operators, simply place it at the end of the computation, all computations in 
the expression on the left
+             will be carried out in mod arithmetic.  If you place a mod inside
+             a mod, you will get unexpected results.  If you simply want to
+             mod a single number and control exactly when remainders are
+             taken, best to use the <literal>%</literal> operator.  When you
+             need to chain several expressions in modular arithmetic with
+             different divisors, it may be best to just split up the expression into several and use
+             temporary variables to avoid a mod inside a mod.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-operator-list">
+      <title>Liste der GEL-Operatoren</title>
+
+      <para>
+             Everything in GEL is really just an expression.  Expressions are stringed together with
+             different operators.  As we have seen, even the separator is simply a binary operator
+             in GEL.  Here is a list of the operators in GEL. 
+      </para>
+
+      <variablelist>
+        <varlistentry>
+         <term><userinput>a;b</userinput></term>
+         <listitem>
+           <para>
+             The separator, just evaluates both
+            <varname>a</varname> and
+            <varname>b</varname>,
+            but returns only the result of
+            <varname>b</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a=b</userinput></term>
+         <listitem>
+           <para>
+            The assignment operator.  This assigns <varname>b</varname> to
+<varname>a</varname> (<varname>a</varname> must be a valid <link linkend="genius-gel-lvalues">lvalue</link>) 
(note however that this operator
+may be translated to <literal>==</literal> if used in a place where boolean
+expression is expected)
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:=b</userinput></term>
+         <listitem>
+           <para>
+            The assignment operator.  Assigns <varname>b</varname> to
+<varname>a</varname> (<varname>a</varname> must be a valid <link 
linkend="genius-gel-lvalues">lvalue</link>).  This is
+different from <literal>=</literal> because it never gets translated to a
+<literal>==</literal>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>|a|</userinput></term>
+         <listitem>
+           <para>
+                  Absolute value.
+                  In case the expression is a complex number the result will be the modulus
+(distance from the origin).  For example:
+<userinput>|3 * e^(1i*pi)|</userinput>
+returns 3.
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a^b</userinput></term>
+         <listitem>
+           <para>
+             Exponentiation, raises <varname>a</varname> to the <varname>b</varname>th power.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.^b</userinput></term>
+         <listitem>
+           <para>
+            Element by element exponentiation.  Raise each element of a matrix
+            <varname>a</varname> to the <varname>b</varname>th power.  Or if
+            <varname>b</varname> is a matrix of the same size as
+            <varname>a</varname>, then do the operation element by element.
+            If <varname>a</varname> is a number and <varname>b</varname> is a
+            matrix then it creates matrix of the same size as
+            <varname>b</varname> with <varname>a</varname> raised to all the
+            different powers in <varname>b</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a+b</userinput></term>
+         <listitem>
+           <para>
+             Addition.  Adds two numbers, matrices, functions or strings.  If
+            you add a string to anything the result will just be a string.  If one is
+            a square matrix and the other a number, then the number is multiplied by
+            the identity matrix.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a-b</userinput></term>
+         <listitem>
+           <para>
+             Subtraction.  Subtract two numbers, matrices or functions.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a*b</userinput></term>
+         <listitem>
+           <para>
+             Multiplication.  This is the normal matrix multiplication.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.*b</userinput></term>
+         <listitem>
+           <para>
+            Element by element multiplication if <varname>a</varname> and
+            <varname>b</varname> are matrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a/b</userinput></term>
+         <listitem>
+           <para>
+                  Division.  When <varname>a</varname> and <varname>b</varname> are just numbers
+                  this is the normal division.  When they are matrices, then this is
+                  equivalent to <userinput>a*b^-1</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a./b</userinput></term>
+         <listitem>
+           <para>
+                  Element by element division.  Same as <userinput>a/b</userinput> for
+                  numbers, but operates element by element on matrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a\b</userinput></term>
+         <listitem>
+           <para>
+             Back division.  That is this is the same as <userinput>b/a</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.\b</userinput></term>
+         <listitem>
+           <para>
+             Element by element back division.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a%b</userinput></term>
+         <listitem>
+           <para>
+            The mod operator.  This does not turn on the <link 
linkend="genius-gel-modular-evaluation">modular mode</link>, but
+             just returns the remainder of integer division
+             <userinput>a/b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.%b</userinput></term>
+         <listitem>
+           <para>
+             Element by element mod operator.  Returns the remainder
+            after element by element integer division
+            <userinput>a./b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a mod b</userinput></term>
+         <listitem>
+           <para>
+             Modular evaluation operator.  The expression <varname>a</varname>
+            is evaluated modulo <varname>b</varname>.  See <xref linkend="genius-gel-modular-evaluation"/>.
+            Some functions and operators behave differently modulo an integer.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!</userinput></term>
+         <listitem>
+           <para>
+             Factorial operator.  This is like
+            <userinput>1*...*(n-2)*(n-1)*n</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!!</userinput></term>
+         <listitem>
+           <para>
+             Double factorial operator.  This is like
+            <userinput>1*...*(n-4)*(n-2)*n</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a==b</userinput></term>
+         <listitem>
+           <para>
+            Equality operator.
+            Returns <constant>true</constant> or <constant>false</constant>
+            depending on <varname>a</varname> and <varname>b</varname> being equal or not.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!=b</userinput></term>
+         <listitem>
+           <para>
+             Inequality operator,
+            returns <constant>true</constant> if <varname>a</varname> does not
+            equal <varname>b</varname> else returns <constant>false</constant>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;&gt;b</userinput></term>
+         <listitem>
+           <para>
+             Alternative inequality operator,
+            returns <constant>true</constant> if <varname>a</varname> does not
+            equal <varname>b</varname> else returns <constant>false</constant>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>
+             Less than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt;= b &lt;= c</userinput> (can
+            also be combined with the less than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>
+             Greater than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt;= b &gt;= c</userinput>
+            (and they can also be combined with the greater than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a&lt;b</userinput></term>
+         <listitem>
+           <para>
+             Less than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt; b &lt; c</userinput>
+            (they can also be combined with the less than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;b</userinput></term>
+         <listitem>
+           <para>
+             Greater than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt; b &gt; c</userinput>
+            (they can also be combined with the greater than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=&gt;b</userinput></term>
+         <listitem>
+           <para>
+            Comparison operator.  If <varname>a</varname> is equal to
+            <varname>b</varname> it returns 0, if <varname>a</varname> is less
+            than <varname>b</varname> it returns -1 and if
+            <varname>a</varname> is greater than <varname>b</varname> it
+            returns 1.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a and b</userinput></term>
+         <listitem>
+           <para>
+                  Logical and.  Returns true if both
+                  <varname>a</varname> and <varname>b</varname> are true,
+                  else returns false.  If given numbers, nonzero numbers
+                  are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a or b</userinput></term>
+         <listitem>
+           <para>
+             Logical or.
+            Returns true if either
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a xor b</userinput></term>
+         <listitem>
+           <para>
+             Logical xor.
+            Returns true if exactly one of
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>not a</userinput></term>
+         <listitem>
+           <para>
+                  Logical not.  Returns the logical negation of <varname>a</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>-a</userinput></term>
+         <listitem>
+           <para>
+             Negation operator.  Returns the negative of a number or a matrix (works element-wise on a 
matrix).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>&amp;a</userinput></term>
+         <listitem>
+           <para>
+             Variable referencing (to pass a reference to a variable).
+            See <xref linkend="genius-gel-references"/>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>*a</userinput></term>
+         <listitem>
+           <para>
+             Variable dereferencing (to access a referenced variable).
+            See <xref linkend="genius-gel-references"/>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a'</userinput></term>
+         <listitem>
+           <para>
+                  Matrix conjugate transpose.  That is, rows and columns get swapped and we take complex 
conjugate of all entries.  That is
+                  if the i,j element of <varname>a</varname> is x+iy, then the j,i element of 
<userinput>a'</userinput> is x-iy.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.'</userinput></term>
+         <listitem>
+           <para>
+             Matrix transpose, does not conjugate the entries.  That is, 
+            the i,j element of <varname>a</varname>  becomes the j,i element of <userinput>a.'</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,c)</userinput></term>
+         <listitem>
+           <para>
+            Get element of a matrix in row <varname>b</varname> and column
+            <varname>c</varname>.   If <varname>b</varname>,
+            <varname>c</varname> are vectors, then this gets the corresponding
+            rows, columns or submatrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,)</userinput></term>
+         <listitem>
+           <para>
+             Get row of a matrix (or multiple rows if <varname>b</varname> is a vector).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,:)</userinput></term>
+         <listitem>
+           <para>Gleiches wie oben.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(,c)</userinput></term>
+         <listitem>
+           <para>
+            Get column of a matrix (or columns if <varname>c</varname> is a
+            vector).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(:,c)</userinput></term>
+         <listitem>
+           <para>Gleiches wie oben.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b)</userinput></term>
+         <listitem>
+           <para>
+             Get an element from a matrix treating it as a vector.  This will
+            traverse the matrix row-wise.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b</userinput></term>
+         <listitem>
+           <para>
+             Build a vector from <varname>a</varname> to <varname>b</varname> (or specify a row, column 
region for the <literal>@</literal> operator).  For example to get rows 2 to 4 of matrix <varname>A</varname> 
we could do
+            <programlisting>A@(2:4,)
+            </programlisting>
+            as <userinput>2:4</userinput> will return a vector
+            <userinput>[2,3,4]</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b:c</userinput></term>
+         <listitem>
+           <para>
+            Build a vector from <varname>a</varname> to <varname>c</varname>
+            with <varname>b</varname> as a step.  That is for example
+            <programlisting>genius&gt; 1:2:9
+=
+`[1, 3, 5, 7, 9]
+</programlisting>
+           </para>
+          <para>
+            When the numbers involved are floating point numbers, for example
+            <userinput>1.0:0.4:3.0</userinput>, the output is what is expected
+            even though adding 0.4 to 1.0 five times is actually just slightly
+            more than 3.0 due to the way that floating point numbers are
+            stored in base 2 (there is no 0.4, the actual number stored is
+            just ever so slightly bigger).  The way this is handled is the
+            same as in the for, sum, and prod loops.  If the end is within
+            <userinput>2^-20</userinput> times the step size of the endpoint,
+            the endpoint is used and we assume there were roundoff errors.
+            This is not perfect, but it handles the majority of the cases.
+            This check is done only from version 1.0.18 onwards, so execution
+            of your code may differ on older versions.  If you want to avoid
+            dealing with this issue, use actual rational numbers, possibly
+            using the <function>float</function> if you wish to get floating
+            point numbers in the end.  For example
+            <userinput>1:2/5:3</userinput> does the right thing and
+            <userinput>float(1:2/5:3)</userinput> even gives you floating
+            point numbers and is ever so slightly more precise than
+            <userinput>1.0:0.4:3.0</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>(a)i</userinput></term>
+         <listitem>
+           <para>
+            Make <varname>a</varname> into an imaginary number (multiply <varname>a</varname> by the
+            imaginary).  Normally the imaginary number <varname>i</varname> is
+            written as <userinput>1i</userinput>.  So the above is equal to
+            <programlisting>(a)*1i
+            </programlisting>
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>`a</userinput></term>
+         <listitem>
+           <para>
+             Quote an identifier so that it doesn't get evaluated.  Or
+            quote a matrix so that it doesn't get expanded.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a swapwith b</userinput></term>
+         <listitem>
+           <para>
+                  Swap value of <varname>a</varname> with the value
+                  of <varname>b</varname>.  Currently does not operate
+                  on ranges of matrix elements.
+                  It returns <constant>null</constant>.
+                  Available from version 1.0.13.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a</userinput></term>
+         <listitem>
+           <para>
+                  Increment the variable <varname>a</varname> by 1.  If
+                  <varname>a</varname> is a matrix, then increment each element.
+                  This is equivalent to <userinput>a=a+1</userinput>, but 
+                  it is somewhat faster.  It returns <constant>null</constant>.
+                  Available from version 1.0.13.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a by b</userinput></term>
+         <listitem>
+           <para>
+                  Increment the variable <varname>a</varname> by <varname>b</varname>.  If
+                  <varname>a</varname> is a matrix, then increment each element.
+                  This is equivalent to <userinput>a=a+b</userinput>, but 
+                  it is somewhat faster.  It returns <constant>null</constant>.
+                  Available from version 1.0.13.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+
+<note>
+<para>
+The @() operator makes the : operator most useful.  With this you can specify regions of a matrix.  So that 
a@(2:4,6) is the rows 2,3,4 of the column 6. Or a@(,1:2) will get you the first two columns of a matrix. You 
can also assign to the @() operator, as long as the right value is a matrix that matches the region in size, 
or if it is any other type of value.
+</para>
+</note>
+
+<note>
+<para>
+The comparison operators (except for the &lt;=&gt; operator, which behaves normally), are not strictly 
binary operators, they can in fact be grouped in the normal mathematical way, e.g.: (1&lt;x&lt;=y&lt;5) is a 
legal boolean expression and means just what it should, that is (1&lt;x and x≤y and y&lt;5)
+</para>
+</note>
+
+<note>
+<para>
+The unitary minus operates in a different fashion depending on where it
+appears.  If it appears before a number it binds very closely, if it appears in
+front of an expression it binds less than the power and factorial operators.
+So for example <userinput>-1^k</userinput> is really <userinput>(-1)^k</userinput>,
+but <userinput>-foo(1)^k</userinput> is really <userinput>-(foo(1)^k)</userinput>.  So
+be careful how you use it and if in doubt, add parentheses.
+</para>
+</note>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL Programming ========================== -->
+  <chapter id="genius-gel-programming">
+    <title>Programmierung mit GEL</title>
+
+    <sect1 id="genius-gel-conditionals">
+      <title>Bedingungen</title>
+      <para>
+Syntax:
+<programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
+]]></programlisting>
+If <literal>else</literal> is omitted, then if the <literal>expression1</literal> yields 
<constant>false</constant> or 0, <literal>NULL</literal> is returned.
+      </para>
+      <para>
+Examples:
+<programlisting><![CDATA[if(a==5)then(a=a-1)
+if b<a then b=a
+if c>0 then c=c-1 else c=0
+a = ( if b>0 then b else 1 )
+]]></programlisting>
+Note that <literal>=</literal> will be translated to <literal>==</literal> if used inside the expression for 
<literal>if</literal>, so
+<programlisting>if a=5 then a=a-1
+</programlisting>
+will be interpreted as:
+<programlisting>if a==5 then a:=a-1
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-loops">
+      <title>Schleifen</title>
+
+      <sect2 id="genius-gel-loops-while">
+        <title>While-Schleifen</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[while <expression1> do <expression2>
+until <expression1> do <expression2>
+do <expression2> while <expression1>
+do <expression2> until <expression1>]]></programlisting>
+
+       These are similar to other languages.  However, as in GEL it is simply an expression that must have 
some return value, these
+       constructs will simply return the result of the last iteration or <literal>NULL</literal> if no 
iteration was done.  In the boolean expression, <literal>=</literal> is translated into <literal>==</literal> 
just as for the <literal>if</literal> statement.
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-for">
+        <title>For-Schleifen</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
+for <identifier> = <from> to <to> by <increment> do <body>]]></programlisting>
+
+Loop with identifier being set to all values from <literal>&lt;from&gt;</literal> to 
<literal>&lt;to&gt;</literal>, optionally using an increment other than 1. These are faster, nicer and more 
compact than the normal loops such as above, but less flexible. The identifier must be an identifier and 
can't be a dereference. The value of identifier is the last value of identifier, or 
<literal>&lt;from&gt;</literal> if body was never evaluated. The variable is guaranteed to be initialized 
after a loop, so you can safely use it.  Also the <literal>&lt;from&gt;</literal>, 
<literal>&lt;to&gt;</literal> and <literal>&lt;increment&gt;</literal> must be non complex values. The 
<literal>&lt;to&gt;</literal> is not guaranteed to be hit, but will never be overshot, for example the 
following prints out odd numbers from 1 to 19:
+<programlisting>for i = 1 to 20 by 2 do print(i)
+</programlisting>
+        </para>
+        <para>
+               When one of the values is a floating point number, then the
+               final check is done to within 2^-20 of the step size.  That is,
+               even if we overshoot by 2^-20 times the "by" above, we still execute the last
+               iteration.  This way 
+<programlisting>for x = 0 to 1 by 0.1 do print(x)
+</programlisting>
+does the expected even though adding 0.1 ten times becomes just slightly more than 1.0 due to the way that 
floating point numbers
+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
+the majority of the cases.  If you want to avoid dealing with this issue, use actual rational numbers for 
example:
+<programlisting>for x = 0 to 1 by 1/10 do print(x)
+</programlisting>
+               This check is done only from version 1.0.16 onwards, so execution of your code may differ on 
older versions.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-foreach">
+        <title>Foreach-Schleifen</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting>
+
+                       For each element in the matrix, going row by row from left to right we execute the 
body
+                      with the identifier set to the current element. To
+print numbers 1,2,3 and 4 in this order you could do:
+<programlisting>for n in [1,2:3,4] do print(n)
+</programlisting>
+If you wish to run through the rows and columns of a matrix, you can use
+the RowsOf and ColumnsOf functions, which return a vector of the rows or
+columns of the matrix.  So,
+<programlisting>for n in RowsOf ([1,2:3,4]) do print(n)
+</programlisting>
+will print out [1,2] and then [3,4].
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-break-continue">
+        <title>Break and Continue</title>
+        <para>
+You can also use the <literal>break</literal> and <literal>continue</literal> commands in loops. The 
continue <literal>continue</literal> command will restart the current loop at its next iteration, while the 
<literal>break</literal> command exits the current loop.
+<programlisting><![CDATA[while(<expression1>) do (
+  if(<expression2>) break
+  else if(<expression3>) continue;
+  <expression4>
+)
+]]></programlisting>
+        </para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-sums-products">
+      <title>Summen und Produkte</title>
+      <para>
+Syntax:
+<programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
+sum <identifier> = <from> to <to> by <increment> do <body>
+sum <identifier> in <matrix> do <body>
+prod <identifier> = <from> to <to> do <body>
+prod <identifier> = <from> to <to> by <increment> do <body>
+prod <identifier> in <matrix> do <body>]]></programlisting>
+
+If you substitute <literal>for</literal> with <literal>sum</literal> or <literal>prod</literal>, then you 
will get a sum or a product instead of a <literal>for</literal> loop. Instead of returning the last value, 
these will return the sum or the product of the values respectively.
+      </para>
+      <para>
+If no body is executed (for example <userinput>sum i=1 to 0 do ...</userinput>) then <literal>sum</literal> 
returns 0 and <literal>prod</literal> returns 1 as is the standard convention.
+      </para>
+      <para>
+             For floating point numbers the same roundoff error protection is done as in the for loop.
+            See <xref linkend="genius-gel-loops-for"/>.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comparison-operators">
+      <title>Vergleichsoperatoren</title>
+      <para>
+       The following standard comparison operators are supported in GEL and have the obvious meaning:
+       <literal>==</literal>, <literal>&gt;=</literal>,
+       <literal>&lt;=</literal>, <literal>!=</literal>,
+       <literal>&lt;&gt;</literal>, <literal>&lt;</literal>,
+       <literal>&gt;</literal>.  They return <constant>true</constant> or
+       <constant>false</constant>.
+       The operators
+       <literal>!=</literal> and <literal>&lt;&gt;</literal> are the same
+       thing and mean "is not equal to".
+       GEL also supports the operator
+       <literal>&lt;=&gt;</literal>, which returns -1 if left side is
+       smaller, 0 if both sides are equal, 1 if left side is larger.
+      </para>
+
+      <para>
+       Normally <literal>=</literal> is translated to <literal>==</literal> if
+       it happens to be somewhere where GEL is expecting a condition such as
+       in the if condition.  For example
+       <programlisting>if a=b then c
+if a==b then c
+</programlisting>
+       are the same thing in GEL.  However you should really use
+       <literal>==</literal> or <literal>:=</literal> when you want to compare
+       or assign respectively if you want your code to be easy to read and
+       to avoid mistakes.
+      </para>
+
+      <para>
+       All the comparison operators (except for the
+       <literal>&lt;=&gt;</literal> operator, which
+       behaves normally), are not strictly binary operators, they can in fact
+       be grouped in the normal mathematical way, e.g.:
+       (<literal>1&lt;x&lt;=y&lt;5</literal>) is
+       a legal boolean expression and means just what it should, that is
+       (1&lt;x and x≤y and y&lt;5)
+      </para>
+      <para>
+       To build up logical expressions use the words <literal>not</literal>,
+       <literal>and</literal>, <literal>or</literal>, <literal>xor</literal>.
+       The operators <literal>or</literal> and <literal>and</literal> are
+special beasts as they evaluate their arguments one by one, so the usual trick
+for conditional evaluation works here as well. For example, <literal>1 or a=1</literal> will not set
+<literal>a=1</literal> since the first argument was true.
+      </para>
+    </sect1>
+
+      <sect1 id="genius-gel-variables-global">
+        <title>Globale Variablen und Variablenbereiche</title>
+       <para>
+         GEL is a
+         <ulink url="https://en.wikipedia.org/wiki/Scope_%28programming%29";>
+         dynamically scoped language</ulink>.  We will explain what this
+         means below.  That is, normal variables and functions are dynamically
+         scoped.  The exception are 
+         <link linkend="genius-gel-parameters">parameter variables</link>,
+         which are always global.
+       </para>
+       <para>
+         Like most programming languages, GEL has different types
+         of variables.  Normally when a variable is defined in a function,
+         it is visible from that function and from all functions that are
+         called (all higher contexts).  For example, suppose a function
+         <function>f</function> defines a variable <varname>a</varname>
+         and then calls function <function>g</function>.  Then
+         function <function>g</function> can reference
+         <varname>a</varname>.  But once <function>f</function> returns,
+         the variable <varname>a</varname> goes out of scope.
+         For example, the following code will print out 5.
+         The function <function>g</function> cannot be called on the
+         top level (outside <function>f</function> as <varname>a</varname>
+         will not be defined).
+<programlisting>function f() = (a:=5; g());
+function g() = print(a);
+f();
+</programlisting>
+        </para>
+        <para>
+         If you define a variable inside a function it will override
+         any variables defined in calling functions.  For example,
+         we modify the above code and write:
+<programlisting>function f() = (a:=5; g());
+function g() = print(a);
+a:=10;
+f();
+</programlisting>
+         This code will still print out 5.  But if you call
+         <function>g</function> outside of <function>f</function> then
+         you will get a printout of 10.  Note that
+         setting <varname>a</varname>
+         to 5 inside <function>f</function> does not change
+         the value of <varname>a</varname> at the top (global) level,
+         so if you now check the value of <varname>a</varname> it will
+         still be 10.
+        </para>
+       <para>
+         Function arguments are exactly like variables defined inside
+         the function, except that they are initialized with the value
+         that was passed to the function.  Other than this point, they are
+         treated just like all other variables defined inside the
+         function.
+       </para>
+       <para>
+         Functions are treated exactly like variables.  Hence you can
+         locally redefine functions.  Normally (on the top level) you
+         cannot redefine protected variables and functions.  But locally
+         you can do this.  Consider the following session:
+<screen><prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
+= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
+<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
+= 1e20
+</screen>
+       </para>
+       <para>
+         Functions and variables defined at the top level are
+         considered global.  They are visible from anywhere.  As we
+         said the following function <function>f</function>
+         will not change the value of <varname>a</varname> to 5.
+<programlisting>a=6;
+function f() = (a:=5);
+f();
+</programlisting>
+         Sometimes, however, it is necessary to set
+a global variable from inside a function.  When this behavior is needed,
+use the
+<link linkend="gel-function-set"><function>set</function></link> function. Passing a string or a quoted 
identifier to
+this function sets the variable globally (on the top level).
+For example, to set
+<varname>a</varname> to the value 3 you could call:
+<programlisting>set(`a,3)
+</programlisting>
+or:
+<programlisting>set("a",3)
+</programlisting>
+        </para>
+        <para>
+         The <function>set</function> function always sets the toplevel
+         global.  There is no way to set a local variable in some function
+         from a subroutine.  If this is required, must use passing by
+         reference.
+        </para>
+       <para>
+               See also the
+               <link linkend="gel-function-SetElement"><function>SetElement</function></link> and
+               <link linkend="gel-function-SetVElement"><function>SetVElement</function></link> functions.
+       </para>
+       <para>
+         So to recap in a more technical language:  Genius operates with
+         different numbered contexts.  The top level is the context 0
+         (zero).  Whenever a function is entered, the context is raised,
+         and when the function returns the context is lowered.  A function
+         or a variable is always visible from all higher numbered contexts.
+         When a variable was defined in a lower numbered context, then
+         setting this variable has the effect of creating a new local
+         variable in the current context number and this variable
+         will now be visible from all higher numbered contexts.
+       </para>
+       <para>
+         There are also true local variables that are not seen from
+         anywhere but the current context.  Also when returning functions
+         by value it may reference variables not visible from higher context
+         and this may be a problem.  See the sections
+         <link linkend="genius-gel-true-local-variables">True
+         Local Variables</link> and
+         <link linkend="genius-gel-returning-functions">Returning
+         Functions</link>.
+       </para>
+      </sect1>
+
+      <sect1 id="genius-gel-parameters">
+        <title>Parametervariablen</title>
+       <para>
+         As we said before, there exist special variables called parameters
+         that exist in all scopes.  To declare a parameter called
+         <varname>foo</varname> with the initial value 1, we write
+<programlisting><![CDATA[parameter foo = 1
+]]></programlisting>
+         From then on, <varname>foo</varname> is a strictly global variable.
+         Setting <varname>foo</varname> inside any function will modify the
+         variable in all contexts, that is, functions do not have a private
+         copy of parameters.
+        </para>
+        <para>
+         When you undefine a parameter using the
+         <link linkend="gel-function-undefine">
+         <function>undefine</function></link> function, it stops being
+         a parameter.
+        </para>
+        <para>
+         Some parameters are built-in and modify the behavior of genius.
+        </para>
+      </sect1>
+
+    <sect1 id="genius-gel-returning">
+      <title>Rückgabewerte</title>
+       <para>
+         Normally a function is one or several expressions separated by a
+semicolon, and the value of the last expression is returned.  This is fine for
+simple functions, but
+sometimes you do not want a function to return the last thing calculated. You may, for example, want to 
return from a middle of a function. In this case, you can use the <literal>return</literal> keyword. 
<literal>return</literal> takes one argument, which is the value to be returned.
+      </para>
+      <para>Beispiel: <programlisting><![CDATA[function f(x) = (
+  y=1;
+  while true do (
+    if x>50 then return y;
+    y=y+1;
+    x=x+1
+  )
+)
+]]></programlisting></para>
+    </sect1>
+
+
+    <sect1 id="genius-gel-references">
+      <title>Referenzen</title>
+      <para>
+       It may be necessary for some functions to return more than one value.
+       This may be accomplished by returning a vector of values, but many
+       times it is convenient to use passing a reference to a variable.
+       You pass a reference to a variable to a function, and the function
+       will set the variable for you using a dereference.  You do not have
+       to use references only for this purpose, but this is their main use.
+      </para>
+      <para>
+       When using functions that return values through references
+       in the argument list, just pass the variable name with an ampersand.
+       For example the following code will compute an eigenvalue of a matrix
+       <varname>A</varname> with initial eigenvector guess
+       <varname>x</varname>, and store the computed eigenvector
+       into the variable named <varname>v</varname>:
+<programlisting><![CDATA[RayleighQuotientIteration (A,x,0.001,100,&v)
+]]></programlisting>
+      </para>
+      <para>
+The details of how references work and the syntax is similar to the C language.
+The operator
+<literal>&amp;</literal> references a variable
+and <literal>*</literal> dereferences a variable. Both can only be applied to an identifier,
+so <literal>**a</literal> is not a legal expression in GEL.
+      </para>
+      <para>
+References are best explained by an example:
+<programlisting><![CDATA[a=1;
+b=&a;
+*b=2;
+]]></programlisting>
+now <varname>a</varname> contains 2.  You can also reference functions:
+<programlisting><![CDATA[function f(x) = x+1;
+t=&f;
+*t(3)
+]]></programlisting>
+gives us 4.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-lvalues">
+      <title>Lvalues (linke Werte)</title>
+      <para>
+       An lvalue is the left hand side of an assignment. In other words, an
+       lvalue is what you assign something to.  Valid lvalues are:
+<variablelist>
+  <varlistentry>
+    <term><userinput>a</userinput></term>
+    <listitem>
+      <para>
+       Identifier.  Here we would be setting the variable of name
+       <varname>a</varname>.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>*a</userinput></term>
+    <listitem>
+      <para>
+       Dereference of an identifier.  This will set whatever variable
+       <varname>a</varname> points to.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>a@(&lt;region&gt;)</userinput></term>
+    <listitem>
+      <para>
+       A region of a matrix.  Here the region is specified normally as with
+       the regular @() operator, and can be a single entry, or an entire
+       region of the matrix.
+      </para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+      </para>
+      <para>
+Examples:
+<programlisting>a:=4
+*tmp := 89
+a@(1,1) := 5
+a@(4:8,3) := [1,2,3,4,5]'
+</programlisting>
+Note that both <literal>:=</literal> and <literal>=</literal> can be used
+interchangeably.  Except if the assignment appears in a condition.
+It is thus always safer to just use
+<literal>:=</literal> when you mean assignment, and <literal>==</literal>
+when you mean comparison.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <chapter id="genius-gel-programming-advanced">
+    <title>Fortgeschrittene Programmierung mit GEL</title>
+
+    <sect1 id="genius-gel-error-handling">
+      <title>Fehlerbehandlung</title>
+      <para>
+If you detect an error in your function, you can bail out of it. For normal
+errors, such as wrong types of arguments, you can fail to compute the function
+by adding the statement <literal>bailout</literal>. If something went
+really wrong and you want to completely kill the current computation, you can
+use <literal>exception</literal>.
+      </para>
+      <para>
+       For example if you want to check for arguments in your function.  You
+could use the following code.
+<programlisting>function f(M) = (
+  if not IsMatrix (M) then (
+    error ("M not a matrix!");
+    bailout
+  );
+  ...
+)
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-toplevel-syntax">
+      <title>Übergeordnete Syntax</title>
+      <para>
+       The syntax is slightly different if you enter statements on
+       the top level versus when they are inside parentheses or
+       inside functions.  On the top level, enter acts the same as if
+       you press return on the command line.  Therefore think of programs
+       as just a sequence of lines as if they were entered on the command line.
+       In particular, you do not need to enter the separator at the end of the
+       line (unless it is of course part of several statements inside
+       parentheses).  When a statement does not end with a separator on the
+       top level, the result is printed after being executed.
+      </para>
+      <para>
+       For example,
+       <programlisting>function f(x)=x^2
+f(3)
+</programlisting>
+       will print first the result of setting a function (a representation of
+       the function, in this case <computeroutput>(`(x)=(x^2))</computeroutput>)
+       and then the expected 9.  To avoid this, enter a separator
+       after the function definition.
+       <programlisting>function f(x)=x^2;
+f(3)
+</programlisting>
+       If you need to put a separator into your function then you have to surround with
+       parenthesis.  For example:
+<programlisting>function f(x)=(
+  y=1;
+  for j=1 to x do
+    y = y+j;
+  y^2
+);
+</programlisting>
+      </para>
+      <para>
+       The following code will produce an error when entered on the top
+       level of a program, while it will work just fine in a function.
+<programlisting>if Something() then
+  DoSomething()
+else
+  DoSomethingElse()
+</programlisting>
+      </para>
+      <para>
+       The problem is that after <application>Genius Mathematics Tool</application> sees the end of line 
after the
+       second line, it will decide that we have whole statement and
+       it will execute it.  After the execution is done, <application>Genius Mathematics Tool</application> 
will
+       go on to the next
+       line, it will see <literal>else</literal>, and it will produce
+       a parsing error.  To fix this, use parentheses.  <application>Genius Mathematics Tool</application> 
will not
+       be satisfied until it has found that all parentheses are closed.
+<programlisting>if Something() then (
+  DoSomething()
+) else (
+  DoSomethingElse()
+)
+</programlisting>
+      </para>
+    </sect1>
+
+     <sect1 id="genius-gel-returning-functions">
+       <title>Funktionen als Rückgabe</title>
+       <para>
+         It is possible to return functions as value.  This way you can
+         build functions that construct special purpose functions according
+         to some parameters.  The tricky bit is what variables does the
+         function see.  The way this works in GEL is that when a function
+         returns another function, all identifiers referenced in the
+         function body that went out of scope
+         are prepended a private dictionary of the returned
+         function.  So the function will see all variables that were in
+         scope
+         when it was defined.  For example, we define a function that
+         returns a function that adds 5 to its argument.
+<programlisting>function f() = (
+  k = 5;
+  `(x) = (x+k)
+)
+</programlisting>
+         Notice that the function adds <varname>k</varname> to
+         <varname>x</varname>.  You could use this as follows.
+<programlisting>g = f();
+g(5)
+</programlisting>
+         And <userinput>g(5)</userinput> should return 10.
+        </para>
+       <para>
+         One thing to note is that the value of <varname>k</varname>
+         that is used is the one that's in effect when the
+         <function>f</function> returns.  For example:
+<programlisting>function f() = (
+  k := 5;
+  function r(x) = (x+k);
+  k := 10;
+  r
+)
+</programlisting>
+         will return a function that adds 10 to its argument rather than
+         5.  This is because the extra dictionary is created only when
+         the context
+         in which the function was defined ends, which is when the function
+         <function>f</function> returns.  This is consistent with how you
+         would expect the function <function>r</function> to work inside
+         the function <function>f</function> according to the rules of
+         scope of variables in GEL.  Only those variables are added to the
+         extra dictionary that are in the context that just ended and
+         no longer exists.  Variables
+         used in the function that are in still valid contexts will work
+         as usual, using the current value of the variable.
+         The only difference is with global variables and functions.
+         All identifiers that referenced global variables at time of
+         the function definition are not added to the private dictionary.
+         This is to avoid much unnecessary work when returning functions
+         and would rarely be a problem.  For example, suppose that you
+         delete the "k=5" from the function <function>f</function>,
+         and at the top level you define <varname>k</varname> to be
+         say 5.  Then when you run <function>f</function>, the function
+         <function>r</function> will not put <varname>k</varname> into
+         the private dictionary because it was global (toplevel)
+         at the time of definition of <function>r</function>.
+       </para>
+       <para>
+         Sometimes it is better to have more control over how variables
+         are copied into the private dictionary.  Since version 1.0.7,
+         you can specify which
+         variables are copied into the private dictionary by putting
+         extra square brackets after the arguments with the list of
+         variables to be copied separated by commas.
+         If you do this, then variables are
+         copied into the private dictionary at time of the function
+         definition, and the private dictionary is not touched afterwards.
+         For example
+<programlisting>function f() = (
+  k := 5;
+  function r(x) [k] = (x+k);
+  k := 10;
+  r
+)
+</programlisting>
+         will return a function that when called will add 5 to its
+         argument.  The local copy of <varname>k</varname> was created
+         when the function was defined.
+       </para>
+       <para>
+         When you want the function to not have any private dictionary
+         then put empty square brackets after the argument list.  Then
+         no private dictionary will be created at all.  Doing this is
+         good to increase efficiency when a private dictionary is not
+         needed or when you want the function to lookup all variables
+         as it sees them when called.  For example suppose you want
+         the function returned from <function>f</function> to see
+         the value of <varname>k</varname> from the toplevel despite
+         there being a local variable of the same name during definition.
+         So the code
+<programlisting>function f() = (
+  k := 5;
+  function r(x) [] = (x+k);
+  r
+);
+k := 10;
+g = f();
+g(10)
+</programlisting>
+         will return 20 and not 15, which would happen if
+         <varname>k</varname> with a value of 5 was added to the private
+         dictionary.
+       </para>
+    </sect1>
+
+    <sect1 id="genius-gel-true-local-variables">
+      <title>Echte lokale Variablen</title>
+      <para>
+       When passing functions into other functions, the normal scoping of
+       variables might be undesired.  For example:
+<programlisting>k := 10;
+function r(x) = (x+k);
+function f(g,x) = (
+  k := 5;
+  g(x)
+);
+f(r,1)
+</programlisting>
+       you probably want the function <function>r</function>
+       when passed as <function>g</function> into <function>f</function>
+       to see <varname>k</varname> as 10 rather than 5, so that
+       the code returns 11 and not 6.  However, as written, the function
+       when executed will see the <varname>k</varname> that is
+       equal to 5.  There are two ways to solve this.  One would be
+       to have <function>r</function> get <varname>k</varname> in a
+       private dictionary using the square bracket notation section
+       <link linkend="genius-gel-returning-functions">Returning
+       Functions</link>.
+      </para>
+      <para>
+       But there is another solution.  Since version 1.0.7 there are
+       true local variables.  These are variables that are visible only
+       from the current context and not from any called functions.
+       We could define <varname>k</varname> as a local variable in the
+       function <function>f</function>.  To do this add a
+       <command>local</command> statement as the first statement in the
+       function (it must always be the first statement in the function).
+       You can also make any arguments be local variables as well.
+       That is,
+<programlisting>function f(g,x) = (
+  local g,x,k;
+  k := 5;
+  g(x)
+);
+</programlisting>
+       Then the code will work as expected and prints out 11.
+       Note that the <command>local</command> statement initializes
+       all the referenced variables (except for function arguments) to
+       a <constant>null</constant>.
+      </para>
+      <para>
+       If all variables are to be created as locals you can just pass an
+       asterisk instead of a list of variables.  In this case the variables
+       will not be initialized until they are actually set of course.
+       So the following definition of <function>f</function>
+       will also work:
+<programlisting>function f(g,x) = (
+  local *;
+  k := 5;
+  g(x)
+);
+</programlisting>
+      </para>
+      <para>
+       It is good practice that all functions that take other functions
+       as arguments use local variables.  This way the passed function 
+       does not see implementation details and get confused.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-startup-procedure">
+      <title>GEL Startprozedur</title>
+      <para>
+First the program looks for the installed library file (the compiled version <filename>lib.cgel</filename>) 
in the installed directory, then it looks into the current directory, and then it tries to load an uncompiled 
file called
+<filename>~/.geniusinit</filename>.
+      </para>
+      <para>
+If you ever change the library in its installed place, you’ll have to
+first compile it with <command>genius --compile loader.gel &gt; lib.cgel</command>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-loading-programs">
+      <title>Laden von Programmen</title>
+      <para>
+Sometimes you have a larger program you wrote into a file and want to read that file into 
<application>Genius Mathematics Tool</application>. In these situations, you have two options. You can keep 
the functions you use most inside the <filename>~/.geniusinit</filename> file. Or if you want to load up a 
file in a middle of a session (or from within another file), you can type <command>load &lt;list of 
filenames&gt;</command> at the prompt. This has to be done on the top level and not inside any function or 
whatnot, and it cannot be part of any expression. It also has a slightly different syntax than the rest of 
genius, more similar to a shell. You can enter the file in quotes. If you use the '' quotes, you will get 
exactly the string that you typed, if you use the "" quotes, special characters will be unescaped as they are 
for strings. Example:
+<programlisting>load program1.gel program2.gel
+load "Weird File Name With SPACES.gel"
+</programlisting>
+There are also <command>cd</command>, <command>pwd</command> and <command>ls</command> commands built in. 
<command>cd</command> will take one argument, <command>ls</command> will take an argument that is like the 
glob in the UNIX shell (i.e., you can use wildcards). <command>pwd</command> takes no arguments. For example:
+<programlisting>cd directory_with_gel_programs
+ls *.gel
+</programlisting>
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Matrices ================================= -->
+  <chapter id="genius-gel-matrices">
+    <title>Matrizen in GEL</title>
+
+    <para>
+      Genius has support for vectors and matrices and possesses a sizable library of
+      matrix manipulation and linear algebra functions.
+    </para>
+
+    <sect1 id="genius-gel-matrix-support">
+      <title>Matrizen eingeben</title>
+      <para>
+To enter matrices, you can use one of the following two syntaxes. You can either enter
+the matrix on one line, separating values by commas and rows by semicolons.  Or you
+can enter each row on one line, separating
+values by commas.
+You can also just combine the two methods.
+So to enter a 3x3 matrix
+of numbers 1-9 you could do
+<programlisting>[1,2,3;4,5,6;7,8,9]
+</programlisting>
+or
+<programlisting>[1, 2, 3
+ 4, 5, 6
+ 7, 8, 9]
+</programlisting>
+Do not use both ';' and return at once on the same line though.
+      </para>
+
+      <para>
+You can also use the matrix expansion functionality to enter matrices.
+For example you can do:
+<programlisting>a = [ 1, 2, 3
+      4, 5, 6
+      7, 8, 9]
+b = [ a,  10
+      11, 12]
+</programlisting>
+and you should get
+<programlisting>[1,   2,  3, 10
+ 4,   5,  6, 10
+ 7,   8,  9, 10
+ 11, 11, 11, 12]
+</programlisting>
+similarly you can build matrices out of vectors and other stuff like that.
+      </para>
+
+      <para>
+Another thing is that non-specified spots are initialized to 0, so
+<programlisting>[1, 2, 3
+ 4, 5
+ 6]
+</programlisting>
+will end up being
+<programlisting>
+[1, 2, 3
+ 4, 5, 0
+ 6, 0, 0]
+</programlisting>
+      </para>
+
+      <para>
+       When matrices are evaluated, they are evaluated and traversed row-wise.  This is just
+       like the <literal>M@(j)</literal> operator, which traverses the matrix row-wise.
+      </para>
+
+      <note>
+        <para>
+Be careful about using returns for expressions inside the
+<literal>[ ]</literal> brackets, as they have a slightly different meaning
+there.  You will start a new row.
+        </para>
+      </note>
+
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-transpose">
+      <title>Operatoren für konjugierte Transposition und Transposition</title>
+      <para>
+You can conjugate transpose a matrix by using the <literal>'</literal> operator.  That is
+the entry in the
+<varname>i</varname>th column and the <varname>j</varname>th row will be
+the complex conjugate of the entry in the
+<varname>j</varname>th column and the <varname>i</varname>th row of the original matrix.
+ For example:
+<programlisting>[1,2,3]*[4,5,6]'
+</programlisting>
+We transpose the second vector to make matrix multiplication possible.
+If you just want to transpose a matrix without conjugating it, you would
+use the <literal>.'</literal> operator.  For example:
+<programlisting>[1,2,3]*[4,5,6i].'
+</programlisting>
+      </para>
+       <para>
+         Note that normal transpose, that is the <literal>.'</literal> operator, is much faster
+         and will not create a new copy of the matrix in memory.  The conjugate transpose does
+         create a new copy unfortunately.
+         It is recommended to always use the <literal>.'</literal> operator when working with real
+         matrices and vectors.
+       </para>
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-linalg">
+      <title>Lineare Algebra</title>
+      <para>
+       Genius implements many useful linear algebra and matrix manipulation
+routines.  See the <link linkend="genius-gel-function-list-linear-algebra">Linear Algebra</link> and
+<link linkend="genius-gel-function-list-matrix">Matrix Manipulation</link>
+sections of the GEL function listing.
+      </para>
+      <para>
+       The linear algebra routines implemented in GEL do not currently come
+from a well tested numerical package, and thus should not be used for critical
+numerical computation.  On the other hand, Genius implements very well many
+linear algebra operations with rational and integer coefficients.  These are
+inherently exact and in fact will give you much better results than common
+double precision routines for linear algebra.
+      </para>
+      <para>
+       For example, it is pointless to compute the rank and nullspace of a
+floating point matrix since for all practical purposes, we need to consider the
+matrix as having some slight errors.  You are likely to get a different result
+than you expect.  The problem is that under a small perturbation every matrix
+is of full rank and invertible.  If the matrix however is of rational numbers,
+then the rank and nullspace are always exact.
+      </para>
+      <para>
+       In general when Genius computes the basis of a certain vectorspace
+       (for example with the <link linkend="gel-function-NullSpace"><function>NullSpace</function></link>) 
it will give the basis as
+a matrix, in which the columns are the vectors of the basis.  That is, when
+Genius talks of a linear subspace it means a matrix whose column space is
+the given linear subspace.
+      </para>
+      <para>
+       It should be noted that Genius can remember certain properties of a
+matrix.  For example, it will remember that a matrix is in row reduced form.
+If many calls are made to functions that internally use row reduced form of
+the matrix, we can just row reduce the matrix beforehand once.  Successive
+calls to <link linkend="gel-function-rref"><function>rref</function></link> will be very fast.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Polynomials ============================== -->
+  <chapter id="genius-gel-polynomials">
+    <title>Polynome in GEL</title>
+
+    <para>
+      Currently Genius can handle polynomials of one variable written out
+      as vectors, and do some basic operations with these.  It is planned to
+      expand this support further.
+    </para>
+
+    <sect1 id="genius-gel-polynomials-using">
+      <title>Verwendung von Polynomen</title>
+      <para>
+Currently
+polynomials in one variable are just horizontal vectors with value only nodes.
+The power of the term is the position in the vector, with the first position
+being 0. So,
+<programlisting>[1,2,3]
+</programlisting>
+translates to a polynomial of
+<programlisting>1 + 2*x + 3*x^2
+</programlisting>
+      </para>
+      <para>
+You can add, subtract and multiply polynomials using the
+<link linkend="gel-function-AddPoly"><function>AddPoly</function></link>,
+<link linkend="gel-function-SubtractPoly"><function>SubtractPoly</function></link>, and
+<link linkend="gel-function-MultiplyPoly"><function>MultiplyPoly</function></link> functions respectively.
+You can print a polynomial using the
+<link linkend="gel-function-PolyToString"><function>PolyToString</function></link>
+function.
+For example,
+<programlisting>PolyToString([1,2,3],"y")
+</programlisting>
+gives
+<programlisting>3*y^2 + 2*y + 1
+</programlisting>
+You can also get a function representation of the polynomial so that you can
+evaluate it. This is done by using
+<link linkend="gel-function-PolyToFunction"><function>PolyToFunction</function></link>,
+which
+returns an anonymous function.
+<programlisting>f = PolyToFunction([0,1,1])
+f(2)
+</programlisting>
+      </para>
+      <para>
+       It is also possible to find roots of polynomials of degrees 1 through 4 by using the
+function
+<link linkend="gel-function-PolynomialRoots"><function>PolynomialRoots</function></link>,
+which calls the appropriate formula function.  Higher degree polynomials must be converted to
+functions and solved
+numerically using a function such as
+<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>, or
+<link linkend="gel-function-FindRootSecant"><function>FindRootSecant</function></link>.
+      </para>
+      <para>
+See <xref linkend="genius-gel-function-list-polynomials"/> in the function list
+for the rest of functions acting on polynomials.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Set Theory ============================== -->
+  <chapter id="genius-gel-settheory">
+    <title>Mengenlehre in GEL</title>
+
+    <para>
+      Genius has some basic set theoretic functionality built in.  Currently a set is
+      just a vector (or a matrix).  Every distinct object is treated as a different element.
+    </para>
+
+    <sect1 id="genius-gel-sets-using">
+      <title>Mengen verwenden</title>
+      <para>
+       Just like vectors, objects
+      in sets can include numbers, strings, <constant>null</constant>, matrices and vectors.  It is
+      planned in the future to have a dedicated type for sets, rather than using vectors.
+      Note that floating point numbers are distinct from integers, even if they appear the same.
+      That is, Genius will treat <constant>0</constant> and <constant>0.0</constant>
+      as two distinct elements.  The <constant>null</constant> is treated as an empty set.
+    </para>
+      <para>
+       To build a set out of a vector, use the 
+       <link linkend="gel-function-MakeSet"><function>MakeSet</function></link> function.
+       Currently, it will just return a new vector where every element is unique.
+<screen><prompt>genius&gt; </prompt><userinput>MakeSet([1,2,2,3])</userinput>
+= [1, 2, 3]
+</screen>
+</para>
+
+       <para>
+       Similarly there are functions 
+       <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>, which
+       are rather self explanatory.  For example:
+<screen><prompt>genius&gt; </prompt><userinput>Union([1,2,3], [1,2,4])</userinput>
+= [1, 2, 4, 3]
+</screen>
+       Note that no order is guaranteed for the return values.  If you wish to sort the vector you
+should use the
+       <link linkend="gel-function-SortVector"><function>SortVector</function></link> function.
+       </para>
+
+       <para>
+         For testing membership, there are functions
+       <link linkend="gel-function-IsIn"><function>IsIn</function></link> and
+       <link linkend="gel-function-IsSubset"><function>IsSubset</function></link>,
+       which return a boolean value.  For example:
+<screen><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
+= true
+</screen>
+       The input <userinput>IsIn(x,X)</userinput> is of course equivalent to
+       <userinput>IsSubset([x],X)</userinput>.  Note that since the empty set is a subset
+       of every set, <userinput>IsSubset(null,X)</userinput> is always true.
+       </para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL function list ======================== -->
+  <chapter id="genius-gel-function-list">
+    <title>Liste der GEL-Funktionen</title>
+
+    <!--&gel-function-list;-->
+
+    <para>So erhalten Sie Hilfe zu einer bestimmten Konsolenfunktion: <programlisting>help FunctionName
+</programlisting></para>
+
+    <sect1 id="genius-gel-function-list-commands">
+      <title>Befehle</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-command-help"/>help</term>
+         <listitem>
+          <synopsis>help</synopsis>
+          <synopsis>help FunctionName</synopsis>
+          <para>Print help (or help on a function/command).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-load"/>load</term>
+         <listitem>
+          <synopsis>load "file.gel"</synopsis>
+          <para>Load a file into the interpreter.  The file will execute
+as if it were typed onto the command line.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-cd"/>cd</term>
+         <listitem>
+          <synopsis>cd /Ordner/Name</synopsis>
+          <para>Wechselt den Arbeitsordner zu <filename>/Ordner/Name</filename>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-pwd"/>pwd</term>
+         <listitem>
+          <synopsis>pwd</synopsis>
+          <para>Print the current working directory.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-ls"/>ls</term>
+         <listitem>
+          <synopsis>ls</synopsis>
+          <para>Listet die Dateien im aktuellen Ordner auf.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-plugin"/>plugin</term>
+         <listitem>
+          <synopsis>plugin plugin_name</synopsis>
+          <para>Lädt ein Plugin. Ein Plugin dieses Namens muss auf Ihrem System vorhanden und im richtigen 
Ordner installiert sein.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-basic">
+      <title>Grundlegendes</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
+         <listitem>
+          <synopsis>AskButtons (query)</synopsis>
+          <synopsis>AskButtons (query, button1, ...)</synopsis>
+         <para>Asks a question and presents a list of buttons to the user (or
+a menu of options in text mode).  Returns the 1-based index of the button
+pressed.  That is, returns 1 if the first button was pressed, 2 if the second
+button was pressed, and so on.  If the user closes the window (or simply hits
+enter in text mode), then <constant>null</constant> is returned.  The execution
+of the program is blocked until the user responds.</para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AskString"/>AskString</term>
+         <listitem>
+          <synopsis>AskString (query)</synopsis>
+          <synopsis>AskString (query, default)</synopsis>
+          <para>Asks a question and lets the user enter a string, which
+it then returns.  If the user cancels or closes the window, then
+<constant>null</constant> is returned.  The execution of the program
+is blocked until the user responds.  If <varname>default</varname> is given, then it is pre-typed in for the 
user to just press enter on (version 1.0.6 onwards).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Compose"/>Compose</term>
+         <listitem>
+          <synopsis>Compose (f,g)</synopsis>
+          <para>Compose two functions and return a function that is the composition of 
<function>f</function> and <function>g</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
+         <listitem>
+          <synopsis>ComposePower (f,n,x)</synopsis>
+          <para>Compose and execute a function with itself <varname>n</varname> times, passing 
<varname>x</varname> as argument.  Returning <varname>x</varname> if
+<varname>n</varname> equals 0.
+               Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>function f(x) = x^2 ;</userinput>
+<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
+= 5764801
+<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
+= 5764801
+</screen>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
+         <listitem>
+          <synopsis>Evaluate (str)</synopsis>
+          <para>Parses and evaluates a string.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
+         <listitem>
+          <synopsis>GetCurrentModulo</synopsis>
+          <para>Get current modulo from the context outside the function.  That is, if outside of
+the function was executed in modulo (using <literal>mod</literal>) then this returns what
+this modulo was.  Normally the body of the function called is not executed in modular arithmetic,
+and this builtin function makes it possible to make GEL functions aware of modular arithmetic.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Identity"/>Identity</term>
+         <listitem>
+          <synopsis>Identity (x)</synopsis>
+         <para>Identity function, returns its argument.  It is equivalent to <userinput>function 
Identity(x)=x</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
+         <listitem>
+          <synopsis>IntegerFromBoolean (bval)</synopsis>
+         <para>
+           Make integer (0 for <constant>false</constant> or 1 for
+           <constant>true</constant>) from a boolean value.
+           <varname>bval</varname> can also be a number in which case a
+           non-zero value will be interpreted as <constant>true</constant> and
+           zero will be interpreted as <constant>false</constant>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
+         <listitem>
+          <synopsis>IsBoolean (arg)</synopsis>
+          <para>Check if argument is a boolean (and not a number).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
+         <listitem>
+          <synopsis>IsDefined (id)</synopsis>
+          <para>Check if an id is defined.  You should pass a string or
+          and identifier.  If you pass a matrix, each entry will be
+          evaluated separately and the matrix should contain strings
+          or identifiers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
+         <listitem>
+          <synopsis>IsFunction (arg)</synopsis>
+          <para>Check if argument is a function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
+         <listitem>
+          <synopsis>IsFunctionOrIdentifier (arg)</synopsis>
+          <para>Check if argument is a function or an identifier.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
+         <listitem>
+          <synopsis>IsFunctionRef (arg)</synopsis>
+          <para>Check if argument is a function reference.  This includes variable
+references.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
+         <listitem>
+          <synopsis>IsMatrix (arg)</synopsis>
+          <para>Check if argument is a matrix.  Even though <constant>null</constant> is
+sometimes considered an empty matrix, the function <function>IsMatrix</function> does
+not consider <constant>null</constant> a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNull"/>IsNull</term>
+         <listitem>
+          <synopsis>IsNull (arg)</synopsis>
+         <para>Check if argument is a <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsString"/>IsString</term>
+         <listitem>
+          <synopsis>IsString (arg)</synopsis>
+          <para>Check if argument is a text string.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValue"/>IsValue</term>
+         <listitem>
+          <synopsis>IsValue (arg)</synopsis>
+          <para>Check if argument is a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Parse"/>Parse</term>
+         <listitem>
+          <synopsis>Parse (str)</synopsis>
+          <para>Parses but does not evaluate a string.  Note that certain
+           pre-computation is done during the parsing stage.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
+         <listitem>
+          <synopsis>SetFunctionFlags (id,flags...)</synopsis>
+          <para>Set flags for a function, currently <literal>"PropagateMod"</literal> and 
<literal>"NoModuloArguments"</literal>.
+If <literal>"PropagateMod"</literal> is set, then the body of the function is evaluated in modular 
arithmetic when the function
+is called inside a block that was evaluated using modular arithmetic (using <literal>mod</literal>).  If
+<literal>"NoModuloArguments"</literal>, then the arguments of the function are never evaluated using modular 
arithmetic.
+ </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
+         <listitem>
+          <synopsis>SetHelp (id,category,desc)</synopsis>
+          <para>Set the category and help description line for a function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
+         <listitem>
+          <synopsis>SetHelpAlias (id,alias)</synopsis>
+          <para>Sets up a help alias.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-chdir"/>chdir</term>
+         <listitem>
+          <synopsis>chdir (dir)</synopsis>
+          <para>Changes current directory, same as the <command>cd</command>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
+         <listitem>
+          <synopsis>CurrentTime</synopsis>
+          <para>Returns the current UNIX time with microsecond precision as a floating point number.  That 
is, returns the number of seconds since January 1st 1970.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-display"/>display</term>
+         <listitem>
+          <synopsis>display (str,expr)</synopsis>
+          <para>Display a string and an expression with a colon to separate them.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DisplayVariables"/>DisplayVariables</term>
+         <listitem>
+          <synopsis>DisplayVariables (var1,var2,...)</synopsis>
+         <para>Display set of variables.  The variables can be given as
+                 strings or identifiers.  For example:
+           <programlisting>DisplayVariables(`x,`y,`z)
+           </programlisting>
+         </para>
+         <para>
+                 If called without arguments (must supply empty argument list) as
+           <programlisting>DisplayVariables()
+           </programlisting>
+           then all variables are printed including a stacktrace similar to
+           <guilabel>Show user variables</guilabel> in the graphical version.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-error"/>error</term>
+         <listitem>
+          <synopsis>error (str)</synopsis>
+          <para>Prints a string to the error stream (onto the console).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exit"/>exit</term>
+         <listitem>
+          <synopsis>exit</synopsis>
+          <para>Aliase: <function>quit</function></para>
+          <para>Beendet das Programm.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-false"/>false</term>
+         <listitem>
+          <synopsis>false</synopsis>
+          <para>Aliases: <function>False</function> <function>FALSE</function></para>
+         <para>The <constant>false</constant> boolean value.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-manual"/>manual</term>
+         <listitem>
+          <synopsis>manual</synopsis>
+          <para>Zeigt das Benutzerhandbuch an.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-print"/>print</term>
+         <listitem>
+          <synopsis>print (str)</synopsis>
+          <para>Prints an expression and then print a newline.  The argument <varname>str</varname> can be 
any expression.  It is
+made into a string before being printed.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-printn"/>printn</term>
+         <listitem>
+          <synopsis>printn (str)</synopsis>
+          <para>Prints an expression without a trailing newline.  The argument <varname>str</varname> can be 
any expression.  It is
+made into a string before being printed.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrintTable"/>PrintTable</term>
+         <listitem>
+          <synopsis>PrintTable (f,v)</synopsis>
+         <para>Print a table of values for a function.  The values are in the 
+                 vector <varname>v</varname>.  You can use the vector
+                 building notation as follows:
+                 <programlisting>PrintTable (f,[0:10])
+           </programlisting>
+           If <varname>v</varname> is a positive integer, then the table of
+           integers from 1 up to and including v will be used.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-protect"/>protect</term>
+         <listitem>
+          <synopsis>protect (id)</synopsis>
+          <para>Protect a variable from being modified.  This is used on the internal GEL functions to
+avoid them being accidentally overridden.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
+         <listitem>
+          <synopsis>ProtectAll ()</synopsis>
+          <para>Protect all currently defined variables, parameters and
+functions from being modified.  This is used on the internal GEL functions to
+avoid them being accidentally overridden.  Normally <application>Genius Mathematics Tool</application> 
considers
+unprotected variables as user defined.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-set"/>set</term>
+         <listitem>
+          <synopsis>set (id,val)</synopsis>
+          <para>Set a global variable.  The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>set(`x,1)
+           </programlisting>
+           will set the global variable <varname>x</varname> to the value 1.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetElement"/>SetElement</term>
+         <listitem>
+          <synopsis>SetElement (id,row,col,val)</synopsis>
+         <para>Set an element of a global variable which is a matrix.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,3,1)
+           </programlisting>
+           will set the second row third column element of the global variable <varname>x</varname> to the 
value 1.  If no global variable of the name exists, or if it is set to something that's not a matrix, a new 
zero matrix of appropriate size will be created.
+         </para>
+         <para>The <varname>row</varname> and <varname>col</varname> can also be ranges, and the semantics 
are the same as for regular setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetVElement"/>SetVElement</term>
+         <listitem>
+          <synopsis>SetElement (id,elt,val)</synopsis>
+         <para>Set an element of a global variable which is a vector.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,1)
+           </programlisting>
+           will set the second element of the global vector variable <varname>x</varname> to the value 1.  
If no global variable of the name exists, or if it is set to something that's not a vector (matrix), a new 
zero row vector of appropriate size will be created.
+         </para>
+         <para>The <varname>elt</varname> can also be a range, and the semantics are the same as for regular 
setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-string"/>string</term>
+         <listitem>
+          <synopsis>string (s)</synopsis>
+          <para>Make a string.  This will make a string out of any argument.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-true"/>true</term>
+         <listitem>
+          <synopsis>true</synopsis>
+          <para>Aliases: <function>True</function> <function>TRUE</function></para>
+         <para>The <constant>true</constant> boolean value.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-undefine"/>undefine</term>
+         <listitem>
+          <synopsis>undefine (id)</synopsis>
+          <para>Aliase: <function>Undefine</function></para>
+          <para>Undefine a variable.  This includes locals and globals,
+           every value on all context levels is wiped.  This function
+           should really not be used on local variables.  A vector of
+           identifiers can also be passed to undefine several variables.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
+         <listitem>
+          <synopsis>UndefineAll ()</synopsis>
+         <para>Undefine all unprotected global variables
+           (including functions and parameters).  Normally <application>Genius Mathematics Tool</application>
+           considers protected variables as system defined functions
+           and variables.  Note that <function>UndefineAll</function>
+           only removes the global definition of symbols not local ones,
+           so that it may be run from inside other functions safely.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-unprotect"/>unprotect</term>
+         <listitem>
+          <synopsis>unprotect (id)</synopsis>
+          <para>Unprotect a variable from being modified.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
+         <listitem>
+          <synopsis>UserVariables ()</synopsis>
+          <para>Return a vector of identifiers of
+           user defined (unprotected) global variables.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-wait"/>wait</term>
+         <listitem>
+          <synopsis>wait (secs)</synopsis>
+          <para>Waits a specified number of seconds.  <varname>secs</varname>
+must be non-negative.  Zero is accepted and nothing happens in this case,
+except possibly user interface events are processed.</para>
+         <para>Since version 1.0.18, <varname>secs</varname> can be a noninteger number, so
+                 <userinput>wait(0.1)</userinput> will wait for one tenth of a second.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-version"/>version</term>
+         <listitem>
+          <synopsis>version</synopsis>
+          <para>Returns the version of Genius as a horizontal 3-vector with
+         major version first, then minor version and finally the patch level.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-warranty"/>warranty</term>
+         <listitem>
+          <synopsis>warranty</synopsis>
+          <para>Gives the warranty information.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+
+    </sect1>
+
+    <sect1 id="genius-gel-function-parameters">
+      <title>Parameter</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
+         <listitem>
+          <synopsis>ChopTolerance = Zahl</synopsis>
+          <para>Tolerance of the <function>Chop</function> function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
+         <listitem>
+          <synopsis>ContinuousNumberOfTries = Zahl</synopsis>
+          <para>How many iterations to try to find the limit for continuity and limits.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
+         <listitem>
+          <synopsis>ContinuousSFS = Zahl</synopsis>
+          <para>How many successive steps to be within tolerance for calculation of continuity.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
+         <listitem>
+          <synopsis>ContinuousTolerance = Zahl</synopsis>
+          <para>Tolerance for continuity of functions and for calculating the limit.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
+         <listitem>
+          <synopsis>DerivativeNumberOfTries = Zahl</synopsis>
+          <para>How many iterations to try to find the limit for derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
+         <listitem>
+          <synopsis>DerivativeSFS = Zahl</synopsis>
+          <para>How many successive steps to be within tolerance for calculation of derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
+         <listitem>
+          <synopsis>DerivativeTolerance = Zahl</synopsis>
+          <para>Tolerance for calculating the derivatives of functions.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
+         <listitem>
+          <synopsis>ErrorFunctionTolerance = Zahl</synopsis>
+         <para>Tolerance of the <link 
linkend="gel-function-ErrorFunction"><function>ErrorFunction</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
+         <listitem>
+          <synopsis>FloatPrecision = Zahl</synopsis>
+          <para>Gleitkommagenauigkeit</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
+         <listitem>
+          <synopsis>FullExpressions = boolean</synopsis>
+          <para>Print full expressions, even if more than a line.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
+         <listitem>
+          <synopsis>GaussDistributionTolerance = Zahl</synopsis>
+         <para>Tolerance of the <link 
linkend="gel-function-GaussDistribution"><function>GaussDistribution</function></link> function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
+         <listitem>
+          <synopsis>IntegerOutputBase = Zahl</synopsis>
+          <para>Integer output base.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
+         <listitem>
+          <synopsis>IsPrimeMillerRabinReps = Zahl</synopsis>
+         <para>Number of extra Miller-Rabin tests to run on a number before declaring it a prime in <link 
linkend="gel-function-IsPrime"><function>IsPrime</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
+         <listitem>
+          <synopsis>LinePlotDrawLegends = true</synopsis>
+          <para>Tells genius to draw the legends for <link linkend="genius-gel-function-list-plotting">line 
plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
+         <listitem>
+          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
+          <para>Tells genius to draw the axis labels for <link 
linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
+         <listitem>
+          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
+          <para>Tells genius which variable names are used as default names  for <link 
linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> 
and friends.
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
+         <listitem>
+          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
+          <para>Sets the limits for <link linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
+         <listitem>
+          <synopsis>MaxDigits = Zahl</synopsis>
+          <para>Maximal anzuzeigende Stellen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
+         <listitem>
+          <synopsis>MaxErrors = Zahl</synopsis>
+          <para>Maximal anzuzeigende Fehler.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
+         <listitem>
+          <synopsis>MixedFractions = boolean</synopsis>
+          <para>If true, mixed fractions are printed.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
+         <listitem>
+          <synopsis>NumericalIntegralFunction = Funktion</synopsis>
+         <para>The function used for numerical integration in <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
+         <listitem>
+          <synopsis>NumericalIntegralSteps = Zahl</synopsis>
+         <para>Steps to perform in <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
+         <listitem>
+          <synopsis>OutputChopExponent = Zahl</synopsis>
+         <para>When another number in the object being printed (a matrix or a
+value) is greater than
+10<superscript>-OutputChopWhenExponent</superscript>, and
+the number being printed is less than 
+10<superscript>-OutputChopExponent</superscript>, then
+display <computeroutput>0.0</computeroutput> instead of the number.
+</para>
+<para>
+Output is never chopped if <function>OutputChopExponent</function> is zero.
+It must be a non-negative integer.
+</para>
+<para>
+If you want output always chopped according to
+<function>OutputChopExponent</function>, then set
+<function>OutputChopWhenExponent</function>, to something
+greater than or equal to
+<function>OutputChopExponent</function>.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
+         <listitem>
+          <synopsis>OutputChopWhenExponent = Zahl</synopsis>
+         <para>When to chop output.  See
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
+         <listitem>
+          <synopsis>OutputStyle = String</synopsis>
+          <para>
+           Output style, this can be <literal>normal</literal>, <literal>latex</literal>, 
<literal>mathml</literal> or <literal>troff</literal>.
+         </para>
+         <para>
+           This affects mostly how matrices and fractions are printed out and
+           is useful for pasting into documents.  For example you can set this
+           to the latex by:
+           <programlisting>OutputStyle = "latex"
+</programlisting>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
+         <listitem>
+          <synopsis>ResultsAsFloats = boolean</synopsis>
+          <para>Wandelt alle Ergebnisse vor der Ausgabe in Gleitkommazahlen um.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
+         <listitem>
+          <synopsis>ScientificNotation = boolean</synopsis>
+          <para>Wissenschaftliche Notation verwenden.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
+         <listitem>
+          <synopsis>SlopefieldTicks = [vertical,horizontal]</synopsis>
+          <para>Sets the number of vertical and horizontal ticks in a
+slopefield plot.  (See <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>).
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
+         <listitem>
+          <synopsis>SumProductNumberOfTries = Zahl</synopsis>
+         <para>How many iterations to try for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
+         <listitem>
+          <synopsis>SumProductSFS = Zahl</synopsis>
+          <para>How many successive steps to be within tolerance for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
+         <listitem>
+          <synopsis>SumProductTolerance = Zahl</synopsis>
+          <para>Tolerance for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLegends = true</synopsis>
+          <para>Tells genius to draw the legends for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> such as <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
+         <listitem>
+          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
+          <para>Tells genius which variable names are used as default names for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> using <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          Note that the <varname>z</varname> does not refer to the dependent (vertical) axis, but to the 
independent complex variable
+          <userinput>z=x+iy</userinput>.
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
+         <listitem>
+          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
+          <para>Sets the limits for surface plotting (See <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
+         <listitem>
+          <synopsis>VectorfieldNormalized = true</synopsis>
+          <para>Should the vectorfield plotting have normalized arrow length.  If true, vector fields will 
only show direction
+          and not magnitude.  (See <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
+         <listitem>
+          <synopsis>VectorfieldTicks = [vertical,horizontal]</synopsis>
+          <para>Sets the number of vertical and horizontal ticks in a
+vectorfield plot.  (See <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-constants">
+      <title>Konstanten</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
+         <listitem>
+          <synopsis>CatalanConstant</synopsis>
+          <para>
+           Catalan's Constant, approximately 0.915...  It is defined to be the series where terms are 
<userinput>(-1^k)/((2*k+1)^2)</userinput>, where <varname>k</varname> ranges from 0 to infinity.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Catalan%27s_constant";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/CatalansConstant.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
+         <listitem>
+          <synopsis>EulerConstant</synopsis>
+          <para>Aliase: <function>gamma</function></para>
+          <para>
+           Euler's constant gamma.  Sometimes called the
+           Euler-Mascheroni constant.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler-Mascheroni_constant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MascheroniConstant";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
+         <listitem>
+          <synopsis>GoldenRatio</synopsis>
+          <para>Der »Goldene Schnitt«.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Golden_ratio";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GoldenRatio";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GoldenRatio.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Gravity"/>Gravity</term>
+         <listitem>
+          <synopsis>Gravity</synopsis>
+         <para>Free fall acceleration at sea level in meters per second squared.  This is the standard 
gravity constant 9.80665.  The gravity
+                 in your particular neck of the woods might be different due to different altitude and the 
fact that the earth is not perfectly
+                 round and uniform.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Standard_gravity";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-e"/>e</term>
+         <listitem>
+          <synopsis>e</synopsis>
+          <para>
+           The base of the natural logarithm.  <userinput>e^x</userinput>
+           is the exponential function
+           <link linkend="gel-function-exp"><function>exp</function></link>.  It is approximately
+           2.71828182846...  This number is sometimes called Euler's number, although there are
+           several numbers that are also called Euler's.  An example is the gamma constant: <link 
linkend="gel-function-EulerConstant"><function>EulerConstant</function></link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/E_(mathematical_constant)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/E";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/e.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-pi"/>pi</term>
+         <listitem>
+          <synopsis>pi</synopsis>
+          <para>
+           The number pi, that is the ratio of a circle's circumference
+           to its diameter.  This is approximately 3.14159265359...
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Pi";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Pi";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pi.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-numeric">
+      <title>Numerik</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
+         <listitem>
+          <synopsis>AbsoluteValue (x)</synopsis>
+          <para>Aliases: <function>abs</function></para>
+          <para>
+           Absolute value of a number and if <varname>x</varname> is
+           a complex value the modulus of <varname>x</varname>.  I.e. this
+           the distance of <varname>x</varname> to the origin.  This is equivalent
+           to <userinput>|x|</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Absolute_value";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/AbsoluteValue";>Planetmath (absolute value)</ulink>,
+           <ulink url="http://planetmath.org/ModulusOfComplexNumber";>Planetmath (modulus)</ulink>,
+           <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld (absolute value)</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ComplexModulus.html";>Mathworld (complex modulus)</ulink>
+for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Chop"/>Chop</term>
+         <listitem>
+          <synopsis>Chop (x)</synopsis>
+          <para>Ersetzung sehr kleiner Zahlen durch Null.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
+         <listitem>
+          <synopsis>ComplexConjugate (z)</synopsis>
+          <para>Aliases: <function>conj</function> <function>Conj</function></para>
+          <para>Calculates the complex conjugate of the complex number <varname>z</varname>.  If 
<varname>z</varname> is a vector or matrix,
+all its elements are conjugated.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Complex_conjugate";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Denominator"/>Denominator</term>
+         <listitem>
+          <synopsis>Denominator (x)</synopsis>
+          <para>Get the denominator of a rational number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Denominator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
+         <listitem>
+          <synopsis>FractionalPart (x)</synopsis>
+          <para>Return the fractional part of a number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fractional_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Im"/>Im</term>
+         <listitem>
+          <synopsis>Im (z)</synopsis>
+          <para>Aliases: <function>ImaginaryPart</function></para>
+          <para>Get the imaginary part of a complex number.  For example <userinput>Re(3+4i)</userinput> 
yields 4.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Imaginary_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
+         <listitem>
+          <synopsis>IntegerQuotient (m,n)</synopsis>
+          <para>Division ohne Rest.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
+         <listitem>
+          <synopsis>IsComplex (num)</synopsis>
+         <para>Check if argument is a complex (non-real) number.  Do note that we really mean nonreal 
number.  That is,
+         <userinput>IsComplex(3)</userinput> yields false, while
+         <userinput>IsComplex(3-1i)</userinput> yields true.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
+         <listitem>
+          <synopsis>IsComplexRational (num)</synopsis>
+         <para>Check if argument is a possibly complex rational number.  That is, if both real and imaginary 
parts are
+         given as rational numbers.  Of course rational simply means "not stored as a floating point 
number."</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
+         <listitem>
+          <synopsis>IsFloat (num)</synopsis>
+          <para>Check if argument is a real floating point number (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
+         <listitem>
+          <synopsis>IsGaussInteger (num)</synopsis>
+          <para>Aliases: <function>IsComplexInteger</function></para>
+         <para>Check if argument is a possibly complex integer.  That is a complex integer is a number of
+                 the form <userinput>n+1i*m</userinput> where <varname>n</varname> and <varname>m</varname>
+         are integers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
+         <listitem>
+          <synopsis>IsInteger (num)</synopsis>
+          <para>Check if argument is an integer (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
+         <listitem>
+          <synopsis>IsNonNegativeInteger (num)</synopsis>
+          <para>Check if argument is a non-negative real integer.  That is, either a positive integer or 
zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
+         <listitem>
+          <synopsis>IsPositiveInteger (num)</synopsis>
+          <para>Aliases: <function>IsNaturalNumber</function></para>
+          <para>Check if argument is a positive real integer.  Note that
+we accept the convention that 0 is not a natural number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsRational"/>IsRational</term>
+         <listitem>
+          <synopsis>IsRational (num)</synopsis>
+          <para>Check if argument is a rational number (non-complex).  Of course rational simply means "not 
stored as a floating point number."</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsReal"/>IsReal</term>
+         <listitem>
+          <synopsis>IsReal (num)</synopsis>
+          <para>Check if argument is a real number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Numerator"/>Numerator</term>
+         <listitem>
+          <synopsis>Numerator (x)</synopsis>
+          <para>Get the numerator of a rational number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Numerator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Re"/>Re</term>
+         <listitem>
+          <synopsis>Re (z)</synopsis>
+          <para>Aliases: <function>RealPart</function></para>
+         <para>Get the real part of a complex number.  For example <userinput>Re(3+4i)</userinput> yields 
3.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Real_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Sign"/>Sign</term>
+         <listitem>
+          <synopsis>Sign (x)</synopsis>
+          <para>Aliases: <function>sign</function></para>
+          <para>Return the sign of a number.  That is returns
+<literal>-1</literal> if value is negative,
+<literal>0</literal> if value is zero and
+<literal>1</literal> if value is positive.  If <varname>x</varname> is a complex
+value then <function>Sign</function> returns the direction or 0.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ceil"/>ceil</term>
+         <listitem>
+          <synopsis>ceil (x)</synopsis>
+          <para>Aliases: <function>Ceiling</function></para>
+         <para>Get the lowest integer more than or equal to <varname>n</varname>. Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
+= 2
+<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
+= -1
+</screen>
+           </para>
+          <para>Note that you should be careful and notice that floating point
+                  numbers are stored in binary and so may not be what you
+                  expect.  For example <userinput>ceil(420/4.2)</userinput>
+                  returns 101 instead of the expected 100.  This is because
+                  4.2 is actually very slightly less than 4.2.  Use rational
+                  representation <userinput>42/10</userinput> if you want
+                  exact arithmetic.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exp"/>exp</term>
+         <listitem>
+          <synopsis>exp (x)</synopsis>
+          <para>
+           The exponential function.  This is the function
+           <userinput>e^x</userinput> where <varname>e</varname>
+           is the <link linkend="gel-function-e">base of the natural
+           logarithm</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Exponential_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ExponentialFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-float"/>float</term>
+         <listitem>
+          <synopsis>float (x)</synopsis>
+          <para>Make number a floating point value.  That is returns the floating point representation of 
the number <varname>x</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-floor"/>floor</term>
+         <listitem>
+          <synopsis>floor (x)</synopsis>
+          <para>Aliases: <function>Floor</function></para>
+          <para>Get the highest integer less than or equal to <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ln"/>ln</term>
+         <listitem>
+          <synopsis>ln (x)</synopsis>
+          <para>The natural logarithm, the logarithm to base <varname>e</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Natural_logarithm";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NaturalLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log"/>log</term>
+         <listitem>
+          <synopsis>log (x)</synopsis>
+          <synopsis>log (x,b)</synopsis>
+         <para>Logarithm of <varname>x</varname> base <varname>b</varname> (calls <link 
linkend="gel-function-DiscreteLog"><function>DiscreteLog</function></link> if in modulo mode), if base is not 
given, <link linkend="gel-function-e"><varname>e</varname></link> is used.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log10"/>log10</term>
+         <listitem>
+          <synopsis>log10 (x)</synopsis>
+          <para>Logarithm of <varname>x</varname> base 10.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log2"/>log2</term>
+         <listitem>
+          <synopsis>log2 (x)</synopsis>
+          <para>Aliases: <function>lg</function></para>
+          <para>Logarithm of <varname>x</varname> base 2.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-max"/>max</term>
+         <listitem>
+          <synopsis>max (a,args...)</synopsis>
+          <para>Aliases: <function>Max</function> <function>Maximum</function></para>
+          <para>Returns the maximum of arguments or matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-min"/>min</term>
+         <listitem>
+          <synopsis>min (a,args...)</synopsis>
+          <para>Aliases: <function>Min</function> <function>Minimum</function></para>
+          <para>Returns the minimum of arguments or matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rand"/>rand</term>
+         <listitem>
+          <synopsis>rand (size...)</synopsis>
+          <para>Generate random float in the range <literal>[0,1)</literal>.
+If size is given then a matrix (if two numbers are specified) or vector (if one
+number is specified) of the given size returned.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-randint"/>randint</term>
+         <listitem>
+          <synopsis>randint (max,size...)</synopsis>
+          <para>Generate random integer in the range
+<literal>[0,max)</literal>.
+If size is given then a matrix (if two numbers are specified) or vector (if one
+number is specified) of the given size returned.  For example,
+          <screen><prompt>genius&gt;</prompt> <userinput>randint(4)</userinput>
+= 3
+<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
+=
+[0      1]
+<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
+=
+[2      2       1
+ 0      0       3]
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-round"/>round</term>
+         <listitem>
+          <synopsis>round (x)</synopsis>
+          <para>Aliases: <function>Round</function></para>
+          <para>Round a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sqrt"/>sqrt</term>
+         <listitem>
+          <synopsis>sqrt (x)</synopsis>
+          <para>Aliases: <function>SquareRoot</function></para>
+          <para>The square root.  When operating modulo some integer will return either a 
<constant>null</constant> or a vector of the square roots.  Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>sqrt(2)</userinput>
+= 1.41421356237
+<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
+= 1i
+<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
+=
+[2      5]
+<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
+= 4
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Square_root";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/SquareRoot";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-trunc"/>trunc</term>
+         <listitem>
+          <synopsis>trunc (x)</synopsis>
+          <para>Aliases: <function>Truncate</function> <function>IntegerPart</function></para>
+          <para>Truncate number to an integer (return the integer part).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-trigonometry">
+      <title>Trigonometrie</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-acos"/>acos</term>
+         <listitem>
+          <synopsis>acos (x)</synopsis>
+          <para>Aliases: <function>arccos</function></para>
+          <para>The arccos (inverse cos) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acosh"/>acosh</term>
+         <listitem>
+          <synopsis>acosh (x)</synopsis>
+          <para>Aliases: <function>arccosh</function></para>
+          <para>The arccosh (inverse cosh) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acot"/>acot</term>
+         <listitem>
+          <synopsis>acot (x)</synopsis>
+          <para>Aliases: <function>arccot</function></para>
+          <para>The arccot (inverse cot) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acoth"/>acoth</term>
+         <listitem>
+          <synopsis>acoth (x)</synopsis>
+          <para>Aliases: <function>arccoth</function></para>
+          <para>The arccoth (inverse coth) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsc"/>acsc</term>
+         <listitem>
+          <synopsis>acsc (x)</synopsis>
+          <para>Aliases: <function>arccsc</function></para>
+          <para>The inverse cosecant function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsch"/>acsch</term>
+         <listitem>
+          <synopsis>acsch (x)</synopsis>
+          <para>Aliases: <function>arccsch</function></para>
+          <para>The inverse hyperbolic cosecant function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asec"/>asec</term>
+         <listitem>
+          <synopsis>asec (x)</synopsis>
+          <para>Aliases: <function>arcsec</function></para>
+          <para>The inverse secant function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asech"/>asech</term>
+         <listitem>
+          <synopsis>asech (x)</synopsis>
+          <para>Aliases: <function>arcsech</function></para>
+          <para>The inverse hyperbolic secant function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asin"/>asin</term>
+         <listitem>
+          <synopsis>asin (x)</synopsis>
+          <para>Aliases: <function>arcsin</function></para>
+          <para>The arcsin (inverse sin) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asinh"/>asinh</term>
+         <listitem>
+          <synopsis>asinh (x)</synopsis>
+          <para>Aliases: <function>arcsinh</function></para>
+          <para>The arcsinh (inverse sinh) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan"/>atan</term>
+         <listitem>
+          <synopsis>atan (x)</synopsis>
+          <para>Aliases: <function>arctan</function></para>
+          <para>Calculates the arctan (inverse tan) function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Arctangent";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atanh"/>atanh</term>
+         <listitem>
+          <synopsis>atanh (x)</synopsis>
+          <para>Aliases: <function>arctanh</function></para>
+          <para>The arctanh (inverse tanh) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan2"/>atan2</term>
+         <listitem>
+          <synopsis>atan2 (y, x)</synopsis>
+          <para>Aliases: <function>arctan2</function></para>
+          <para>Calculates the arctan2 function.  If
+         <userinput>x&gt;0</userinput> then it returns
+         <userinput>atan(y/x)</userinput>.  If <userinput>x&lt;0</userinput>
+         then it returns <userinput>sign(y) * (pi - atan(|y/x|)</userinput>.
+         When <userinput>x=0</userinput> it returns <userinput>sign(y) *
+         pi/2</userinput>.  <userinput>atan2(0,0)</userinput> returns 0
+         rather than failing.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Atan2";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cos"/>cos</term>
+         <listitem>
+          <synopsis>cos (x)</synopsis>
+          <para>Calculates the cosine function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cosh"/>cosh</term>
+         <listitem>
+          <synopsis>cosh (x)</synopsis>
+          <para>Calculates the hyperbolic cosine function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cot"/>cot</term>
+         <listitem>
+          <synopsis>cot (x)</synopsis>
+          <para>The cotangent function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-coth"/>coth</term>
+         <listitem>
+          <synopsis>coth (x)</synopsis>
+          <para>The hyperbolic cotangent function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csc"/>csc</term>
+         <listitem>
+          <synopsis>csc (x)</synopsis>
+          <para>The cosecant function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csch"/>csch</term>
+         <listitem>
+          <synopsis>csch (x)</synopsis>
+          <para>The hyperbolic cosecant function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sec"/>sec</term>
+         <listitem>
+          <synopsis>sec (x)</synopsis>
+          <para>The secant function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sech"/>sech</term>
+         <listitem>
+          <synopsis>sech (x)</synopsis>
+          <para>The hyperbolic secant function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sin"/>sin</term>
+         <listitem>
+          <synopsis>sin (x)</synopsis>
+          <para>Calculates the sine function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinh"/>sinh</term>
+         <listitem>
+          <synopsis>sinh (x)</synopsis>
+          <para>Calculates the hyperbolic sine function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tan"/>tan</term>
+         <listitem>
+          <synopsis>tan (x)</synopsis>
+          <para>Calculates the tan function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tanh"/>tanh</term>
+         <listitem>
+          <synopsis>tanh (x)</synopsis>
+          <para>The hyperbolic tangent function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-number-theory">
+      <title>Zahlentheorie</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
+         <listitem>
+          <synopsis>AreRelativelyPrime (a,b)</synopsis>
+          <para>
+           Are the real integers <varname>a</varname> and <varname>b</varname> relatively prime?
+           Returns <constant>true</constant> or <constant>false</constant>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coprime_integers";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RelativelyPrime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/RelativelyPrime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
+         <listitem>
+          <synopsis>BernoulliNumber (n)</synopsis>
+          <para>Return the <varname>n</varname>th Bernoulli number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bernoulli_number";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/BernoulliNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
+         <listitem>
+          <synopsis>ChineseRemainder (a,m)</synopsis>
+          <para>Aliases: <function>CRT</function></para>
+         <para>Find the <varname>x</varname> that solves the system given by
+               the vector <varname>a</varname> and modulo the elements of
+               <varname>m</varname>, using the Chinese Remainder Theorem.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Chinese_remainder_theorem";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ChineseRemainderTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
+         <listitem>
+          <synopsis>CombineFactorizations (a,b)</synopsis>
+         <para>Given two factorizations, give the factorization of the
+               product.</para>
+         <para>See <link linkend="gel-function-Factorize">Factorize</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
+         <listitem>
+          <synopsis>ConvertFromBase (v,b)</synopsis>
+          <para>Convert a vector of values indicating powers of b to a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
+         <listitem>
+          <synopsis>ConvertToBase (n,b)</synopsis>
+          <para>Convert a number to a vector of powers for elements in base <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
+         <listitem>
+          <synopsis>DiscreteLog (n,b,q)</synopsis>
+          <para>Find discrete log of <varname>n</varname> base <varname>b</varname> in
+           F<subscript>q</subscript>, the finite field of order <varname>q</varname>, where 
<varname>q</varname>
+           is a prime, using the Silver-Pohlig-Hellman algorithm.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Discrete_logarithm";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/DiscreteLogarithm";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/DiscreteLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Divides"/>Divides</term>
+         <listitem>
+          <synopsis>Divides (m,n)</synopsis>
+          <para>Checks divisibility (if <varname>m</varname> divides <varname>n</varname>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
+         <listitem>
+          <synopsis>EulerPhi (n)</synopsis>
+          <para>
+           Compute the Euler phi function for <varname>n</varname>, that is
+           the number of integers between 1 and <varname>n</varname>
+           relatively prime to <varname>n</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler_phi";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/EulerPhifunction";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/TotientFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
+         <listitem>
+          <synopsis>ExactDivision (n,d)</synopsis>
+          <para>
+           Return <userinput>n/d</userinput> but only if <varname>d</varname>
+           divides <varname>n</varname>.  If <varname>d</varname>
+           does not divide <varname>n</varname> then this function returns
+           garbage.  This is a lot faster for very large numbers
+           than the operation <userinput>n/d</userinput>, but of course only
+           useful if you know that the division is exact.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorize"/>Factorize</term>
+         <listitem>
+          <synopsis>Factorize (n)</synopsis>
+          <para>
+           Return factorization of a number as a matrix.  The first
+           row is the primes in the factorization (including 1) and the
+           second row are the powers.  So for example:
+           <screen><prompt>genius&gt;</prompt> <userinput>Factorize(11*11*13)</userinput>
+=
+[1      11      13
+ 1      2       1]</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Factorization";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factors"/>Factors</term>
+         <listitem>
+          <synopsis>Factors (n)</synopsis>
+          <para>
+           Return all factors of <varname>n</varname> in a vector.  This
+           includes all the non-prime factors as well.  It includes 1 and the
+           number itself.  So for example to print all the perfect numbers
+           (those that are sums of their factors) up to the number 1000 you
+           could do (this is of course very inefficient)
+           <programlisting>for n=1 to 1000 do (
+    if MatrixSum (Factors(n)) == 2*n then
+        print(n)
+)
+</programlisting>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
+         <listitem>
+          <synopsis>FermatFactorization (n,tries)</synopsis>
+          <para>
+           Attempt Fermat factorization of <varname>n</varname> into
+           <userinput>(t-s)*(t+s)</userinput>, returns <varname>t</varname>
+           and <varname>s</varname> as a vector if possible, <constant>null</constant> otherwise.
+           <varname>tries</varname> specifies the number of tries before
+           giving up.
+         </para>
+          <para>
+           This is a fairly good factorization if your number is the product
+           of two factors that are very close to each other.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fermat_factorization";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindPrimitiveElementMod (q)</synopsis>
+          <para>Find the first primitive element in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>.  Of course <varname>q</varname> must be a prime.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
+          <para>Find a random primitive element in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname> (q must be a prime).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
+         <listitem>
+          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
+          <para>Compute discrete log base <varname>b</varname> of n in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname> (<varname>q</varname> a prime), using the
+factor base <varname>S</varname>.  <varname>S</varname> should be a column of
+primes possibly with second column precalculated by
+<link 
linkend="gel-function-IndexCalculusPrecalculation"><function>IndexCalculusPrecalculation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
+         <listitem>
+          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
+         <para>Run the precalculation step of
+                 <link linkend="gel-function-IndexCalculus"><function>IndexCalculus</function></link> for 
logarithms base <varname>b</varname> in
+F<subscript>q</subscript>, the finite group of order <varname>q</varname>
+(<varname>q</varname> a prime), for the factor base <varname>S</varname> (where
+<varname>S</varname> is a column vector of primes).  The logs will be
+precalculated and returned in the second column.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsEven"/>IsEven</term>
+         <listitem>
+          <synopsis>IsEven (n)</synopsis>
+          <para>Überprüft, ob eine Ganzzahl gerade ist.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
+         <listitem>
+          <synopsis>IsMersennePrimeExponent (p)</synopsis>
+          <para>
+           Tests if a positive integer <varname>p</varname> is a
+           Mersenne prime exponent.  That is if 
+            2<superscript>p</superscript>-1 is a prime.  It does this
+           by looking it up in a table of known values, which is relatively
+           short.
+           See also
+           <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link>
+           and
+           <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
+         <listitem>
+          <synopsis>IsNthPower (m,n)</synopsis>
+          <para>
+           Tests if a rational number <varname>m</varname> is a perfect
+           <varname>n</varname>th power.  See also
+           <link linkend="gel-function-IsPerfectPower">IsPerfectPower</link>
+           and
+           <link linkend="gel-function-IsPerfectSquare">IsPerfectSquare</link>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
+         <listitem>
+          <synopsis>IsOdd (n)</synopsis>
+          <para>Überprüft, ob eine Ganzzahl ungerade ist.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
+         <listitem>
+          <synopsis>IsPerfectPower (n)</synopsis>
+          <para>Check an integer for being any perfect power, a<superscript>b</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
+         <listitem>
+          <synopsis>IsPerfectSquare (n)</synopsis>
+          <para>
+           Check an integer for being a perfect square of an integer.  The number must
+           be an integer.  Negative integers are of course never perfect
+           squares of integers.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
+         <listitem>
+          <synopsis>IsPrime (n)</synopsis>
+          <para>
+           Tests primality of integers, for numbers less than 2.5e10 the
+           answer is deterministic (if Riemann hypothesis is true).  For
+           numbers larger, the probability of a false positive
+           depends on
+           <link linkend="gel-function-IsPrimeMillerRabinReps">
+           <function>IsPrimeMillerRabinReps</function></link>.  That
+           is the probability of false positive is 1/4 to the power
+           <function>IsPrimeMillerRabinReps</function>.  The default
+           value of 22 yields a probability of about 5.7e-14.
+         </para>
+          <para>
+           If <constant>false</constant> is returned, you can be sure that
+           the number is a composite.  If you want to be absolutely sure
+           that you have a prime you can use 
+           <link linkend="gel-function-MillerRabinTestSure">
+           <function>MillerRabinTestSure</function></link> but it may take
+           a lot longer.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
+         <listitem>
+          <synopsis>IsPrimitiveMod (g,q)</synopsis>
+          <para>Check if <varname>g</varname> is primitive in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>, where <varname>q</varname> is a prime.  If <varname>q</varname> is not 
prime results are bogus.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
+         <listitem>
+          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
+          <para>Check if <varname>g</varname> is primitive in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>, where <varname>q</varname> is a prime and
+<varname>f</varname> is a vector of prime factors of <varname>q</varname>-1.
+If <varname>q</varname> is not prime results are bogus.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
+         <listitem>
+          <synopsis>IsPseudoprime (n,b)</synopsis>
+          <para>If <varname>n</varname> is a pseudoprime base <varname>b</varname> but not a prime,
+                 that is if <userinput>b^(n-1) == 1 mod n</userinput>.  This calls the <link 
linkend="gel-function-PseudoprimeTest"><function>PseudoprimeTest</function></link></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
+         <listitem>
+          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
+          <para>Test if <varname>n</varname> is a strong pseudoprime to base <varname>b</varname> but not a 
prime.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
+         <listitem>
+          <synopsis>Jacobi (a,b)</synopsis>
+          <para>Aliases: <function>JacobiSymbol</function></para>
+          <para>Calculate the Jacobi symbol (a/b) (b should be odd).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
+         <listitem>
+          <synopsis>JacobiKronecker (a,b)</synopsis>
+          <para>Aliases: <function>JacobiKroneckerSymbol</function></para>
+          <para>Calculate the Jacobi symbol (a/b) with the Kronecker extension (a/2)=(2/a) when a odd, or 
(a/2)=0 when a even.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
+         <listitem>
+          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
+          <para>Return the residue of <varname>a</varname> mod <varname>n</varname> with the least absolute 
value (in the interval -n/2 to n/2).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Legendre"/>Legendre</term>
+         <listitem>
+          <synopsis>Legendre (a,p)</synopsis>
+          <para>Aliases: <function>LegendreSymbol</function></para>
+          <para>Calculate the Legendre symbol (a/p).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/LegendreSymbol";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LegendreSymbol.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
+         <listitem>
+          <synopsis>LucasLehmer (p)</synopsis>
+          <para>Test if 2<superscript>p</superscript>-1 is a Mersenne prime using the Lucas-Lehmer test.
+           See also
+           <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link>
+           and
+           <link linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>.
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasLhemer";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Lucas-LehmerTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
+         <listitem>
+          <synopsis>LucasNumber (n)</synopsis>
+          <para>Returns the <varname>n</varname>th Lucas number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas_number";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasNumbers";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LucasNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
+         <listitem>
+          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
+          <para>Return all maximal prime power factors of a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
+         <listitem>
+          <synopsis>MersennePrimeExponents</synopsis>
+          <para>
+           A vector of known Mersenne prime exponents, that is
+           a list of positive integers
+           <varname>p</varname> such that
+            2<superscript>p</superscript>-1 is a prime.
+           See also
+           <link linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>
+           and
+           <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
+         <listitem>
+          <synopsis>MillerRabinTest (n,reps)</synopsis>
+          <para>
+           Use the Miller-Rabin primality test on <varname>n</varname>,
+           <varname>reps</varname> number of times.  The probability of false
+           positive is <userinput>(1/4)^reps</userinput>.  It is probably
+           usually better to use
+           <link linkend="gel-function-IsPrime">
+           <function>IsPrime</function></link> since that is faster and
+           better on smaller integers.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink> 
or
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
+         <listitem>
+          <synopsis>MillerRabinTestSure (n)</synopsis>
+          <para>
+           Use the Miller-Rabin primality test on <varname>n</varname> with
+           enough bases that assuming the Generalized Riemann Hypothesis the
+           result is deterministic.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink>, or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
+         <listitem>
+          <synopsis>ModInvert (n,m)</synopsis>
+          <para>Returns inverse of n mod m.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/ModularInverse.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
+         <listitem>
+          <synopsis>MoebiusMu (n)</synopsis>
+          <para>
+           Return the Moebius mu function evaluated in <varname>n</varname>.
+           That is, it returns 0 if <varname>n</varname> is not a product
+           of distinct primes and <userinput>(-1)^k</userinput> if it is
+           a product of <varname>k</varname> distinct primes.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/MoebiusFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/MoebiusFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
+         <listitem>
+          <synopsis>NextPrime (n)</synopsis>
+          <para>
+           Returns the least prime greater than <varname>n</varname>.
+           Negatives of primes are considered prime and so to get the
+           previous prime you can use <userinput>-NextPrime(-n)</userinput>.
+         </para>
+          <para>
+           This function uses the GMPs <function>mpz_nextprime</function>,
+           which in turn uses the probabilistic Miller-Rabin test
+           (See also <link 
linkend="gel-function-MillerRabinTest"><function>MillerRabinTest</function></link>).
+           The probability
+           of false positive is not tunable, but is low enough
+           for all practical purposes.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
+         <listitem>
+          <synopsis>PadicValuation (n,p)</synopsis>
+          <para>Returns the p-adic valuation (number of trailing zeros in base <varname>p</varname>).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/P-adic_order";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/PAdicValuation";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
+         <listitem>
+          <synopsis>PowerMod (a,b,m)</synopsis>
+          <para>
+           Compute <userinput>a^b mod m</userinput>.  The
+           <varname>b</varname>'s power of <varname>a</varname> modulo
+           <varname>m</varname>.  It is not necessary to use this function
+           as it is automatically used in modulo mode.  Hence
+           <userinput>a^b mod m</userinput> is just as fast.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Prime"/>Prime</term>
+         <listitem>
+          <synopsis>Prime (n)</synopsis>
+          <para>Aliases: <function>prime</function></para>
+          <para>Return the <varname>n</varname>th prime (up to a limit).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
+         <listitem>
+          <synopsis>PrimeFactors (n)</synopsis>
+          <para>Return all prime factors of a number as a vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Prime_factor";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeFactor.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
+         <listitem>
+          <synopsis>PseudoprimeTest (n,b)</synopsis>
+         <para>Pseudoprime test, returns <constant>true</constant> if and only if
+               <userinput>b^(n-1) == 1  mod n</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Pseudoprime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pseudoprime.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
+         <listitem>
+          <synopsis>RemoveFactor (n,m)</synopsis>
+          <para>Removes all instances of the factor <varname>m</varname> from the number 
<varname>n</varname>.  That is divides by the largest power of <varname>m</varname>, that divides 
<varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Divisibility";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Factor.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
+         <listitem>
+          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
+          <para>Find discrete log of <varname>n</varname> base <varname>b</varname> in 
F<subscript>q</subscript>, the finite group of order <varname>q</varname>, where <varname>q</varname> is a 
prime using the Silver-Pohlig-Hellman algorithm, given <varname>f</varname> being the factorization of 
<varname>q</varname>-1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
+         <listitem>
+          <synopsis>SqrtModPrime (n,p)</synopsis>
+          <para>Find square root of <varname>n</varname> modulo <varname>p</varname> (where 
<varname>p</varname> is a prime).  Null is returned if not a quadratic residue.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticResidue";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QuadraticResidue.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
+         <listitem>
+          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
+          <para>Run the strong pseudoprime test base <varname>b</varname> on <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Strong_pseudoprime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/StrongPseudoprime";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/StrongPseudoprime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-gcd"/>gcd</term>
+         <listitem>
+          <synopsis>gcd (a,args...)</synopsis>
+          <para>Aliases: <function>GCD</function></para>
+          <para>
+           Greatest common divisor of integers.  You can enter as many
+           integers as you want in the argument list, or you can give
+           a vector or a matrix of integers.  If you give more than
+           one matrix of the same size then GCD is done element by
+           element.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greatest_common_divisor";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/GreatestCommonDivisor";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/GreatestCommonDivisor.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-lcm"/>lcm</term>
+         <listitem>
+          <synopsis>lcm (a,args...)</synopsis>
+          <para>Aliases: <function>LCM</function></para>
+          <para>
+           Least common multiplier of integers.  You can enter as many
+           integers as you want in the argument list, or you can give a 
+           vector or a matrix of integers.  If you give more than one
+           matrix of the same size then LCM is done element by element.    
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Least_common_multiple";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LeastCommonMultiple";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LeastCommonMultiple.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-matrix">
+      <title>Matrixoperationen</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix (a,func)</synopsis>
+          <para>Apply a function over all entries of a matrix and return a matrix of the results.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix2 (a,b,func)</synopsis>
+          <para>Apply a function over all entries of 2 matrices (or 1 value and 1 matrix) and return a 
matrix of the results.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
+         <listitem>
+          <synopsis>ColumnsOf (M)</synopsis>
+          <para>Gets the columns of a matrix as a horizontal vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
+         <listitem>
+          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
+          <para>Remove column(s) and row(s) from a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
+         <listitem>
+          <synopsis>CompoundMatrix (k,A)</synopsis>
+          <para>Calculate the kth compound matrix of A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
+         <listitem>
+          <synopsis>CountZeroColumns (M)</synopsis>
+          <para>
+          Count the number of zero columns in a matrix.  For example,
+          once you column-reduce a matrix, you can use this to find
+          the nullity.  See <link linkend="gel-function-cref"><function>cref</function></link>
+          and <link linkend="gel-function-Nullity"><function>Nullity</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
+         <listitem>
+          <synopsis>DeleteColumn (M,col)</synopsis>
+          <para>Löscht eine Spalte einer Matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
+         <listitem>
+          <synopsis>DeleteRow (M,row)</synopsis>
+          <para>Löscht eine Zeile einer Matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
+         <listitem>
+          <synopsis>DiagonalOf (M)</synopsis>
+          <para>Gets the diagonal entries of a matrix as a column vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_of_a_matrix#Matrices";>Wikipedia</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
+         <listitem>
+          <synopsis>DotProduct (u,v)</synopsis>
+         <para>Get the dot product of two vectors.  The vectors must be of the
+                 same size.  No conjugates are taken so this is a bilinear form even if working over the 
complex numbers; This is the bilinear scalar product not the sesquilinear scalar product.  See <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link> for the standard sesquilinear inner 
product.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Dot_product";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DotProduct";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
+         <listitem>
+          <synopsis>ExpandMatrix (M)</synopsis>
+          <para>
+           Expands a matrix just like we do on unquoted matrix input.
+           That is we expand any internal matrices as blocks.  This is
+           a way to construct matrices out of smaller ones and this is
+           normally done automatically on input unless the matrix is quoted.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
+         <listitem>
+          <synopsis>HermitianProduct (u,v)</synopsis>
+          <para>Aliases: <function>InnerProduct</function></para>
+          <para>Get the Hermitian product of two vectors.  The vectors must be of the same size.  This is a 
sesquilinear form using the identity matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sesquilinear_form";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/HermitianInnerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-I"/>I</term>
+         <listitem>
+          <synopsis>I (n)</synopsis>
+          <para>Aliases: <function>eye</function></para>
+         <para>Return an identity matrix of a given size, that is <varname>n</varname> by 
<varname>n</varname>.  If <varname>n</varname> is zero, returns <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Identity_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/IdentityMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
+         <listitem>
+          <synopsis>IndexComplement (vec,msize)</synopsis>
+          <para>Return the index complement of a vector of indexes.  Everything is one based.  For example 
for vector <userinput>[2,3]</userinput> and size
+<userinput>5</userinput>, we return <userinput>[1,4,5]</userinput>.  If
+<varname>msize</varname> is 0, we always return <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
+         <listitem>
+          <synopsis>IsDiagonal (M)</synopsis>
+          <para>Is a matrix diagonal.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
+         <listitem>
+          <synopsis>IsIdentity (x)</synopsis>
+          <para>Check if a matrix is the identity matrix.  Automatically returns <constant>false</constant>
+           if the matrix is not square.  Also works on numbers, in which
+           case it is equivalent to <userinput>x==1</userinput>.  When <varname>x</varname> is
+           <constant>null</constant> (we could think of that as a 0 by 0 matrix),
+           no error is generated and <constant>false</constant> is returned.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
+         <listitem>
+          <synopsis>IsLowerTriangular (M)</synopsis>
+          <para>Is a matrix lower triangular. That is, are all the entries above the diagonal zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
+         <listitem>
+          <synopsis>IsMatrixInteger (M)</synopsis>
+          <para>Check if a matrix is a matrix of integers (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
+         <listitem>
+          <synopsis>IsMatrixNonnegative (M)</synopsis>
+          <para>Check if a matrix is non-negative, that is if each element is non-negative.
+         Do not confuse positive matrices with positive semi-definite matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
+         <listitem>
+          <synopsis>IsMatrixPositive (M)</synopsis>
+         <para>Check if a matrix is positive, that is if each element is
+positive (and hence real).  In particular, no element is 0.  Do not confuse
+positive matrices with positive definite matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
+         <listitem>
+          <synopsis>IsMatrixRational (M)</synopsis>
+          <para>Check if a matrix is a matrix of rational (non-complex)
+numbers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
+         <listitem>
+          <synopsis>IsMatrixReal (M)</synopsis>
+          <para>Check if a matrix is a matrix of real (non-complex) numbers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
+         <listitem>
+          <synopsis>IsMatrixSquare (M)</synopsis>
+          <para>
+           Check if a matrix is square, that is its width is equal to
+           its height.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
+         <listitem>
+          <synopsis>IsUpperTriangular (M)</synopsis>
+          <para>Is a matrix upper triangular?  That is, a matrix is upper triangular if all the entries 
below the diagonal are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
+         <listitem>
+          <synopsis>IsValueOnly (M)</synopsis>
+          <para>Check if a matrix is a matrix of numbers only.  Many internal
+functions make this check.  Values can be any number including complex numbers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsVector"/>IsVector</term>
+         <listitem>
+          <synopsis>IsVector (v)</synopsis>
+          <para>
+           Is argument a horizontal or a vertical vector.  Genius does
+           not distinguish between a matrix and a vector and a vector
+           is just a 1 by <varname>n</varname> or <varname>n</varname> by 1 matrix.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsZero"/>IsZero</term>
+         <listitem>
+          <synopsis>IsZero (x)</synopsis>
+          <para>Check if a matrix is composed of all zeros.  Also works on numbers, in which
+           case it is equivalent to <userinput>x==0</userinput>.  When <varname>x</varname> is
+           <constant>null</constant> (we could think of that as a 0 by 0 matrix),
+           no error is generated and <constant>true</constant> is returned as the condition is
+           vacuous.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
+         <listitem>
+          <synopsis>LowerTriangular (M)</synopsis>
+          <para>Returns a copy of the matrix <varname>M</varname> with all the entries above the diagonal 
set to zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
+         <listitem>
+          <synopsis>MakeDiagonal (v,arg...)</synopsis>
+          <para>Aliases: <function>diag</function></para>
+         <para>Make diagonal matrix from a vector.  Alternatively you can pass
+                 in the values to put on the diagonal as arguments.  So
+                 <userinput>MakeDiagonal([1,2,3])</userinput> is the same as
+                 <userinput>MakeDiagonal(1,2,3)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
+         <listitem>
+          <synopsis>MakeVector (A)</synopsis>
+          <para>Make column vector out of matrix by putting columns above
+                 each other.  Returns <constant>null</constant> when given <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
+         <listitem>
+          <synopsis>MatrixProduct (A)</synopsis>
+          <para>
+           Calculate the product of all elements in a matrix or vector.
+           That is we multiply all the elements and return a number that
+           is the product of all the elements.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
+         <listitem>
+          <synopsis>MatrixSum (A)</synopsis>
+          <para>
+           Calculate the sum of all elements in a matrix or vector.  That is
+           we add all the elements and return a number that is the
+           sum of all the elements.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
+         <listitem>
+          <synopsis>MatrixSumSquares (A)</synopsis>
+          <para>Calculate the sum of squares of all elements in a matrix
+           or vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroColumns"/>NonzeroColumns</term>
+         <listitem>
+          <synopsis>NonzeroColumns (M)</synopsis>
+          <para>Returns a row vector of the indices of nonzero columns in the matrix 
<varname>M</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroElements"/>NonzeroElements</term>
+         <listitem>
+          <synopsis>NonzeroElements (v)</synopsis>
+          <para>Returns a row vector of the indices of nonzero elements in the vector 
<varname>v</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
+         <listitem>
+          <synopsis>OuterProduct (u,v)</synopsis>
+          <para>Get the outer product of two vectors.  That is, suppose that
+<varname>u</varname> and <varname>v</varname> are vertical vectors, then
+the outer product is <userinput>v * u.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
+         <listitem>
+          <synopsis>ReverseVector (v)</synopsis>
+         <para>Reverse elements in a vector.  Return <constant>null</constant> if given 
<constant>null</constant></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSum"/>RowSum</term>
+         <listitem>
+          <synopsis>RowSum (m)</synopsis>
+          <para>Calculate sum of each row in a matrix and return a vertical
+vector with the result.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
+         <listitem>
+          <synopsis>RowSumSquares (m)</synopsis>
+          <para>Calculate sum of squares of each row in a matrix and return a vertical vector with the 
results.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
+         <listitem>
+          <synopsis>RowsOf (M)</synopsis>
+         <para>Gets the rows of a matrix as a vertical vector.  Each element
+of the vector is a horizontal vector that is the corresponding row of
+<varname>M</varname>.  This function is useful if you wish to loop over the
+rows of a matrix.  For example, as <userinput>for r in RowsOf(M) do
+something(r)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
+         <listitem>
+          <synopsis>SetMatrixSize (M,rows,columns)</synopsis>
+          <para>Make new matrix of given size from old one.  That is, a new
+         matrix will be returned to which the old one is copied.  Entries that
+         don't fit are clipped and extra space is filled with zeros.
+         If <varname>rows</varname> or <varname>columns</varname> are zero
+         then <constant>null</constant> is returned.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
+         <listitem>
+          <synopsis>ShuffleVector (v)</synopsis>
+         <para>Shuffle elements in a vector.  Return <constant>null</constant> if given 
<constant>null</constant>.</para>
+         <para>Version 1.0.13 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SortVector"/>SortVector</term>
+         <listitem>
+          <synopsis>SortVector (v)</synopsis>
+          <para>Sort vector elements in an increasing order.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
+         <listitem>
+          <synopsis>StripZeroColumns (M)</synopsis>
+          <para>Removes any all-zero columns of <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
+         <listitem>
+          <synopsis>StripZeroRows (M)</synopsis>
+          <para>Removes any all-zero rows of <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
+         <listitem>
+          <synopsis>Submatrix (m,r,c)</synopsis>
+          <para>Return column(s) and row(s) from a matrix.  This is
+just equivalent to <userinput>m@(r,c)</userinput>.  <varname>r</varname>
+and <varname>c</varname> should be vectors of rows and columns (or single numbers if only one row or column 
is needed).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
+         <listitem>
+          <synopsis>SwapRows (m,row1,row2)</synopsis>
+          <para>Swap two rows in a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
+         <listitem>
+          <synopsis>UpperTriangular (M)</synopsis>
+          <para>Returns a copy of the matrix <varname>M</varname> with all the entries below the diagonal 
set to zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-columns"/>columns</term>
+         <listitem>
+          <synopsis>columns (M)</synopsis>
+          <para>Get the number of columns of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-elements"/>elements</term>
+         <listitem>
+          <synopsis>elements (M)</synopsis>
+          <para>Get the total number of elements of a matrix.  This is the
+number of columns times the number of rows.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ones"/>ones</term>
+         <listitem>
+          <synopsis>ones (rows,columns...)</synopsis>
+         <para>Make an matrix of all ones (or a row vector if only one argument is given).  Returns 
<constant>null</constant> if either rows or columns are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rows"/>rows</term>
+         <listitem>
+          <synopsis>rows (M)</synopsis>
+          <para>Get the number of rows of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-zeros"/>zeros</term>
+         <listitem>
+          <synopsis>zeros (rows,columns...)</synopsis>
+         <para>Make a matrix of all zeros (or a row vector if only one argument is given).  Returns 
<constant>null</constant> if either rows or columns are zero.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-linear-algebra">
+      <title>Lineare Algebra</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
+         <listitem>
+          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
+          <para>Get the auxiliary unit matrix of size <varname>n</varname>.  This is a square matrix with 
that is all zero except the
+superdiagonal being all ones.  It is the Jordan block matrix of one zero eigenvalue.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information 
on Jordan Canonical Form.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
+         <listitem>
+          <synopsis>BilinearForm (v,A,w)</synopsis>
+          <para>Evaluate (v,w) with respect to the bilinear form given by the matrix A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
+         <listitem>
+          <synopsis>BilinearFormFunction (A)</synopsis>
+          <para>Return a function that evaluates two vectors with respect to the bilinear form given by 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomial (M)</synopsis>
+          <para>Aliases: <function>CharPoly</function></para>
+         <para>Get the characteristic polynomial as a vector.  That is, return
+the coefficients of the polynomial starting with the constant term.  This is
+the polynomial defined by <userinput>det(M-xI)</userinput>.  The roots of this
+polynomial are the eigenvalues of <varname>M</varname>.
+See also <link 
linkend="gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</link>.
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
+         <para>Get the characteristic polynomial as a function.  This is
+the polynomial defined by <userinput>det(M-xI)</userinput>.  The roots of this
+polynomial are the eigenvalues of <varname>M</varname>.
+See also <link linkend="gel-function-CharacteristicPolynomial">CharacteristicPolynomial</link>.
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
+         <listitem>
+          <synopsis>ColumnSpace (M)</synopsis>
+         <para>Get a basis matrix for the columnspace of a matrix.  That is,
+return a matrix whose columns are the basis for the column space of
+<varname>M</varname>.  That is the space spanned by the columns of
+<varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
+         <listitem>
+          <synopsis>CommutationMatrix (m, n)</synopsis>
+         <para>Return the commutation matrix <userinput>K(m,n)</userinput>, which is the unique 
<userinput>m*n</userinput> by
+                 <userinput>m*n</userinput> matrix such that <userinput>K(m,n) * MakeVector(A) = 
MakeVector(A.')</userinput> for all <varname>m</varname> by <varname>n</varname>
+                 matrices <varname>A</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
+         <listitem>
+          <synopsis>CompanionMatrix (p)</synopsis>
+          <para>Companion matrix of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
+         <listitem>
+          <synopsis>ConjugateTranspose (M)</synopsis>
+          <para>Conjugate transpose of a matrix (adjoint).  This is the
+         same as the <userinput>'</userinput> operator.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Conjugate_transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ConjugateTranspose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Convolution"/>Convolution</term>
+         <listitem>
+          <synopsis>Convolution (a,b)</synopsis>
+          <para>Aliases: <function>convol</function></para>
+          <para>Calculate convolution of two horizontal vectors.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
+         <listitem>
+          <synopsis>ConvolutionVector (a,b)</synopsis>
+          <para>Calculate convolution of two horizontal vectors.  Return
+result as a vector and not added together.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
+         <listitem>
+          <synopsis>CrossProduct (v,w)</synopsis>
+         <para>CrossProduct of two vectors in R<superscript>3</superscript> as
+                 a column vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Cross_product";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
+         <listitem>
+          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
+          <para>Get the determinantal divisors of an integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
+         <listitem>
+          <synopsis>DirectSum (M,N...)</synopsis>
+          <para>Direct sum of matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
+         <listitem>
+          <synopsis>DirectSumMatrixVector (v)</synopsis>
+          <para>Direct sum of a vector of matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
+         <listitem>
+          <synopsis>Eigenvalues (M)</synopsis>
+          <para>Aliases: <function>eig</function></para>
+          <para>Get the eigenvalues of a square matrix.
+           Currently only works for matrices of size up to 4 by 4, or for
+           triangular matrices (for which the eigenvalues are on the
+            diagonal).
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvalue";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvalue";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvalue.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
+         <listitem>
+          <synopsis>Eigenvectors (M)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues, &amp;multiplicities)</synopsis>
+         <para>Get the eigenvectors of a square matrix.  Optionally get also
+the eigenvalues and their algebraic multiplicities.
+           Currently only works for matrices of size up to 2 by 2.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvector";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvector";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvector.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
+         <listitem>
+          <synopsis>GramSchmidt (v,B...)</synopsis>
+         <para>Apply the Gram-Schmidt process (to the columns) with respect to
+inner product given by <varname>B</varname>.  If <varname>B</varname> is not
+given then the standard Hermitian product is used.  <varname>B</varname> can
+either be a sesquilinear function of two arguments or it can be a matrix giving
+a sesquilinear form.  The vectors will be made orthonormal with respect to
+<varname>B</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GramSchmidtOrthogonalization";>Planetmath</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
+         <listitem>
+          <synopsis>HankelMatrix (c,r)</synopsis>
+         <para>Hankel matrix, a matrix whose skew-diagonals are constant.  <varname>c</varname> is the first 
row and <varname>r</varname> is the
+                 last column.  It is assumed that both arguments are vectors and the last element of 
<varname>c</varname> is the same
+                 as the first element of <varname>r</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hankel_matrix";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
+         <listitem>
+          <synopsis>HilbertMatrix (n)</synopsis>
+          <para>Hilbert matrix of order <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Image"/>Image</term>
+         <listitem>
+          <synopsis>Image (T)</synopsis>
+          <para>Get the image (columnspace) of a linear transform.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
+         <listitem>
+          <synopsis>InfNorm (v)</synopsis>
+          <para>Get the Inf Norm of a vector, sometimes called the sup norm or the max norm.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
+         <listitem>
+          <synopsis>InvariantFactorsInteger (M)</synopsis>
+          <para>Get the invariant factors of a square integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
+         <listitem>
+          <synopsis>InverseHilbertMatrix (n)</synopsis>
+          <para>Inverse Hilbert matrix of order <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
+         <listitem>
+          <synopsis>IsHermitian (M)</synopsis>
+          <para>Is a matrix Hermitian.  That is, is it equal to its conjugate transpose.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hermitian_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HermitianMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
+         <listitem>
+          <synopsis>IsInSubspace (v,W)</synopsis>
+          <para>Test if a vector is in a subspace.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
+         <listitem>
+          <synopsis>IsInvertible (n)</synopsis>
+          <para>Is a matrix (or number) invertible (Integer matrix is invertible if and only if it is 
invertible over the integers).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
+         <listitem>
+          <synopsis>IsInvertibleField (n)</synopsis>
+          <para>Is a matrix (or number) invertible over a field.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
+         <listitem>
+          <synopsis>IsNormal (M)</synopsis>
+          <para>Is <varname>M</varname> a normal matrix.  That is,
+         does <userinput>M*M' == M'*M</userinput>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/NormalMatrix";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
+         <listitem>
+          <synopsis>IsPositiveDefinite (M)</synopsis>
+          <para>Is <varname>M</varname> a Hermitian positive definite matrix.  That is if
+<userinput>HermitianProduct(M*v,v)</userinput> is always strictly positive for
+any vector <varname>v</varname>.
+<varname>M</varname> must be square and Hermitian to be positive definite.
+The check that is performed is that every principal submatrix has a non-negative
+determinant.
+(See <link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>
+           Note that some authors (for example Mathworld) do not require that
+           <varname>M</varname> be Hermitian, and then the condition is
+           on the real part of the inner product, but we do not take this
+           view.  If you wish to perform this check, just check the
+           Hermitian part of the matrix <varname>M</varname> as follows:
+           <userinput>IsPositiveDefinite(M+M')</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive-definite_matrix";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/PositiveDefinite";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
+         <listitem>
+          <synopsis>IsPositiveSemidefinite (M)</synopsis>
+          <para>Is <varname>M</varname> a Hermitian positive semidefinite matrix.  That is if
+<userinput>HermitianProduct(M*v,v)</userinput> is always non-negative for
+any vector <varname>v</varname>.
+<varname>M</varname> must be square and Hermitian to be positive semidefinite.
+The check that is performed is that every principal submatrix has a non-negative
+determinant.
+(See <link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>
+           Note that some authors do not require that
+           <varname>M</varname> be Hermitian, and then the condition is
+           on the real part of the inner product, but we do not take this
+           view.  If you wish to perform this check, just check the
+           Hermitian part of the matrix <varname>M</varname> as follows:
+           <userinput>IsPositiveSemidefinite(M+M')</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PositiveSemidefinite";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html";>Mathworld</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
+         <listitem>
+          <synopsis>IsSkewHermitian (M)</synopsis>
+          <para>Is a matrix skew-Hermitian.  That is, is the conjugate transpose equal to negative of the 
matrix.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SkewHermitianMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
+         <listitem>
+          <synopsis>IsUnitary (M)</synopsis>
+          <para>Is a matrix unitary?  That is, does
+         <userinput>M'*M</userinput> and <userinput>M*M'</userinput>
+         equal the identity.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/UnitaryTransformation";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/UnitaryMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
+         <listitem>
+          <synopsis>JordanBlock (n,lambda)</synopsis>
+          <para>Aliases: <function>J</function></para>
+          <para>Get the Jordan block corresponding to the eigenvalue
+         <varname>lambda</varname> with multiplicity <varname>n</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Kernel"/>Kernel</term>
+         <listitem>
+          <synopsis>Kernel (T)</synopsis>
+          <para>Get the kernel (nullspace) of a linear transform.</para>
+         <para>
+         (See <link linkend="gel-function-NullSpace">NullSpace</link>)
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerProduct"/>KroneckerProduct</term>
+         <listitem>
+          <synopsis>KroneckerProduct (M, N)</synopsis>
+          <para>Aliases: <function>TensorProduct</function></para>
+         <para>
+                 Compute the Kronecker product (tensor product in standard basis)
+                 of two matrices.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Kronecker_product";>Wikipedia</ulink>, 
+           <ulink url="http://planetmath.org/KroneckerProduct";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/KroneckerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
+         <listitem>
+          <synopsis>LUDecomposition (A, L, U)</synopsis>
+          <para>
+                 Get the LU decomposition of <varname>A</varname>, that is
+                 find a lower triangular matrix and upper triangular
+                 matrix whose product is <varname>A</varname>.
+           Store the result in the <varname>L</varname> and
+           <varname>U</varname>, which should be references.  It returns <constant>true</constant>
+           if successful.
+           For example suppose that A is a square matrix, then after running:
+           <screen><prompt>genius&gt;</prompt> <userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
+</screen>
+           You will have the lower matrix stored in a variable called
+           <varname>L</varname> and the upper matrix in a variable called
+           <varname>U</varname>.
+         </para>
+         <para>
+           This is the LU decomposition of a matrix aka Crout and/or Cholesky
+           reduction.
+           (ISBN 0-201-11577-8 pp.99-103)
+           The upper triangular matrix features a diagonal
+           of values 1 (one).  This is not Doolittle's Method, which features
+           the 1's diagonal on the lower matrix. 
+         </para>
+         <para>
+           Not all matrices have LU decompositions, for example
+           <userinput>[0,1;1,0]</userinput> does not and this function returns
+           <constant>false</constant> in this case and sets <varname>L</varname>
+           and <varname>U</varname> to <constant>null</constant>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/LU_decomposition";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LUDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LUDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Minor"/>Minor</term>
+         <listitem>
+          <synopsis>Minor (M,i,j)</synopsis>
+          <para>Get the <varname>i</varname>-<varname>j</varname> minor of a matrix.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Minor";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
+         <listitem>
+          <synopsis>NonPivotColumns (M)</synopsis>
+          <para>Return the columns that are not the pivot columns of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Norm"/>Norm</term>
+         <listitem>
+          <synopsis>Norm (v,p...)</synopsis>
+          <para>Aliases: <function>norm</function></para>
+          <para>Get the p Norm (or 2 Norm if no p is supplied) of a vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
+         <listitem>
+          <synopsis>NullSpace (T)</synopsis>
+          <para>Get the nullspace of a matrix.  That is the kernel of the
+         linear mapping that the matrix represents.  This is returned
+         as a matrix whose column space is the nullspace of
+         <varname>T</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullspace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Nullity"/>Nullity</term>
+         <listitem>
+          <synopsis>Nullity (M)</synopsis>
+          <para>Aliases: <function>nullity</function></para>
+          <para>Get the nullity of a matrix.  That is, return the dimension of
+the nullspace; the dimension of the kernel of <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullity";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
+         <listitem>
+          <synopsis>OrthogonalComplement (M)</synopsis>
+          <para>Get the orthogonal complement of the columnspace.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
+         <listitem>
+          <synopsis>PivotColumns (M)</synopsis>
+          <para>Return pivot columns of a matrix, that is columns that have a leading 1 in row reduced form. 
 Also returns the row where they occur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Projection"/>Projection</term>
+         <listitem>
+          <synopsis>Projection (v,W,B...)</synopsis>
+         <para>Projection of vector <varname>v</varname> onto subspace
+<varname>W</varname> with respect to inner product given by
+<varname>B</varname>.  If <varname>B</varname> is not given then the standard
+Hermitian product is used.  <varname>B</varname> can either be a sesquilinear
+function of two arguments or it can be a matrix giving a sesquilinear form.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
+         <listitem>
+          <synopsis>QRDecomposition (A, Q)</synopsis>
+          <para>
+           Get the QR decomposition of a square matrix <varname>A</varname>,
+           returns the upper triangular matrix <varname>R</varname>
+           and sets <varname>Q</varname> to the orthogonal (unitary) matrix.
+           <varname>Q</varname> should be a reference or <constant>null</constant> if you don't
+           want any return.
+           For example:
+           <screen><prompt>genius&gt;</prompt> <userinput>R = QRDecomposition(A,&amp;Q)</userinput>
+</screen>
+           You will have the upper triangular matrix stored in
+           a variable called
+           <varname>R</varname> and the orthogonal (unitary) matrix stored in
+           <varname>Q</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/QR_decomposition";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/QRDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QRDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
+         <listitem>
+          <synopsis>RayleighQuotient (A,x)</synopsis>
+          <para>Return the Rayleigh quotient (also called the Rayleigh-Ritz quotient or ratio) of a matrix 
and a vector.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
+         <listitem>
+          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</synopsis>
+          <para>Find eigenvalues of <varname>A</varname> using the Rayleigh
+               quotient iteration method.  <varname>x</varname> is a guess
+               at a eigenvector and could be random.  It should have 
+               nonzero imaginary part if it will have any chance at finding
+               complex eigenvalues.  The code will run at most
+               <varname>maxiter</varname> iterations and return <constant>null</constant>
+               if we cannot get within an error of <varname>epsilon</varname>.
+               <varname>vecref</varname> should either be <constant>null</constant> or a reference
+               to a variable where the eigenvector should be stored.
+               </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information on 
Rayleigh quotient.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rank"/>Rank</term>
+         <listitem>
+          <synopsis>Rank (M)</synopsis>
+          <para>Aliases: <function>rank</function></para>
+          <para>Get the rank of a matrix.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SylvestersLaw";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
+         <listitem>
+          <synopsis>RosserMatrix ()</synopsis>
+          <para>Returns the Rosser matrix, which is a classic symmetric eigenvalue test problem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
+         <listitem>
+          <synopsis>Rotation2D (angle)</synopsis>
+          <para>Aliases: <function>RotationMatrix</function></para>
+          <para>Return the matrix corresponding to rotation around origin in 
R<superscript>2</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
+         <listitem>
+          <synopsis>Rotation3DX (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the x-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
+         <listitem>
+          <synopsis>Rotation3DY (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the y-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
+         <listitem>
+          <synopsis>Rotation3DZ (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the z-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
+         <listitem>
+          <synopsis>RowSpace (M)</synopsis>
+          <para>Get a basis matrix for the rowspace of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
+         <listitem>
+          <synopsis>SesquilinearForm (v,A,w)</synopsis>
+          <para>Evaluate (v,w) with respect to the sesquilinear form given by the matrix A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
+         <listitem>
+          <synopsis>SesquilinearFormFunction (A)</synopsis>
+          <para>Return a function that evaluates two vectors with respect to the sesquilinear form given by 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
+         <listitem>
+          <synopsis>SmithNormalFormField (A)</synopsis>
+          <para>Returns the Smith normal form of a matrix over fields (will end up with 1's on the 
diagonal).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
+         <listitem>
+          <synopsis>SmithNormalFormInteger (M)</synopsis>
+          <para>Return the Smith normal form for square integer matrices over integers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
+         <listitem>
+          <synopsis>SolveLinearSystem (M,V,args...)</synopsis>
+         <para>Solve linear system Mx=V, return solution V if there is a unique solution, 
<constant>null</constant> otherwise.  Extra two reference parameters can optionally be used to get the 
reduced M and V.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
+         <listitem>
+          <synopsis>ToeplitzMatrix (c, r...)</synopsis>
+         <para>Return the Toeplitz matrix constructed given the first column c
+and (optionally) the first row r.  If only the column c is given then it is
+conjugated and the nonconjugated version is used for the first row to give a
+Hermitian matrix (if the first element is real of course).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Toeplitz_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ToeplitzMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Trace"/>Trace</term>
+         <listitem>
+          <synopsis>Trace (M)</synopsis>
+          <para>Aliases: <function>trace</function></para>
+          <para>Calculate the trace of a matrix.  That is the sum of the diagonal elements.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trace_(linear_algebra)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Trace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Transpose"/>Transpose</term>
+         <listitem>
+          <synopsis>Transpose (M)</synopsis>
+          <para>Transpose of a matrix.  This is the same as the
+          <userinput>.'</userinput> operator.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Transpose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
+         <listitem>
+          <synopsis>VandermondeMatrix (v)</synopsis>
+          <para>Aliases: <function>vander</function></para>
+          <para>Return the Vandermonde matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Vandermonde_matrix";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
+         <listitem>
+          <synopsis>VectorAngle (v,w,B...)</synopsis>
+          <para>The angle of two vectors with respect to inner product given by
+<varname>B</varname>.  If <varname>B</varname> is not given then the standard
+Hermitian product is used.  <varname>B</varname> can either be a sesquilinear
+function of two arguments or it can be a matrix giving a sesquilinear form.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
+         <listitem>
+          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
+          <para>The direct sum of the vector spaces M and N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
+         <listitem>
+          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
+          <para>Intersection of the subspaces given by M and N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
+         <listitem>
+          <synopsis>VectorSubspaceSum (M,N)</synopsis>
+          <para>The sum of the vector spaces M and N, that is {w | w=m+n, m in M, n in N}.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-adj"/>adj</term>
+         <listitem>
+          <synopsis>adj (m)</synopsis>
+          <para>Aliases: <function>Adjugate</function></para>
+          <para>Get the classical adjoint (adjugate) of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cref"/>cref</term>
+         <listitem>
+          <synopsis>cref (M)</synopsis>
+          <para>Aliases: <function>CREF</function> <function>ColumnReducedEchelonForm</function></para>
+          <para>Compute the Column Reduced Echelon Form.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-det"/>det</term>
+         <listitem>
+          <synopsis>det (M)</synopsis>
+          <para>Aliases: <function>Determinant</function></para>
+          <para>Get the determinant of a matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Determinant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Determinant2";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ref"/>ref</term>
+         <listitem>
+          <synopsis>ref (M)</synopsis>
+          <para>Aliases: <function>REF</function> <function>RowEchelonForm</function></para>
+         <para>Get the row echelon form of a matrix.  That is, apply gaussian
+elimination but not backaddition to <varname>M</varname>.  The pivot rows are
+divided to make all pivots 1.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rref"/>rref</term>
+         <listitem>
+          <synopsis>rref (M)</synopsis>
+          <para>Aliases: <function>RREF</function> <function>ReducedRowEchelonForm</function></para>
+          <para>Get the reduced row echelon form of a matrix.  That is, apply gaussian elimination together 
with backaddition to <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Reduced_row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ReducedRowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-combinatorics">
+      <title>Kombinatorik</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Catalan"/>Catalan</term>
+         <listitem>
+          <synopsis>Catalan (n)</synopsis>
+          <para>Get <varname>n</varname>th Catalan number.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CatalanNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Combinations"/>Combinations</term>
+         <listitem>
+          <synopsis>Combinations (k,n)</synopsis>
+          <para>Get all combinations of k numbers from 1 to n as a vector of vectors.
+         (See also <link linkend="gel-function-NextCombination">NextCombination</link>)
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
+         <listitem>
+          <synopsis>DoubleFactorial (n)</synopsis>
+          <para>Double factorial: <userinput>n(n-2)(n-4)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/DoubleFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorial"/>Factorial</term>
+         <listitem>
+          <synopsis>Factorial (n)</synopsis>
+          <para>Factorial: <userinput>n(n-1)(n-2)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Factorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
+         <listitem>
+          <synopsis>FallingFactorial (n,k)</synopsis>
+          <para>Falling factorial: <userinput>(n)_k = n(n-1)...(n-(k-1))</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FallingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
+         <listitem>
+          <synopsis>Fibonacci (x)</synopsis>
+          <para>Aliases: <function>fib</function></para>
+          <para>
+           Calculate <varname>n</varname>th Fibonacci number.  That
+           is the number defined recursively by
+           <userinput>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</userinput>
+           and 
+           <userinput>Fibonacci(1) = Fibonacci(2) = 1</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fibonacci_number";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/FibonacciSequence";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FibonacciNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
+         <listitem>
+          <synopsis>FrobeniusNumber (v,arg...)</synopsis>
+          <para>
+           Calculate the Frobenius number.  That is calculate largest
+           number that cannot be given as a non-negative integer linear
+           combination of a given vector of non-negative integers.
+           The vector can be given as separate numbers or a single vector.
+           All the numbers given should have GCD of 1.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coin_problem";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FrobeniusNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
+         <listitem>
+          <synopsis>GaloisMatrix (combining_rule)</synopsis>
+          <para>Galois matrix given a linear combining rule (a_1*x_1+...+a_n*x_n=x_(n+1)).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
+         <listitem>
+          <synopsis>GreedyAlgorithm (n,v)</synopsis>
+          <para>
+           Find the vector <varname>c</varname> of non-negative integers
+           such that taking the dot product with <varname>v</varname> is
+           equal to n.  If not possible returns <constant>null</constant>.  <varname>v</varname>
+           should be given sorted in increasing order and should consist
+           of non-negative integers.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greedy_algorithm";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GreedyAlgorithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
+         <listitem>
+          <synopsis>HarmonicNumber (n,r)</synopsis>
+          <para>Aliases: <function>HarmonicH</function></para>
+         <para>Harmonic Number, the <varname>n</varname>th harmonic number of order <varname>r</varname>.
+               That is, it is the sum of <userinput>1/k^r</userinput> for <varname>k</varname>
+               from 1 to n.  Equivalent to <userinput>sum k = 1 to n do 1/k^r</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Harmonic_number";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
+         <listitem>
+          <synopsis>Hofstadter (n)</synopsis>
+          <para>Hofstadter's function q(n) defined by q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2)).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hofstadter_sequence";>Wikipedia</ulink> for more 
information.
+           The sequence is <ulink url="https://oeis.org/A005185";>A005185 in OEIS</ulink>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
+         <listitem>
+          <synopsis>LinearRecursiveSequence (seed_values,combining_rule,n)</synopsis>
+          <para>Compute linear recursive sequence using Galois stepping.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
+         <listitem>
+          <synopsis>Multinomial (v,arg...)</synopsis>
+          <para>Calculate multinomial coefficients.  Takes a vector of
+           <varname>k</varname>
+           non-negative integers and computes the multinomial coefficient.
+           This corresponds to the coefficient in the homogeneous polynomial
+           in <varname>k</varname> variables with the corresponding powers.
+         </para>
+         <para>
+           The formula for <userinput>Multinomial(a,b,c)</userinput>
+           can be written as:
+<programlisting>(a+b+c)! / (a!b!c!)
+</programlisting>
+           In other words, if we would have only two elements, then
+<userinput>Multinomial(a,b)</userinput> is the same thing as
+<userinput>Binomial(a+b,a)</userinput> or
+<userinput>Binomial(a+b,b)</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Multinomial_theorem";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MultinomialTheorem";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/MultinomialCoefficient.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
+         <listitem>
+          <synopsis>NextCombination (v,n)</synopsis>
+         <para>Get combination that would come after v in call to
+combinations, first combination should be <userinput>[1:k]</userinput>.  This
+function is useful if you have many combinations to go through and you don't
+want to waste memory to store them all.
+         </para>
+         <para>
+           For example with Combinations you would normally write a loop like:
+          <screen><userinput>for n in Combinations (4,6) do (
+  SomeFunction (n)
+);</userinput>
+</screen>
+           But with NextCombination you would write something like:
+          <screen><userinput>n:=[1:4];
+do (
+  SomeFunction (n)
+) while not IsNull(n:=NextCombination(n,6));</userinput>
+</screen>
+         See also <link linkend="gel-function-Combinations">Combinations</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Pascal"/>Pascal</term>
+         <listitem>
+          <synopsis>Pascal (i)</synopsis>
+          <para>Get the Pascal's triangle as a matrix.  This will return
+         an <varname>i</varname>+1 by <varname>i</varname>+1 lower diagonal
+         matrix that is the Pascal's triangle after <varname>i</varname>
+         iterations.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PascalsTriangle";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Permutations"/>Permutations</term>
+         <listitem>
+          <synopsis>Permutations (k,n)</synopsis>
+          <para>Get all permutations of <varname>k</varname> numbers from 1 to <varname>n</varname> as a 
vector of vectors.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
+         <listitem>
+          <synopsis>RisingFactorial (n,k)</synopsis>
+          <para>Aliases: <function>Pochhammer</function></para>
+          <para>(Pochhammer) Rising factorial: (n)_k = n(n+1)...(n+(k-1)).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RisingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
+         <listitem>
+          <synopsis>StirlingNumberFirst (n,m)</synopsis>
+          <para>Aliases: <function>StirlingS1</function></para>
+          <para>Stirling number of the first kind.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersOfTheFirstKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
+         <listitem>
+          <synopsis>StirlingNumberSecond (n,m)</synopsis>
+          <para>Aliases: <function>StirlingS2</function></para>
+          <para>Stirling number of the second kind.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersSecondKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html";>Mathworld</ulink> 
for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
+         <listitem>
+          <synopsis>Subfactorial (n)</synopsis>
+          <para>Subfactorial: n! times sum_{k=0}^n (-1)^k/k!.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Triangular"/>Triangular</term>
+         <listitem>
+          <synopsis>Triangular (nth)</synopsis>
+          <para>Calculate the <varname>n</varname>th triangular number.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/TriangularNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nCr"/>nCr</term>
+         <listitem>
+          <synopsis>nCr (n,r)</synopsis>
+          <para>Aliases: <function>Binomial</function></para>
+          <para>Calculate combinations, that is, the binomial coefficient.
+               <varname>n</varname> can be any real number.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Choose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nPr"/>nPr</term>
+         <listitem>
+          <synopsis>nPr (n,r)</synopsis>
+          <para>Calculate the number of permutations of size
+          <varname>r</varname> of numbers from 1 to <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-calculus">
+      <title>Analysis</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
+          <para>Integration of f by Composite Simpson's Rule on the interval [a,b] with n subintervals with 
error of max(f'''')*h^4*(b-a)/180, note that n should be even.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,FourthDerivativeBound,Tolerance)</synopsis>
+          <para>Integration of f by Composite Simpson's Rule on the interval [a,b] with the number of steps 
calculated by the fourth derivative bound and the desired tolerance.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Derivative"/>Derivative</term>
+         <listitem>
+          <synopsis>Derivative (f,x0)</synopsis>
+          <para>Attempt to calculate derivative by trying first symbolically and then numerically.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
+         <listitem>
+          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
+         <para>Return a function that is the even periodic extension of
+<function>f</function> with half period <varname>L</varname>.  That
+is a function defined on the interval <userinput>[0,L]</userinput>
+extended to be even on <userinput>[-L,L]</userinput> and then
+extended to be periodic with period <userinput>2*L</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link>
+           and
+           <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
+         <listitem>
+          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
+         <para>Return a function that is a Fourier series with the
+coefficients given by the vectors <varname>a</varname> (sines) and
+<varname>b</varname> (cosines).  Note that <userinput>a@(1)</userinput> is
+the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
+the term <userinput>cos(x*(n-1)*pi/L)</userinput>, while
+<userinput>b@(n)</userinput> refers to the term
+<userinput>sin(x*n*pi/L)</userinput>.  Either <varname>a</varname>
+or <varname>b</varname> can be <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
+         <listitem>
+          <synopsis>InfiniteProduct (func,start,inc)</synopsis>
+          <para>Try to calculate an infinite product for a single parameter function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
+         <listitem>
+          <synopsis>InfiniteProduct2 (func,arg,start,inc)</synopsis>
+          <para>Try to calculate an infinite product for a double parameter function with func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
+         <listitem>
+          <synopsis>InfiniteSum (func,start,inc)</synopsis>
+          <para>Try to calculate an infinite sum for a single parameter function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
+         <listitem>
+          <synopsis>InfiniteSum2 (func,arg,start,inc)</synopsis>
+          <para>Try to calculate an infinite sum for a double parameter function with func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
+         <listitem>
+          <synopsis>IsContinuous (f,x0)</synopsis>
+          <para>Try and see if a real-valued function is continuous at x0 by calculating the limit 
there.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
+         <listitem>
+          <synopsis>IsDifferentiable (f,x0)</synopsis>
+          <para>Test for differentiability by approximating the left and right limits and comparing.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
+         <listitem>
+          <synopsis>LeftLimit (f,x0)</synopsis>
+          <para>Calculate the left limit of a real-valued function at x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Limit"/>Limit</term>
+         <listitem>
+          <synopsis>Limit (f,x0)</synopsis>
+          <para>Calculate the limit of a real-valued function at x0.  Tries to calculate both left and right 
limits.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
+         <listitem>
+          <synopsis>MidpointRule (f,a,b,n)</synopsis>
+          <para>Integration by midpoint rule.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
+         <listitem>
+          <synopsis>NumericalDerivative (f,x0)</synopsis>
+          <para>Aliases: <function>NDerivative</function></para>
+          <para>Attempt to calculate numerical derivative.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of vectors <userinput>[a,b]</userinput>
+where <varname>a</varname> are the cosine coefficients and
+<varname>b</varname> are the sine coefficients of
+the Fourier series of
+<function>f</function> with half-period <varname>L</varname> (that is defined
+on <userinput>[-L,L]</userinput> and extended periodically) with coefficients
+up to <varname>N</varname>th harmonic computed numerically.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the Fourier series of
+<function>f</function> with half-period <varname>L</varname> (that is defined
+on <userinput>[-L,L]</userinput> and extended periodically) with coefficients
+up to <varname>N</varname>th harmonic computed numerically.  This is the
+trigonometric real series composed of sines and cosines.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of coefficients of 
+the cosine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the even periodic extension and compute the Fourier series, which
+only has cosine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.
+Note that <userinput>a@(1)</userinput> is
+the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
+the term <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the cosine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the even periodic extension and compute the Fourier series, which
+only has cosine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of coefficients of 
+the sine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the odd periodic extension and compute the Fourier series, which
+only has sine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the sine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the odd periodic extension and compute the Fourier series, which
+only has sine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
+         <listitem>
+          <synopsis>NumericalIntegral (f,a,b)</synopsis>
+          <para>Integration by rule set in NumericalIntegralFunction of f from a to b using 
NumericalIntegralSteps steps.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
+         <listitem>
+          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
+          <para>Attempt to calculate numerical left derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
+         <listitem>
+          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerance,successive_for_success,N)</synopsis>
+          <para>Attempt to calculate the limit of f(step_fun(i)) as i goes from 1 to N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
+         <listitem>
+          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
+          <para>Attempt to calculate numerical right derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
+         <listitem>
+          <synopsis>OddPeriodicExtension (f,L)</synopsis>
+         <para>Return a function that is the odd periodic extension of
+<function>f</function> with half period <varname>L</varname>.  That
+is a function defined on the interval <userinput>[0,L]</userinput>
+extended to be odd on <userinput>[-L,L]</userinput> and then
+extended to be periodic with period <userinput>2*L</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>
+           and
+           <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Compute one-sided derivative using five point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Compute one-sided derivative using three-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
+         <listitem>
+          <synopsis>PeriodicExtension (f,a,b)</synopsis>
+         <para>Return a function that is the periodic extension of
+<function>f</function> defined on the interval <userinput>[a,b]</userinput>
+and has period <userinput>b-a</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link>
+           and
+           <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
+         <listitem>
+          <synopsis>RightLimit (f,x0)</synopsis>
+          <para>Calculate the right limit of a real-valued function at x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Compute two-sided derivative using five-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Compute two-sided derivative using three-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-functions">
+      <title>Funktionen</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Argument"/>Argument</term>
+         <listitem>
+          <synopsis>Argument (z)</synopsis>
+          <para>Aliases: <function>Arg</function> <function>arg</function></para>
+          <para>argument (angle) of complex number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
+         <listitem>
+          <synopsis>BesselJ0 (x)</synopsis>
+          <para>Bessel function of the first kind of order 0.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
+         <listitem>
+          <synopsis>BesselJ1 (x)</synopsis>
+          <para>Bessel function of the first kind of order 1.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
+         <listitem>
+          <synopsis>BesselJn (n,x)</synopsis>
+         <para>Bessel function of the first kind of order <varname>n</varname>.  Only implemented for real 
numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
+         <listitem>
+          <synopsis>BesselY0 (x)</synopsis>
+          <para>Bessel function of the second kind of order 0.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
+         <listitem>
+          <synopsis>BesselY1 (x)</synopsis>
+          <para>Bessel function of the second kind of order 1.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
+         <listitem>
+          <synopsis>BesselYn (n,x)</synopsis>
+         <para>Bessel function of the second kind of order <varname>n</varname>.  Only implemented for real 
numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
+         <listitem>
+          <synopsis>DirichletKernel (n,t)</synopsis>
+         <para>Dirichlet kernel of order <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
+         <listitem>
+          <synopsis>DiscreteDelta (v)</synopsis>
+          <para>Returns 1 if and only if all elements are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
+         <listitem>
+          <synopsis>ErrorFunction (x)</synopsis>
+          <para>Aliases: <function>erf</function></para>
+          <para>The error function, 2/sqrt(pi) * int_0^x e^(-t^2) dt.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Error_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ErrorFunction";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
+         <listitem>
+          <synopsis>FejerKernel (n,t)</synopsis>
+          <para>Fejer kernel of order <varname>n</varname> evaluated at
+               <varname>t</varname></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FejerKernel";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
+         <listitem>
+          <synopsis>GammaFunction (x)</synopsis>
+          <para>Aliases: <function>Gamma</function></para>
+          <para>The Gamma function.  Currently only implemented for real values.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/GammaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Gamma_function";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
+         <listitem>
+          <synopsis>KroneckerDelta (v)</synopsis>
+          <para>Returns 1 if and only if all elements are equal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertW"/>LambertW</term>
+         <listitem>
+          <synopsis>LambertW (x)</synopsis>
+         <para>
+                 The principal branch of Lambert W function computed for only
+                 real values greater than or equal to <userinput>-1/e</userinput>.
+                 That is, <function>LambertW</function> is the inverse of
+                 the expression <userinput>x*e^x</userinput>.  Even for
+                 real <varname>x</varname> this expression is not one to one and
+                 therefore has two branches over <userinput>[-1/e,0)</userinput>.
+                 See <link linkend="gel-function-LambertWm1"><function>LambertWm1</function></link> for the 
other real branch.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertWm1"/>LambertWm1</term>
+         <listitem>
+          <synopsis>LambertWm1 (x)</synopsis>
+         <para>
+                 The minus-one branch of Lambert W function computed for only
+                 real values greater than or equal to <userinput>-1/e</userinput>
+                 and less than 0.
+                 That is, <function>LambertWm1</function> is the second
+                 branch of the inverse of <userinput>x*e^x</userinput>.
+                 See <link linkend="gel-function-LambertW"><function>LambertW</function></link> for the 
principal branch.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
+         <listitem>
+          <synopsis>MinimizeFunction (func,x,incr)</synopsis>
+          <para>Find the first value where f(x)=0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
+         <listitem>
+          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
+          <para>Moebius mapping of the disk to itself mapping a to 0.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
+         <listitem>
+          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking z2,z3,z4 to 1,0, and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to infinity and z2,z3 to 1 and 0 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to 1 and z3,z4 to 0 and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to 0 and z2,z4 to 1 and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
+         <listitem>
+          <synopsis>PoissonKernel (r,sigma)</synopsis>
+          <para>Poisson kernel on D(0,1) (not normalized to 1, that is integral of this is 2pi).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
+         <listitem>
+          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
+          <para>Poisson kernel on D(0,R) (not normalized to 1).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
+         <listitem>
+          <synopsis>RiemannZeta (x)</synopsis>
+          <para>Aliases: <function>zeta</function></para>
+          <para>The Riemann zeta function.  Currently only implemented for real values.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RiemannZetaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Riemann_zeta_function";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
+         <listitem>
+          <synopsis>UnitStep (x)</synopsis>
+          <para>The unit step function is 0 for x&lt;0, 1 otherwise.  This is the integral of the Dirac 
Delta function.  Also called the Heaviside function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Unit_step";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cis"/>cis</term>
+         <listitem>
+          <synopsis>cis (x)</synopsis>
+          <para>
+           The <function>cis</function> function, that is the same as
+           <userinput>cos(x)+1i*sin(x)</userinput>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
+         <listitem>
+          <synopsis>deg2rad (x)</synopsis>
+          <para>Wandelt Grad in Radiant um.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
+         <listitem>
+          <synopsis>rad2deg (x)</synopsis>
+          <para>Wandelt Grad in Radiant um.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinc"/>sinc</term>
+         <listitem>
+          <synopsis>sinc (x)</synopsis>
+         <para>Calculates the unnormalized sinc function, that is
+                 <userinput>sin(x)/x</userinput>.
+                 If you want the normalized function call <userinput>sinc(pi*x)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sinc";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-equation-solving">
+      <title>Gleichungen lösen</title>
+      <variablelist>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
+         <listitem>
+          <synopsis>CubicFormula (p)</synopsis>
+          <para>
+           Compute roots of a cubic (degree 3) polynomial using the
+           cubic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>4*x^3 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,4]</userinput>.
+           Returns a column vector of the three solutions.  The first solution is always
+           the real one as a cubic always has one real solution.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CubicFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/CubicFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Cubic_equation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
+         <listitem>
+          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns <varname>y</varname> at <varname>x1</varname>.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKutta">RungeKutta</link>
+           for solving ODE.
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
+         <listitem>
+          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKuttaFull">RungeKuttaFull</link>
+           for solving ODE.
+           Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
+         <listitem>
+          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the bisection method.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
+         <listitem>
+          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the method of false position.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
+         <listitem>
+          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
+          <para>Find root of a function using the Muller's method.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
+         <listitem>
+          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the secant method.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
+         <listitem>
+          <synopsis>HalleysMethod (f,df,ddf,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Halley's method.  <varname>f</varname> is
+                 the function, <varname>df</varname> is the derivative of
+                 <varname>f</varname>, and <varname>ddf</varname> is the second derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link> and 
<link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Halley%27s_method";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethod"/>NewtonsMethod</term>
+         <listitem>
+          <synopsis>NewtonsMethod (f,df,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Newton's method.  <varname>f</varname> is
+                 the function and <varname>df</varname> is the derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link 
linkend="gel-function-NewtonsMethodPoly"><function>NewtonsMethodPoly</function></link> and <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
+         <listitem>
+          <synopsis>PolynomialRoots (p)</synopsis>
+          <para>
+           Compute roots of a polynomial (degrees 1 through 4)
+           using one of the formulas for such polynomials.
+           The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>4*x^3 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,4]</userinput>.
+           Returns a column vector of the solutions.
+         </para>
+         <para>
+           The function calls
+           <link linkend="gel-function-QuadraticFormula">QuadraticFormula</link>,
+           <link linkend="gel-function-CubicFormula">CubicFormula</link>, and
+           <link linkend="gel-function-QuarticFormula">QuarticFormula</link>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
+         <listitem>
+          <synopsis>QuadraticFormula (p)</synopsis>
+          <para>
+           Compute roots of a quadratic (degree 2) polynomial using the
+           quadratic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>3*x^2 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,3]</userinput>.
+           Returns a column vector of the two solutions.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticFormula";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/QuadraticFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quadratic_formula";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
+         <listitem>
+          <synopsis>QuarticFormula (p)</synopsis>
+          <para>
+           Compute roots of a quartic (degree 4) polynomial using the
+           quartic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>5*x^4 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,0,5]</userinput>.
+           Returns a column vector of the four solutions.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuarticFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/QuarticEquation.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quartic_equation";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
+         <listitem>
+          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments, returns <varname>y</varname> at <varname>x1</varname>.
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
+         <listitem>
+          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.  Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-statistics">
+      <title>Statistik</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Average"/>Average</term>
+         <listitem>
+          <synopsis>Average (m)</synopsis>
+          <para>Aliases: <function>average</function> <function>Mean</function> 
<function>mean</function></para>
+          <para>Calculate average (the arithmetic mean) of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
+         <listitem>
+          <synopsis>GaussDistribution (x,sigma)</synopsis>
+         <para>Integral of the GaussFunction from 0 to <varname>x</varname> (area under the normal 
curve).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
+         <listitem>
+          <synopsis>GaussFunction (x,sigma)</synopsis>
+          <para>The normalized Gauss distribution function (the normal curve).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Median"/>Median</term>
+         <listitem>
+          <synopsis>Median (m)</synopsis>
+          <para>Aliases: <function>median</function></para>
+          <para>Calculate median of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>PopulationStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>stdevp</function></para>
+          <para>Calculate the population standard deviation of a whole matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
+         <listitem>
+          <synopsis>RowAverage (m)</synopsis>
+          <para>Aliases: <function>RowMean</function></para>
+         <para>Calculate average of each row in a matrix.  That is, compute the
+         arithmetic mean.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
+         <listitem>
+          <synopsis>RowMedian (m)</synopsis>
+          <para>Calculate median of each row in a matrix and return a column
+         vector of the medians.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>rowstdevp</function></para>
+          <para>Calculate the population standard deviations of rows of a matrix and return a vertical 
vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
+         <listitem>
+          <synopsis>RowStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>rowstdev</function></para>
+          <para>Calculate the standard deviations of rows of a matrix and return a vertical vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+        <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
+         <listitem>
+          <synopsis>StandardDeviation (m)</synopsis>
+          <para>Aliases: <function>stdev</function></para>
+          <para>Calculate the standard deviation of a whole matrix.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-polynomials">
+      <title>Polynomials</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
+         <listitem>
+          <synopsis>AddPoly (p1,p2)</synopsis>
+          <para>Add two polynomials (vectors).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
+         <listitem>
+          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
+          <para>Divide two polynomials (as vectors) using long division.
+          Returns the quotient
+          of the two polynomials.  The optional argument <varname>r</varname>
+          is used to return the remainder.  The remainder will have lower
+          degree than <varname>q</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PolynomialLongDivision";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
+         <listitem>
+          <synopsis>IsPoly (p)</synopsis>
+          <para>Check if a vector is usable as a polynomial.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
+         <listitem>
+          <synopsis>MultiplyPoly (p1,p2)</synopsis>
+          <para>Multiply two polynomials (as vectors).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
+         <listitem>
+          <synopsis>NewtonsMethodPoly (poly,guess,epsilon,maxn)</synopsis>
+         <para>Find a root of a polynomial using Newton's method.  <varname>poly</varname> is
+                 the polynomial as a vector and <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
+         <listitem>
+          <synopsis>Poly2ndDerivative (p)</synopsis>
+          <para>Take second polynomial (as vector) derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
+         <listitem>
+          <synopsis>PolyDerivative (p)</synopsis>
+          <para>Take polynomial (as vector) derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
+         <listitem>
+          <synopsis>PolyToFunction (p)</synopsis>
+          <para>Make function out of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
+         <listitem>
+          <synopsis>PolyToString (p,var...)</synopsis>
+          <para>Make string out of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
+         <listitem>
+          <synopsis>SubtractPoly (p1,p2)</synopsis>
+          <para>Subtract two polynomials (as vectors).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
+         <listitem>
+          <synopsis>TrimPoly (p)</synopsis>
+          <para>Trim zeros from a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-set-theory">
+      <title>Mengenlehre</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Intersection"/>Intersection</term>
+         <listitem>
+          <synopsis>Intersection (X,Y)</synopsis>
+          <para>Returns a set theoretic intersection of X and Y (X and Y are vectors pretending to be 
sets).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIn"/>IsIn</term>
+         <listitem>
+          <synopsis>IsIn (x,X)</synopsis>
+         <para>Returns <constant>true</constant> if the element x is in the set X (where X is a vector 
pretending to be a set).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
+         <listitem>
+          <synopsis>IsSubset (X, Y)</synopsis>
+         <para>Returns <constant>true</constant> if X is a subset of Y (X and Y are vectors pretending to be 
sets).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
+         <listitem>
+          <synopsis>MakeSet (X)</synopsis>
+          <para>Returns a vector where every element of X appears only once.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
+         <listitem>
+          <synopsis>SetMinus (X,Y)</synopsis>
+          <para>Returns a set theoretic difference X-Y (X and Y are vectors pretending to be sets).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Union"/>Union</term>
+         <listitem>
+          <synopsis>Union (X,Y)</synopsis>
+          <para>Returns a set theoretic union of X and Y (X and Y are vectors pretending to be sets).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-commutative-algebra">
+      <title>Commutative Algebra</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
+         <listitem>
+          <synopsis>MacaulayBound (c,d)</synopsis>
+          <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>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+       
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
+         <listitem>
+          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
+          <para>The c_&lt;d&gt; operator from Green's proof of Macaulay's Theorem.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
+         <listitem>
+          <synopsis>MacaulayRep (c,d)</synopsis>
+          <para>Return the dth Macaulay representation of a positive integer c.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-miscellaneous">
+      <title>Verschiedenes</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
+         <listitem>
+          <synopsis>ASCIIToString (vec)</synopsis>
+          <para>Convert a vector of ASCII values to a string.
+                 See also
+                 <link linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
+= "abc"
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
+         <listitem>
+          <synopsis>AlphabetToString (vec,alphabet)</synopsis>
+         <para>Convert a vector of 0-based alphabet values (positions in the alphabet string) to a string.  
A <constant>null</constant> vector results in an empty string.
+                 See also
+                 <link linkend="gel-function-StringToAlphabet"><function>StringToAlphabet</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>AlphabetToString([1,2,3,0,0],"abcd")</userinput>
+= "bcdaa"
+<prompt>genius&gt;</prompt> <userinput>AlphabetToString(null,"abcd")</userinput>
+= ""
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
+         <listitem>
+          <synopsis>StringToASCII (str)</synopsis>
+         <para>Convert a string to a (row) vector of ASCII values.
+                 See also
+                 <link linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
+= [97, 98, 99]
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
+         <listitem>
+          <synopsis>StringToAlphabet (str,alphabet)</synopsis>
+         <para>Convert a string to a (row) vector of 0-based alphabet values
+                 (positions in the alphabet string), -1's for unknown letters.
+                 An empty string results in a <constant>null</constant>.
+                 See also
+                 <link linkend="gel-function-AlphabetToString"><function>AlphabetToString</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToAlphabet("cca","abcd")</userinput>
+= [2, 2, 0]
+<prompt>genius&gt;</prompt> <userinput>StringToAlphabet("ccag","abcd")</userinput>
+= [2, 2, 0, -1]
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-symbolic">
+      <title>Symbolische Operationen</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
+         <listitem>
+          <synopsis>SymbolicDerivative (f)</synopsis>
+          <para>Attempt to symbolically differentiate the function f, where f is a function of one 
variable.</para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(sin)</userinput>
+= (`(x)=cos(x))
+<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
+= (`(x)=(7*(2*x)))
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicDerivativeTry (f)</synopsis>
+         <para>Attempt to symbolically differentiate the function f, where f is a function of one variable, 
returns <constant>null</constant> if unsuccessful but is silent.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
+          <para>Attempt to symbolically differentiate a function n times.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
+         <para>Attempt to symbolically differentiate a function n times quietly and return 
<constant>null</constant> on failure
+         (See <link 
linkend="gel-function-SymbolicNthDerivative"><function>SymbolicNthDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
+         <listitem>
+          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
+         <para>Attempt to construct the Taylor approximation function around x0 to the nth degree.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-plotting">
+      <title>Darstellung</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
+         <listitem>
+          <synopsis>ExportPlot (file,type)</synopsis>
+          <synopsis>ExportPlot (file)</synopsis>
+          <para>
+                 Export the contents of the plotting window to a file.
+                 The type is a string that specifies the file type to
+                 use, "png", "eps", or "ps".  If the type is not
+                 specified, then it is taken to be the extension, in
+                 which case the extension must be ".png", ".eps", or ".ps".
+         </para>
+         <para>
+                 Note that files are overwritten without asking.
+         </para>
+         <para>
+                 On successful export, true is returned.  Otherwise
+                 error is printed and exception is raised.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>ExportPlot("file.png")</userinput>
+<prompt>genius&gt;</prompt> <userinput>ExportPlot("/directory/file","eps")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
+         <listitem>
+          <synopsis>LinePlot (func1,func2,func3,...)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2])</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2,y1,y2])</synopsis>
+          <para>
+           Plot a function (or several functions) with a line.
+           First (up to 10) arguments are functions, then optionally
+            you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>)
+           If the y limits are not specified, then the functions are computed and then the maxima and minima
+           are used.
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
+         <listitem>
+          <synopsis>LinePlotClear ()</synopsis>
+          <para>
+            Show the line plot window and clear out functions and any other
+            lines that were drawn.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
+         <listitem>
+          <synopsis>LinePlotCParametric (func,...)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <para>
+           Plot a parametric complex valued function with a line.  First comes
+the function that returns <computeroutput>x+iy</computeroutput>,
+then optionally the <varname>t</varname> limits as <userinput>t1,t2,tinc</userinput>, then
+optionally the limits as <userinput>x1,x2,y1,y2</userinput>.
+          </para>
+         <para>
+           If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+           If instead the string "fit" is given for the x and y limits, then the limits are the maximum 
extent of
+           the graph
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
+         <listitem>
+          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
+          <synopsis>LinePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,
+           <varname>x2</varname>,<varname>y2</varname> can be replaced by an
+           <varname>n</varname> by 2 matrix for a longer polyline.
+           Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+           that is an <varname>n</varname> by 1 matrix and each complex number is then
+           considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           arrows, the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           <userinput>"arrow"</userinput>, or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, type of arrow, or the legend.  (Arrow and window are from version 1.0.6 onwards.)
+         </para>
+         <para>
+           If the line is to be treated as a filled polygon, filled with the given color, you
+           can specify the argument <userinput>"filled"</userinput>.  Since version 1.0.22 onwards.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Arrow specification should be
+           <userinput>"origin"</userinput>,
+           <userinput>"end"</userinput>,
+           <userinput>"both"</userinput>, or
+           <userinput>"none"</userinput>.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.
+         </para>
+         <para>
+                 Specifying <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
+         <listitem>
+          <synopsis>LinePlotDrawPoints (x,y,...)</synopsis>
+          <synopsis>LinePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>.
+                 The input can be an <varname>n</varname> by 2 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>.
+                 Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+                 that is an <varname>n</varname> by 1 matrix and each complex number is then
+                 considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The 7th 
roots of unity")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.  Therefore, notice in the
+                 last example the transpose of the vector <userinput>0:6</userinput>
+                 to make it into a column vector.
+         </para>
+         <para>
+                 Available from version 1.0.18 onwards.  Specifying
+                 <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
+         <listitem>
+          <synopsis>LinePlotMouseLocation ()</synopsis>
+          <para>
+           Returns a row vector of a point on the line plot corresponding to
+           the current mouse location.  If the line plot is not visible,
+           then prints an error and returns <constant>null</constant>.
+           In this case you should run
+           <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> or
+           <link linkend="gel-function-LinePlotClear"><function>LinePlotClear</function></link>
+           to put the graphing window into the line plot mode.
+           See also
+           <link 
linkend="gel-function-LinePlotWaitForClick"><function>LinePlotWaitForClick</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
+         <listitem>
+          <synopsis>LinePlotParametric (xfunc,yfunc,...)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")</synopsis>
+          <para>
+           Plot a parametric function with a line.  First come the functions
+for <varname>x</varname> and <varname>y</varname> then optionally the <varname>t</varname> limits as 
<userinput>t1,t2,tinc</userinput>, then optionally the
+limits as <userinput>x1,x2,y1,y2</userinput>.
+          </para>
+         <para>
+           If x and y limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+           If instead the string "fit" is given for the x and y limits, then the limits are the maximum 
extent of
+           the graph
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
+         <listitem>
+          <synopsis>LinePlotWaitForClick ()</synopsis>
+          <para>
+           If in line plot mode, waits for a click on the line plot window
+           and returns the location of the click as a row vector.
+           If the window is closed
+           the function returns immediately with <constant>null</constant>.
+           If the window is not in line plot mode, it is put in it and shown
+           if not shown.
+           See also
+           <link 
linkend="gel-function-LinePlotMouseLocation"><function>LinePlotMouseLocation</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasFreeze"/>PlotCanvasFreeze</term>
+         <listitem>
+          <synopsis>PlotCanvasFreeze ()</synopsis>
+          <para>
+                 Freeze drawing of the canvas plot temporarily.  Useful if you need to draw a bunch of 
elements
+                 and want to delay drawing everything to avoid flicker in an animation.  After everything
+                 has been drawn you should call <link 
linkend="gel-function-PlotCanvasThaw"><function>PlotCanvasThaw</function></link>.
+          </para>
+          <para>
+                 The canvas is always thawed after end of any execution, so it will never remain frozen.  
The moment
+                 a new command line is shown for example the plot canvas is thawed automatically.  Also note 
that
+                 calls to freeze and thaw may be safely nested.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
+         <listitem>
+          <synopsis>PlotCanvasThaw ()</synopsis>
+          <para>
+                 Thaw the plot canvas frozen by
+                 <link linkend="gel-function-PlotCanvasFreeze"><function>PlotCanvasFreeze</function></link>
+                 and redraw the canvas immediately.  The canvas is also always thawed after end of execution
+                 of any program.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
+         <listitem>
+          <synopsis>PlotWindowPresent ()</synopsis>
+          <para>
+                 Show and raise the plot window, creating it if necessary.
+                 Normally the window is created when one of the plotting
+                 functions is called, but it is not always raised if it
+                 happens to be below other windows.  So this function is
+                 good to call in scripts where the plot window might have 
+                 been created before, and by now is hidden behind the
+                 console or other windows.
+          </para>
+         <para>Version 1.0.19 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
+         <listitem>
+          <synopsis>SlopefieldClearSolutions ()</synopsis>
+          <para>
+           Clears the solutions drawn by the
+           <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>
+           function.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
+         <listitem>
+          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
+          <para>
+           When a slope field plot is active, draw a solution with
+           the specified initial condition.  The standard
+           Runge-Kutta method is used with increment <varname>dx</varname>.
+           Solutions stay on the graph until a different plot is shown or until
+           you call 
+           <link 
linkend="gel-function-SlopefieldClearSolutions"><function>SlopefieldClearSolutions</function></link>.
+           You can also use the graphical interface to draw solutions and specify
+           initial conditions with the mouse.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
+         <listitem>
+          <synopsis>SlopefieldPlot (func)</synopsis>
+          <synopsis>SlopefieldPlot (func,x1,x2,y1,y2)</synopsis>
+          <para>
+           Plot a slope field.  The function <varname>func</varname>
+           should take two real numbers <varname>x</varname>
+           and <varname>y</varname>, or a single complex
+           number.
+            Optionally you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+       <varlistentry>
+        <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
+         <listitem>
+          <synopsis>SurfacePlot (func)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2)</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2])</synopsis>
+          <para>
+           Plot a surface function that takes either two arguments or a complex number.  First comes the 
function then optionally limits as <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>,
+           <varname>z1</varname>, <varname>z2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>).
+           Genius can only plot a single surface function at this time.
+          </para>
+          <para>
+           If the z limits are not specified then the maxima and minima of the function are used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
+         <listitem>
+          <synopsis>SurfacePlotClear ()</synopsis>
+          <para>
+            Show the surface plot window and clear out functions and any other
+            lines that were drawn.
+          </para>
+          <para>
+           Available in version 1.0.19 and onwards.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
+         <listitem>
+          <synopsis>SurfacePlotData (data)</synopsis>
+          <synopsis>SurfacePlotData (data,label)</synopsis>
+          <synopsis>SurfacePlotData (data,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,label,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotData (data,label,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <para>
+                 Plot a surface from data.  The data is an n by 3 matrix whose
+                 rows are the x, y and z coordinates.  The data can also be
+                 simply a vector whose length is a multiple of 3 and so
+                 contains the triples of x, y, z.  The data should contain at
+                 least 3 points.
+         </para>
+          <para>
+                 Optionally we can give the label and also optionally the
+                 limits.  If limits are not given, they are computed from
+                 the data, <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>
+                 is not used, if you want to use it, pass it in explicitly.
+                 If label is not given then empty label is used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,-1,1,-1,1,0,10)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,SurfacePlotWindow)</userinput>
+</screen>
+          </para>
+         <para>
+                 Here's an example of how to plot in polar coordinates,
+                 in particular how to plot the function
+                 <userinput>-r^2 * theta</userinput>:
+          <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>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
+         <listitem>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2],label)</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],label)</synopsis>
+          <para>
+                 Plot a surface from regular rectangular data.
+                 The data is given in a n by m matrix where the rows are the
+                 x coordinate and the columns are the y coordinate.
+                 The x coordinate is divided into equal n-1 subintervals
+                 and y coordinate is divided into equal m-1 subintervals.
+                 The limits <varname>x1</varname> and <varname>x2</varname>
+                 give the interval on the x-axis that we use, and 
+                 the limits <varname>y1</varname> and <varname>y2</varname>
+                 give the interval on the y-axis that we use.
+                 If the limits <varname>z1</varname> and <varname>z2</varname>
+                 are not given they are computed from the data (to be
+                 the extreme values from the data).
+         </para>
+          <para>
+                 Optionally we can give the label, if label is not given then
+                 empty label is used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = 
(0.1*i-1)^2-(0.1*j)^2;</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"half a saddle")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
+          <synopsis>SurfacePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname>,
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname> can be replaced by an
+           <varname>n</varname> by 3 matrix for a longer polyline.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>,
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawPoints (x,y,z,...)</synopsis>
+          <synopsis>SurfacePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>,<varname>z</varname>.
+                 The input can be an <varname>n</varname> by 3 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-SurfacePlotDrawLine">SurfacePlotDrawLine</link>.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
+         <listitem>
+          <synopsis>VectorfieldClearSolutions ()</synopsis>
+          <para>
+           Clears the solutions drawn by the
+           <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>
+           function.
+          </para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
+         <listitem>
+          <synopsis>VectorfieldDrawSolution (x, y, dt, tlen)</synopsis>
+          <para>
+           When a vector field plot is active, draw a solution with
+           the specified initial condition.  The standard
+           Runge-Kutta method is used with increment <varname>dt</varname>
+           for an interval of length <varname>tlen</varname>.
+           Solutions stay on the graph until a different plot is shown or until
+           you call 
+           <link 
linkend="gel-function-VectorfieldClearSolutions"><function>VectorfieldClearSolutions</function></link>.
+           You can also use the graphical interface to draw solutions and specify
+           initial conditions with the mouse.
+          </para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
+         <listitem>
+          <synopsis>VectorfieldPlot (funcx, funcy)</synopsis>
+          <synopsis>VectorfieldPlot (funcx, funcy, x1, x2, y1, y2)</synopsis>
+          <para>
+           Plot a two dimensional vector field.  The function
+           <varname>funcx</varname>
+           should be the dx/dt of the vectorfield and the function
+           <varname>funcy</varname> should be the dy/dt of the vectorfield.
+           The functions
+           should take two real numbers <varname>x</varname>
+           and <varname>y</varname>, or a single complex
+           number.  When the parameter
+           <link 
linkend="gel-function-VectorfieldNormalized"><function>VectorfieldNormalized</function></link>
+           is <constant>true</constant>, then the magnitude of the vectors is normalized.  That is, only
+           the direction and not the magnitude is shown.
+         </para>
+         <para>
+            Optionally you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, `(x,y)=y^2-x, -1, 1, 
-1, 1)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL examples ============================= -->
+  <chapter id="genius-gel-example-programs">
+    <title>Beispielprogramme in GEL</title>
+
+    <para>
+Here is a function that calculates factorials:
+<programlisting><![CDATA[function f(x) = if x <= 1 then 1 else (f(x-1)*x)
+]]></programlisting>
+    </para>
+    <para>
+With indentation it becomes:
+<programlisting><![CDATA[function f(x) = (
+  if x <= 1 then
+    1
+  else
+    (f(x-1)*x)
+)
+]]></programlisting>
+    </para>
+    <para>
+This is a direct port of the factorial function from the <application>bc</application> manpage. The syntax 
seems similar to <application>bc</application>, but different in that in GEL, the last expression is the one 
that is returned. Using the <literal>return</literal> function instead, it would be:
+<programlisting><![CDATA[function f(x) = (
+  if (x <= 1) then return (1);
+  return (f(x-1) * x)
+)
+]]></programlisting>
+    </para>
+
+    <para>
+By far the easiest way to define a factorial function would be using
+the product loop as follows.  This is not only the shortest and fastest,
+but also probably the most readable version.
+<programlisting>function f(x) = prod k=1 to x do k
+</programlisting>
+    </para>
+
+    <para>
+Here is a larger example, this basically redefines the internal
+<link linkend="gel-function-ref"><function>ref</function></link> function to calculate the row echelon form 
of a
+matrix.  The function <function>ref</function> is built in and much faster,
+but this example demonstrates some of the more complex features of GEL.
+<programlisting><![CDATA[# Calculate the row-echelon form of a matrix
+function MyOwnREF(m) = (
+  if not IsMatrix(m) or not IsValueOnly(m) then
+    (error("MyOwnREF: argument not a value only matrix");bailout);
+  s := min(rows(m), columns(m));
+  i := 1;
+  d := 1;
+  while d <= s and i <= columns(m) do (
+
+    # This just makes the anchor element non-zero if at
+    # all possible
+    if m@(d,i) == 0 then (
+      j := d+1;
+      while j <= rows(m) do (
+        if m@(j,i) == 0 then
+          (j=j+1;continue);
+        a := m@(j,);
+        m@(j,) := m@(d,);
+        m@(d,) := a;
+        j := j+1;
+        break
+      )
+    );
+    if m@(d,i) == 0 then
+      (i:=i+1;continue);
+    
+    # Here comes the actual zeroing of all but the anchor
+    # element rows
+    j := d+1;
+    while j <= rows(m)) do (
+      if m@(j,i) != 0 then (
+        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
+      );
+      j := j+1
+    );
+    m@(d,) := m@(d,) * (1/m@(d,i));
+    d := d+1;
+    i := i+1
+  );
+  m
+)
+]]></programlisting>
+    </para>
+
+  </chapter>
+
+  <!-- ============= Customization ============================ -->
+  <chapter id="genius-prefs"> 
+    <title>Einstellungen</title> 
+
+    <para>
+      To configure <application>Genius Mathematics Tool</application>, choose
+      <menuchoice><guimenu>Settings</guimenu>
+      <guimenuitem>Preferences</guimenuitem></menuchoice>.
+      There are several basic parameters provided by the calculator in addition
+      to the ones provided by the standard library.  These control how the
+      calculator behaves.
+    </para>
+
+    <note>
+      <title>Changing Settings with GEL</title>
+      <para>
+       Many of the settings in Genius are simply global variables, and can
+       be evaluated and assigned to in the same way as normal variables. See
+       <xref linkend="genius-gel-variables"/> about evaluating and assigning
+       to variables, and <xref linkend="genius-gel-function-parameters"/> for
+       a list of settings that can be modified in this way.
+      </para>
+      <para>
+As an example, you can set the maximum number of digits in a result to 12 by typing:
+<programlisting>MaxDigits = 12
+</programlisting>
+      </para>
+    </note>
+
+    <sect1 id="genius-prefs-output"> 
+      <title>Ausgabe</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum digits to output</guilabel>
+      </term> 
+         <listitem>
+                 <para>The maximum digits in a result (<link 
linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Results as floats</guilabel>
+      </term> 
+         <listitem>
+                 <para>If the results should be always printed as floats (<link 
linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Floats in scientific notation</guilabel>
+      </term> 
+         <listitem>
+                 <para>If floats should be in scientific notation (<link 
linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Always print full expressions</guilabel>
+      </term> 
+         <listitem>
+                 <para>Should we print out full expressions for non-numeric return values (longer than a 
line) (<link linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Use mixed fractions</guilabel>
+      </term> 
+         <listitem>
+                 <para>If fractions should be printed as mixed fractions such as "1 1/3" rather than "4/3". 
(<link linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Display 0.0 when floating point number is less than 10^-x (0=never chop)</guilabel>
+      </term> 
+         <listitem>
+         <para>How to chop output.  But only when other numbers nearby are large.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+            <guilabel>Only chop numbers when another number is greater than 10^-x</guilabel>
+      </term> 
+         <listitem>
+                 <para>When to chop output.  This is set by the parameter <link 
linkend="gel-function-OutputChopWhenExponent"><function>OutputChopWhenExponent</function></link>.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Remember output settings across sessions</guilabel>
+      </term> 
+         <listitem>
+        <para>Should the output settings in the <guilabel>Number/Expression output options</guilabel> frame
+             be remembered for next session.  Does not apply to the <guilabel>Error/Info output 
options</guilabel> frame.</para>
+             <para>
+                If unchecked,
+          either the default or any previously saved settings are used each time Genius starts
+          up.  Note that
+          settings are saved at the end of the session, so if you wish to change the defaults
+          check this box, restart <application>Genius Mathematics Tool</application> and then uncheck it 
again.
+             </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Display errors in a dialog</guilabel>
+      </term> 
+         <listitem>
+        <para>If set the errors will be displayed in a separate dialog, if
+       unset the errors will be printed on the console.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Display information messages in a dialog</guilabel>
+      </term> 
+         <listitem>
+       <para>If set the information messages will be displayed in a separate
+       dialog, if unset the information messages will be printed on the
+       console.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum errors to display</guilabel>
+      </term> 
+         <listitem>
+        <para>
+         The maximum number of errors to return on one evaluation
+         (<link linkend="gel-function-MaxErrors"><function>MaxErrors</function></link>).  If you set this to 
0 then
+         all errors are always returned.  Usually if some loop causes
+         many errors, then it is unlikely that you will be able to make
+         sense out of more than a few of these, so seeing a long list
+         of errors is usually not helpful.
+         </para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+
+      <para>
+       In addition to these preferences, there are some preferences that can
+       only be changed by setting them in the workspace console.  For others
+       that may affect the output see <xref linkend="genius-gel-function-parameters"/>.
+      </para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <function>IntegerOutputBase</function>
+      </term> 
+         <listitem>
+        <para>The base that will be used to output integers</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <function>OutputStyle</function>
+      </term> 
+         <listitem>
+       <para>A string, can be <literal>"normal"</literal>,
+<literal>"latex"</literal>, <literal>"mathml"</literal> or
+<literal>"troff"</literal> and it will affect how matrices (and perhaps other
+stuff) is printed, useful for pasting into documents.  Normal style is the
+default human readable printing style of <application>Genius Mathematics Tool</application>.  The other 
styles are for
+typesetting in LaTeX, MathML (XML), or in Troff.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+   </sect1> 
+
+    <sect1 id="genius-prefs-precision"> 
+      <title>Genauigkeit</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Gleitkommagenauigkeit</guilabel>
+      </term> 
+         <listitem>
+        <para>
+         The floating point precision in bits
+         (<link linkend="gel-function-FloatPrecision"><function>FloatPrecision</function></link>).
+         Note that changing this only affects newly computed quantities.
+         Old values stored in variables are obviously still in the old
+         precision and if you want to have them more precise you will have
+         to recompute them.  Exceptions to this are the system constants
+         such as <link linkend="gel-function-pi"><function>pi</function></link> or
+         <link linkend="gel-function-e"><function>e</function></link>.
+         </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Genauigkeitseinstellungen für folgende Sitzungen merken</guilabel>
+      </term> 
+         <listitem>
+        <para>
+          Should the precision setting be remembered for the next session.  If unchecked,
+          either the default or any previously saved setting is used each time Genius starts
+          up.  Note that
+          settings are saved at the end of the session, so if you wish to change the default
+          check this box, restart genius and then uncheck it again.
+         </para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-terminal"> 
+      <title>Terminal</title> 
+
+      <para>»Terminal« bezieht sich auf die Konsole im Arbeitsplatz.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Zeilen an Scrollback</guilabel>
+      </term> 
+         <listitem>
+        <para>Durch Zurückrollen sichtbare Zeilen im Terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Schrift</guilabel>
+      </term> 
+         <listitem>
+        <para>Die im Terminal zu verwendende Schrift.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Schwarz auf Weiß</guilabel>
+      </term> 
+         <listitem>
+        <para>If to use black on white on the terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Blinkender Cursor</guilabel>
+      </term> 
+         <listitem>
+        <para>If the cursor in the terminal should blink when the terminal is in focus.  This can sometimes 
be annoying and it generates idle traffic if you are using Genius remotely.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-memory"> 
+      <title>Speicher</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximale Anzahl zuzuweisender Knoten</guilabel>
+      </term> 
+         <listitem>
+        <para>
+          Internally all data is put onto small nodes in memory.  This gives
+          a limit on the maximum number of nodes to allocate for
+          computations.  This limit avoids the problem of running out of memory
+          if you do something by mistake that uses too much memory, such
+          as a recursion without end.  This could slow your computer and make
+          it hard to even interrupt the program.
+         </para>
+        <para>
+          Once the limit is reached, <application>Genius Mathematics Tool</application> asks if you wish to 
interrupt
+          the computation or if you wish to continue.  If you continue, no
+          limit is applied and it will be possible to run your computer
+          out of memory.  The limit will be applied again next time you
+          execute a program or an expression on the Console regardless of how
+          you answered the question.
+        </para>
+        <para>
+          Setting the limit to zero means there is no limit to the amount of
+          memory that genius uses.
+        </para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist> 
+    </sect1> 
+
+  </chapter>
+
+<!-- ============= About ====================================== -->
+  <chapter id="genius-about"> 
+    <title>Info zu <application>Genius Mathematikwerkzeug</application></title> 
+
+    <para> <application>Genius Mathematics Tool</application> was written by Jiří (George) Lebl
+(<email>jirka 5z com</email>).  The history of <application>Genius Mathematics Tool</application> goes back 
to late
+1997.  It was the first calculator program for GNOME, but it then grew
+beyond being just a desktop calculator.  To find more information about
+<application>Genius Mathematics Tool</application>, please visit the <ulink 
url="http://www.jirka.org/genius.html"; type="http">Genius Web page</ulink>.
+    </para>
+    <para>
+      To report a bug or make a suggestion regarding this application or
+      this manual, send email to me (the author) or post to the mailing
+      list (see the web page).
+    </para>
+
+    <para> This program is distributed under the terms of the GNU
+      General Public license as published by the Free Software
+      Foundation; either version 3 of the License, or (at your option)
+      any later version. A copy of this license can be found at this
+      <ulink url="http://www.gnu.org/copyleft/gpl.html"; type="http">link</ulink>, or in the file
+      COPYING included with the source code of this program. </para>
+
+    <para>Jiří Lebl was during various parts of the development
+      partially supported for the work by NSF grants DMS 0900885, 
+      DMS 1362337,
+      the University of Illinois at Urbana-Champaign,
+      the University of California at San Diego, 
+      the University of Wisconsin-Madison, and
+      Oklahoma State University.  The software has
+      been used for both teaching and research.</para>
+
+  </chapter>
+
+</book>
diff --git a/help/de/html/index.html b/help/de/html/index.html
index 4776e9a..f76acf6 100644
--- a/help/de/html/index.html
+++ b/help/de/html/index.html
@@ -1,4 +1,4 @@
 <html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"><title>Genius-Handbuch</title><meta name="generator" content="DocBook XSL Stylesheets 
V1.79.1"><meta name="description" content="Handbuch für das Genius Mathematikwerkzeug."><link rel="home" 
href="index.html" title="Genius-Handbuch"><link rel="next" href="ch01.html" title="Kapitel 1. 
Einführung"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div 
class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" 
align="center">Genius-Handbuch</th></tr><tr><td width="20%" align="left"> </td><th width="60%" 
align="center"> </th><td width="20%" align="right"> <a accesskey="n" 
href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a>Genius-Handbuch</h1></div><div><div 
class="authorgroup"><div class="author"><h3 class="author"><span class="fi
 rstname">Jiří</span> <span class="surname">Lebl</span></h3><div class="affiliation"><span 
class="orgname">Oklahoma State University<br></span><div class="address"><p> <code class="email">&lt;<a 
class="email" href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code> </p></div></div></div><div 
class="author"><h3 class="author"><span class="firstname">Kai</span> <span 
class="surname">Willadsen</span></h3><div class="affiliation"><span class="orgname">University of Queensland, 
Australien<br></span><div class="address"><p> <code class="email">&lt;<a class="email" href="mailto:kaiw itee 
uq edu au">kaiw itee uq edu au</a>&gt;</code> </p></div></div></div></div></div><div><p 
class="releaseinfo">This manual describes version 1.0.22 of Genius.
-    </p></div><div><p class="copyright">Copyright © 1997-2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><p class="copyright">Copyright © 2009, 2011 
Mario Blättermann (mariobl freenet de)</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free Documentation 
License (GFDL), Version 1.1 oder jeder späteren, von der Free Software Foundation veröffentlichten Version 
ohne unveränderbare Abschnitte sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt 
und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem <a class="ulink" href="ghelp:fdl" 
target="_top">Link</a> oder in der mit diesem Handbuch gelieferten Datei COPYING-DOCS.</p><p>Dieses Handbuch 
ist Teil einer Sammlung von GNOME-Handbüchern, die unter der GFDL veröffentlicht werden. Wenn Sie dieses 
Handbuch getrennt von der Sammlung weiterverbreite
 n möchten, können Sie das tun, indem Sie eine Kopie der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 
6 der Lizenz beschrieben ist.</p><p>Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte 
und Dienstleistungen von anderen zu unterscheiden, sind eingetragene Warenzeichen. An den Stellen, an denen 
diese Namen in einer GNOME-Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem großen 
Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt auf diese Warenzeichen hingewiesen 
wird.</p><p>DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN BEDINGUNGEN DER GNU FREE 
DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM WEITERGEHENDEN VERSTÄNDNIS, DASS: </p><div 
class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>DIESES DOKUMENT WIRD »WIE 
VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. 
DIES BEZIEHT SICH AUCH OHNE EI
 NSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE FASSUNGEN DIESES DOKUMENTS FREI VON 
HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS 
VOLLE RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE FASSUNGEN DES DOKUMENTS 
LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, 
TRAGEN SIE (NICHT DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR NOTWENDIGE 
DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL 
DIESER LIZENZ. DIE VERWENDUNG EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT 
GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND</p></li><li class="listitem"><p>UNTER KEINEN 
UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH 
FAHRLÄSSIGKEIT), VERTRAG ODER ANDERWEITIG KAN
 N DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER 
VERÄNDERTEN FASSUNG DES DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN FÜR 
DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER ART, EINSCHLIEßLICH UND OHNE 
EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST VON KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER 
COMPUTERFEHLFUNKTIONEN ODER ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER 
VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, AUCH WENN DIE OBEN GENANNTEN 
PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN INFORMIERT WAREN.</p></li></ol></div></div></div><div><div 
class="legalnotice"><a name="idm46099435277808"></a><p 
class="legalnotice-title"><b>Rückmeldungen</b></p><p>Um einen Fehler zu melden oder einen Vorschlag zur 
Anwendung <span class="application">Genius Mathematikwerkzeug</span> oder zu diesem Handbuch zu machen, folge 
S
 ie den Anweisungen auf der <a class="ulink" href="http://www.jirka.org/genius.html"; 
target="_top">Genius-Webseite</a> oder schreiben Sie eine E-Mail an <code class="email">&lt;<a class="email" 
href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code>.</p></div></div><div><div class="revhistory"><table 
style="border-style:solid; width:100%;" summary="Versionsgeschichte"><tr><th align="left" valign="top" 
colspan="2"><b>Versionsgeschichte</b></th></tr><tr><td align="left">Version 0.2</td><td 
align="left">September 2016</td></tr><tr><td align="left" colspan="2"> 
+    </p></div><div><p class="copyright">Copyright © 1997-2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><p class="copyright">Copyright © 2009, 2011 
Mario Blättermann (mariobl freenet de)</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free Documentation 
License (GFDL), Version 1.1 oder jeder späteren, von der Free Software Foundation veröffentlichten Version 
ohne unveränderbare Abschnitte sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt 
und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem <a class="ulink" href="ghelp:fdl" 
target="_top">Link</a> oder in der mit diesem Handbuch gelieferten Datei COPYING-DOCS.</p><p>Dieses Handbuch 
ist Teil einer Sammlung von GNOME-Handbüchern, die unter der GFDL veröffentlicht werden. Wenn Sie dieses 
Handbuch getrennt von der Sammlung weiterverbreite
 n möchten, können Sie das tun, indem Sie eine Kopie der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 
6 der Lizenz beschrieben ist.</p><p>Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte 
und Dienstleistungen von anderen zu unterscheiden, sind eingetragene Warenzeichen. An den Stellen, an denen 
diese Namen in einer GNOME-Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem großen 
Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt auf diese Warenzeichen hingewiesen 
wird.</p><p>DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN BEDINGUNGEN DER GNU FREE 
DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM WEITERGEHENDEN VERSTÄNDNIS, DASS: </p><div 
class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>DIESES DOKUMENT WIRD »WIE 
VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. 
DIES BEZIEHT SICH AUCH OHNE EI
 NSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE FASSUNGEN DIESES DOKUMENTS FREI VON 
HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS 
VOLLE RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE FASSUNGEN DES DOKUMENTS 
LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, 
TRAGEN SIE (NICHT DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR NOTWENDIGE 
DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL 
DIESER LIZENZ. DIE VERWENDUNG EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT 
GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND</p></li><li class="listitem"><p>UNTER KEINEN 
UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH 
FAHRLÄSSIGKEIT), VERTRAG ODER ANDERWEITIG KAN
 N DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER 
VERÄNDERTEN FASSUNG DES DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN FÜR 
DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER ART, EINSCHLIEßLICH UND OHNE 
EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST VON KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER 
COMPUTERFEHLFUNKTIONEN ODER ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER 
VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, AUCH WENN DIE OBEN GENANNTEN 
PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN INFORMIERT WAREN.</p></li></ol></div></div></div><div><div 
class="legalnotice"><a name="idm51"></a><p class="legalnotice-title"><b>Rückmeldungen</b></p><p>Um einen 
Fehler zu melden oder einen Vorschlag zur Anwendung <span class="application">Genius 
Mathematikwerkzeug</span> oder zu diesem Handbuch zu machen, folge Sie den Anwei
 sungen auf der <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">Genius-Webseite</a> 
oder schreiben Sie eine E-Mail an <code class="email">&lt;<a class="email" href="mailto:jirka 5z com">jirka 
5z com</a>&gt;</code>.</p></div></div><div><div class="revhistory"><table style="border-style:solid; 
width:100%;" summary="Versionsgeschichte"><tr><th align="left" valign="top" 
colspan="2"><b>Versionsgeschichte</b></th></tr><tr><td align="left">Version 0.2</td><td 
align="left">September 2016</td></tr><tr><td align="left" colspan="2"> 
                        <p class="author">Jiri (George) Lebl <code class="email">&lt;<a class="email" 
href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code></p>
                </td></tr></table></div></div><div><div class="abstract"><p 
class="title"><b>Zusammenfassung</b></p><p>Handbuch für das Genius 
Mathematikwerkzeug.</p></div></div></div><hr></div><div class="toc"><p><b>Inhaltsverzeichnis</b></p><dl 
class="toc"><dt><span class="chapter"><a href="ch01.html">1. Einführung</a></span></dt><dt><span 
class="chapter"><a href="ch02.html">2. Erste Schritte</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch02.html#genius-to-start"><span class="application">Genius Mathematikwerkzeug 
starten</span></a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Beim Start von <span 
class="application">Genius</span></a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. 
Grundlagen der Benutzung</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch03.html#genius-usage-workarea">Benutzung des Arbeitsplatzes</a></span></dt><dt><span class="sect1"><a 
href="ch03s02.html">Erstellen eines neuen Programms</a></span></dt><dt><span 
 class="sect1"><a href="ch03s03.html">Öffnen und Ausführen eines Programms</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="ch04.html">4. Darstellung</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch04.html#genius-line-plots">Kurvendarstellungen</a></span></dt><dt><span class="sect1"><a 
href="ch04s02.html">Parametrische Darstellungen</a></span></dt><dt><span class="sect1"><a 
href="ch04s03.html">Richtungsfeld-Darstellungen</a></span></dt><dt><span class="sect1"><a 
href="ch04s04.html">Vektorfeld-Darstellungen</a></span></dt><dt><span class="sect1"><a 
href="ch04s05.html">2D-Darstellungen</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="ch05.html">5. GEL-Grundlagen</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch05.html#genius-gel-values">Werte</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-numbers">Zahlen</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-booleans">Wahrheitsw
 erte</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-strings">Strings</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-null">Null</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="ch05s02.html">Verwendung von Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05s02.html#genius-gel-variables-setting">Setzen von Variablen</a></span></dt><dt><span 
class="sect2"><a href="ch05s02.html#genius-gel-variables-built-in">Eingebaute 
Variablen</a></span></dt><dt><span class="sect2"><a href="ch05s02.html#genius-gel-previous-result">Vorherige 
Ergebnisvariable</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s03.html">Verwendung von 
Funktionen</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-defining">Definieren von Funktionen</a></span></dt><dt><span 
class="sect2"><a href="ch05s03.html#genius-gel-functions-variable-argument-lists">Variable Argument Lists</a>
 </span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-passing-functions">Übergabe 
von Funktionen an Funktionen</a></span></dt><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-operations">Operationen mit 
Funktionen</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="ch05s04.html">Trenner</a></span></dt><dt><span class="sect1"><a 
href="ch05s05.html">Kommentare</a></span></dt><dt><span class="sect1"><a href="ch05s06.html">Modulare 
Auswertung</a></span></dt><dt><span class="sect1"><a href="ch05s07.html">Liste der 
GEL-Operatoren</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch06.html">6. Programmierung mit 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch06.html#genius-gel-conditionals">Bedingungen</a></span></dt><dt><span class="sect1"><a 
href="ch06s02.html">Schleifen</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loops-while">While-Schleifen</a></span></dt><dt><span cla
 ss="sect2"><a href="ch06s02.html#genius-gel-loops-for">For-Schleifen</a></span></dt><dt><span 
class="sect2"><a href="ch06s02.html#genius-gel-loops-foreach">Foreach-Schleifen</a></span></dt><dt><span 
class="sect2"><a href="ch06s02.html#genius-gel-loops-break-continue">Break and 
Continue</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch06s03.html">Summen und 
Produkte</a></span></dt><dt><span class="sect1"><a 
href="ch06s04.html">Vergleichsoperatoren</a></span></dt><dt><span class="sect1"><a 
href="ch06s05.html">Globale Variablen und Variablenbereiche</a></span></dt><dt><span class="sect1"><a 
href="ch06s06.html">Parametervariablen</a></span></dt><dt><span class="sect1"><a 
href="ch06s07.html">Rückgabewerte</a></span></dt><dt><span class="sect1"><a 
href="ch06s08.html">Referenzen</a></span></dt><dt><span class="sect1"><a href="ch06s09.html">Lvalues (linke 
Werte)</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch07.html">7. Fortgeschrittene 
Programmierung mit 
 GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch07.html#genius-gel-error-handling">Fehlerbehandlung</a></span></dt><dt><span class="sect1"><a 
href="ch07s02.html">Übergeordnete Syntax</a></span></dt><dt><span class="sect1"><a 
href="ch07s03.html">Funktionen als Rückgabe</a></span></dt><dt><span class="sect1"><a 
href="ch07s04.html">Echte lokale Variablen</a></span></dt><dt><span class="sect1"><a href="ch07s05.html">GEL 
Startprozedur</a></span></dt><dt><span class="sect1"><a href="ch07s06.html">Laden von 
Programmen</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch08.html">8. Matrizen in 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch08.html#genius-gel-matrix-support">Matrizen 
eingeben</a></span></dt><dt><span class="sect1"><a href="ch08s02.html">Operatoren für konjugierte 
Transposition und Transposition</a></span></dt><dt><span class="sect1"><a href="ch08s03.html">Lineare 
Algebra</a></span></dt></dl></dd><dt><span class="chapter"><a h
 ref="ch09.html">9. Polynome in GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch09.html#genius-gel-polynomials-using">Verwendung von Polynomen</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="ch10.html">10. Mengenlehre in GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch10.html#genius-gel-sets-using">Mengen verwenden</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="ch11.html">11. Liste der GEL-Funktionen</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch11.html#genius-gel-function-list-commands">Befehle</a></span></dt><dt><span class="sect1"><a 
href="ch11s02.html">Grundlegendes</a></span></dt><dt><span class="sect1"><a 
href="ch11s03.html">Parameter</a></span></dt><dt><span class="sect1"><a 
href="ch11s04.html">Konstanten</a></span></dt><dt><span class="sect1"><a 
href="ch11s05.html">Numerik</a></span></dt><dt><span class="sect1"><a 
href="ch11s06.html">Trigonometrie</a></span></dt><dt><span class="sect1"><a href="ch11s07.h
 tml">Zahlentheorie</a></span></dt><dt><span class="sect1"><a 
href="ch11s08.html">Matrixoperationen</a></span></dt><dt><span class="sect1"><a href="ch11s09.html">Lineare 
Algebra</a></span></dt><dt><span class="sect1"><a href="ch11s10.html">Kombinatorik</a></span></dt><dt><span 
class="sect1"><a href="ch11s11.html">Analysis</a></span></dt><dt><span class="sect1"><a 
href="ch11s12.html">Funktionen</a></span></dt><dt><span class="sect1"><a href="ch11s13.html">Gleichungen 
lösen</a></span></dt><dt><span class="sect1"><a href="ch11s14.html">Statistik</a></span></dt><dt><span 
class="sect1"><a href="ch11s15.html">Polynomials</a></span></dt><dt><span class="sect1"><a 
href="ch11s16.html">Mengenlehre</a></span></dt><dt><span class="sect1"><a href="ch11s17.html">Commutative 
Algebra</a></span></dt><dt><span class="sect1"><a href="ch11s18.html">Verschiedenes</a></span></dt><dt><span 
class="sect1"><a href="ch11s19.html">Symbolische Operationen</a></span></dt><dt><span class="sect1"><a href="
 ch11s20.html">Darstellung</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch12.html">12. 
Beispielprogramme in GEL</a></span></dt><dt><span class="chapter"><a href="ch13.html">13. 
Einstellungen</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch13.html#genius-prefs-output">Ausgabe</a></span></dt><dt><span class="sect1"><a 
href="ch13s02.html">Genauigkeit</a></span></dt><dt><span class="sect1"><a 
href="ch13s03.html">Terminal</a></span></dt><dt><span class="sect1"><a 
href="ch13s04.html">Speicher</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch14.html">14. Info 
zu <span class="application">Genius Mathematikwerkzeug</span></a></span></dt></dl></div><div 
class="list-of-figures"><p><b>Abbildungsverzeichnis</b></p><dl><dt>2.1. <a 
href="ch02s02.html#mainwindow-fig"><span class="application">Genius 
Mathematikwerkzeug</span>-Fenster</a></dt><dt>4.1. <a href="ch04.html#lineplot-fig">Fenster »Darstellung 
erstellen«</a></dt><dt>4.2. <a href="ch04.html#lin
 eplot2-fig">Fenster »Darstellen«</a></dt><dt>4.3. <a href="ch04s02.html#paramplot-fig">Reiter »Parametrische 
Darstellung«</a></dt><dt>4.4. <a href="ch04s02.html#paramplot2-fig">Parametrische 
Darstellung</a></dt><dt>4.5. <a 
href="ch04s05.html#surfaceplot-fig">2D-Darstellung</a></dt></dl></div></div><div class="navfooter"><hr><table 
width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" 
align="center"> </td><td width="40%" align="right"> <a accesskey="n" 
href="ch01.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" 
align="center"> </td><td width="40%" align="right" valign="top"> Kapitel 1. 
Einführung</td></tr></table></div></body></html>
diff --git a/help/el/genius.xml b/help/el/genius.xml
new file mode 100644
index 0000000..aea76d9
--- /dev/null
+++ b/help/el/genius.xml
@@ -0,0 +1,7950 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY app "<application>Genius Mathematics Tool</application>">
+<!ENTITY appname "Genius">
+<!ENTITY appversion "1.0.22">
+<!ENTITY date "September 2016">
+<!ENTITY legal SYSTEM "legal.xml">
+<!ENTITY manrevision "0.2">
+<!ENTITY lt "&#60;">
+<!ENTITY gt "&#62;">
+<!ENTITY le "&#8804;">
+<!ENTITY ge "&#8805;">
+<!ENTITY lsquo "&#8216;">
+<!ENTITY rsquo "&#8217;">
+<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
+<!-- 
+      (Do not remove this comment block.)
+  Maintained by the GNOME Documentation Project
+  http://developer.gnome.org/projects/gdp
+  Template version: 2.0 beta
+  Template last modified Apr 11, 2002
+-->
+<!-- =============Document Header ============================= -->
+<book id="index" lang="el">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <bookinfo>
+         <abstract role="description"><para>Εγχειρίδιο για το εργαλείο μαθηματικών.</para></abstract>
+    <title>Εγχειρίδιο Genius</title>       
+
+    <copyright>
+      <year>1997-2016</year>
+      <holder>Jiří (George) Lebl</holder>
+    </copyright>
+    <copyright>
+      <year>2004</year>
+      <holder>Kai Willadsen</holder>
+    </copyright><copyright><year>2013</year><holder>Δημήτρης Σπίγγος (dmtrs32 gmail 
com)</holder></copyright><copyright><year>2014</year><holder>Μαρία Μαυρίδου (mavridou gmail 
com)</holder></copyright>
+<!-- translators: uncomment this:
+  <copyright>
+   <year>2002</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+-->
+
+    <publisher> 
+      <publishername/> 
+    </publisher> 
+
+     <legalnotice id="legalnotice">
+       <para>Χορηγείται άδεια αντιγραφής, διανομής και/ή τροποποίησης του παρόντος εγγράφου υπό τους όρους 
της έκδοσης 1.1 της Ελεύθερης Άδειας Τεκμηρίωσης GNU (GFDL), ή οποιασδήποτε μεταγενέστερης έκδοσής αυτής από 
το Ίδρυμα Ελεύθερου Λογισμικού (FSF), χωρίς αμετάβλητες ενότητες, κείμενα εμπροσθοφύλλου και κείμενα 
οπισθοφύλλου. Αντίγραφο της άδειας GFDL είναι διαθέσιμο στον ακόλουθο <ulink type="help" 
url="ghelp:fdl">σύνδεσμο</ulink>, ή στο αρχείο COPYING-DOCS που διανέμεται μαζί με το παρόν εγχειρίδιο.</para>
+         <para>Αυτό το εγχειρίδιο αποτελεί μέρος της συλλογής εγχειριδίων του GNOME που διανέμονται υπό τους 
όρους της GFDL. Αν επιθυμείτε να διανείμετε το παρόν εγχειρίδιο ξεχωριστά από τη συλλογή, οφείλετε να 
προσθέσετε στο εγχειρίδιο αντίγραφο της άδειας χρήσης, όπως προβλέπεται στην ενότητα 6 της άδειας.</para>
+
+       <para>Πολλές από τις ονομασίες που χρησιμοποιούνται από εταιρείες για την διαφοροποίηση των προϊόντων 
και υπηρεσιών τους έχουν καταχωρηθεί ως εμπορικά σήματα. Σε όποιο σημείο της τεκμηρίωσης GNOME τυχόν 
εμφανίζονται αυτές οι ονομασίες, και εφόσον τα μέλη του Έργου τεκμηρίωσης GNOME έχουν λάβει γνώση αυτών των 
εμπορικών σημάτων, οι ονομασίες ή τα αρχικά αυτών θα γράφονται με κεφαλαίους χαρακτήρες.</para>
+
+       <para>ΤΟ ΠΑΡΟΝ ΕΓΓΡΑΦΟ ΚΑΙ ΟΙ ΤΡΟΠΟΙΗΜΕΝΕΣ ΕΚΔΟΣΕΙΣ ΑΥΤΟΥ ΠΑΡΕΧΟΝΤΑΙ ΥΠΟ ΤΟΥΣ ΟΡΟΥΣ ΤΗΣ ΕΛΕΥΘΕΡΗΣ 
ΑΔΕΙΑΣ ΤΕΚΜΗΡΙΩΣΗΣ GNU (GFDL) ΚΑΙ ΜΕ ΤΗΝ ΠΕΡΑΙΤΕΡΩ ΔΙΕΥΚΡΙΝΙΣΗ ΟΤΙ: <orderedlist>
+               <listitem>
+                 <para>ΤΟ ΠΑΡΟΝ ΕΓΓΡΑΦΟ ΠΑΡΕΧΕΤΑΙ "ΩΣ ΕΧΕΙ", ΧΩΡΙΣ ΟΠΟΙΑΔΗΠΟΤΕ ΑΛΛΗ ΕΓΓΥΗΣΗ, ΕΙΤΕ ΡΗΤΗ ΕΙΤΕ 
ΣΙΩΠΗΡΗ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ, ΧΩΡΙΣ ΠΕΡΙΟΡΙΣΜΟ, ΤΗΣ ΕΓΓΥΗΣΗΣ ΟΤΙ ΤΟ ΕΓΓΡΑΦΟ, Ή Η ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚΔΟΣΗ ΑΥΤΟΥ, 
ΕΙΝΑΙ ΕΜΠΟΡΕΥΣΙΜΟ, ΚΑΤΑΛΛΗΛΟ ΓΙΑ ΕΙΔΙΚΟ ΣΚΟΠΟ ΚΑΙ ΔΕΝ ΠΡΟΣΒΑΛΛΕΙ ΔΙΚΑΙΩΜΑΤΑ ΤΡΙΤΩΝ. Ο ΧΡΗΣΤΗΣ ΑΝΑΛΑΜΒΑΝΕΙ ΕΞ 
ΟΛΟΚΛΗΡΟΥ ΤΗΝ ΕΘΥΝΗ ΩΣ ΠΡΟΣ ΤΗΝ ΠΟΙΟΤΗΤΑ, ΤΗΝ ΑΚΡΙΒΕΙΑ ΚΑΙ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή ΤΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗΣ 
ΕΚΔΟΣΗΣ ΑΥΤΟΥ. ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΟΠΟΙΟΔΗΠΟΤΕ ΕΓΓΡΑΦΟ Ή ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚΔΟΣΗ ΑΥΤΟΥ ΑΠΟΔΕΙΧΘΟΥΝ ΕΛΑΤΤΩΜΑΤΙΚΑ 
ΚΑΘ' ΟΙΟΝΔΗΠΟΤΕ ΤΡΟΠΟ,
  Ο ΧΡΗΣΤΗΣ (ΚΑΙ ΟΧΙ Ο ΑΡΧΙΚΟΣ ΣΥΓΓΡΑΦΕΑΣ, ΔΗΜΙΟΥΡΓΟΣ Ή ΟΠΟΙΟΣΔΗΠΟΤΕ ΣΥΝΤΕΛΕΣΤΗΣ) ΑΝΑΛΑΜΒΑΝΕΙ ΤΟ ΚΟΣΤΟΣ 
ΟΠΟΙΑΣΔΗΠΟΤΕ ΑΝΑΓΚΑΙΑΣ ΣΥΝΤΗΡΗΣΗΣ, ΕΠΙΣΚΕΥΗΣ Ή ΔΙΟΡΘΩΣΗΣ. Η ΠΑΡΟΥΣΑ ΑΠΟΠΟΙΗΣΗ ΕΓΓΥΗΣΗΣ ΑΠΟΤΕΛΕΙ ΑΝΑΠΟΣΠΑΣΤΟ 
ΜΕΡΟΣ ΤΗΣ ΑΔΕΙΑΣ. ΔΕΝ ΕΠΙΤΡΕΠΕΤΑΙ ΟΥΔΕΜΙΑ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΕΚΔΟΣΕΩΝ ΑΥΤΟΥ ΣΥΜΦΩΝΑ ΜΕ ΤΟΥΣ 
ΟΡΟΥΣ ΤΗΣ ΠΑΡΟΥΣΑΣ, ΠΑΡΑ ΜΟΝΟ ΕΑΝ ΣΥΝΟΔΕΥΕΤΑΙ ΑΠΟ ΤΗΝ ΑΠΟΠΟΙΗΣΗ ΕΓΓΥΗΣΗΣ, ΚΑΙ</para>
+               </listitem>
+               <listitem>
+                 <para>Ο ΔΗΜΙΟΥΡΓΟΣ, Ο ΑΡΧΙΚΟΣ ΣΥΓΓΡΑΦΕΑΣ, ΟΙ ΣΥΝΤΕΛΕΣΤΕΣ Ή ΟΙ ΔΙΑΝΟΜΕΙΣ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή 
ΤΡΟΠΟΠΟΙΗΜΕΝΗΣ ΕΚΔΟΣΗΣ ΑΥΤΟΥ, ΚΑΘΩΣ ΚΑΙ ΟΙ ΠΡΟΜΗΘΕΥΤΕΣ ΟΠΟΙΩΝΔΗΠΟΤΕ ΕΚ ΤΩΝ ΠΡΟΑΝΑΦΕΡΟΜΕΝΩΝ ΜΕΡΩΝ, ΔΕΝ 
ΕΥΘΥΝΟΝΤΑΙ ΕΝΑΝΤΙ ΟΙΟΥΔΗΠΟΤΕ, ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ ΚΑΙ ΥΠΟ ΚΑΜΙΑ ΕΡΜΗΝΕΙΑ ΝΟΜΟΥ, ΕΙΤΕ ΕΞ ΑΔΙΚΟΠΡΑΞΙΑΣ 
(ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ ΤΗΣ ΑΜΕΛΕΙΑΣ) ΕΙΤΕ ΣΤΟ ΠΛΑΙΣΙΟ ΣΥΜΒΑΤΙΚΗΣ Ή ΑΛΛΗΣ ΥΠΟΧΡΕΩΣΗΣ, ΓΙΑ ΤΥΧΟΝ ΑΜΕΣΕΣ, ΕΜΜΕΣΕΣ, 
ΕΙΔΙΚΕΣ, ΤΥΧΑΙΕΣ Ή ΣΥΝΕΠΑΚΟΛΟΥΘΕΣ ΖΗΜΙΕΣ ΟΠΟΙΑΣΔΗΠΟΤΕ ΜΟΡΦΗΣ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΧΩΡΙΣ ΠΕΡΙΟΡΙΣΜΟ, ΖΗΜΙΩΝ 
ΛΟΓΩ ΑΠΩΛΕΙΑΣ ΦΗΜΗΣ ΚΑΙ ΠΕΛΑΤΕ�
 �ΑΣ, ΔΙΑΚΟΠΗΣ ΕΡΓΑΣΙΩΝ, ΔΥΣΛΕΙΤΟΥΡΓΙΑΣ Ή ΒΛΑΒΗΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, Ή ΚΑΘΕ ΑΛΛΗΣ ΖΗΜΙΑΣ Ή ΑΠΩΛΕΙΑΣ ΠΟΥ 
ΟΦΕΙΛΕΤΑΙ Ή ΣΧΕΤΙΖΕΤΑΙ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ ΚΑΙ ΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΕΚΔΟΣΕΩΝ ΑΥΤΟΥ, ΑΚΟΜΑ ΚΑΙ ΑΝ ΤΑ ΩΣ 
ΑΝΩ ΜΕΡΗ ΕΙΧΑΝ ΛΑΒΕΙ ΓΝΩΣΗ ΤΗΣ ΠΙΘΑΝΟΤΗΤΑΣ ΠΡΟΚΛΗΣΗΣ ΤΕΤΟΙΩΝ ΖΗΜΙΩΝ.</para>
+               </listitem>
+         </orderedlist></para>
+  </legalnotice>
+
+
+   <!-- This file  contains link to license for the documentation (GNU FDL), and 
+        other legal stuff such as "NO WARRANTY" statement. Please do not change 
+       any of this. -->
+
+    <authorgroup> 
+      <author role="maintainer"> 
+               <firstname>Jiří</firstname> 
+               <surname>Lebl</surname> 
+               <affiliation> 
+                       <orgname>Πανεπιστήμιο πολιτείας Οκλαχόμα</orgname> 
+                       <address> <email>jirka 5z com</email> </address> 
+               </affiliation> 
+      </author> 
+      <author> 
+               <firstname>Kai</firstname> 
+               <surname>Willadsen</surname> 
+               <affiliation> 
+                       <orgname>Πανεπιστήμιο του Κουινσλάντ, Αυστραλία</orgname> 
+                       <address> <email>kaiw itee uq edu au</email> </address> 
+               </affiliation> 
+      </author> 
+      
+<!-- This is appropriate place for other contributors: translators,
+     maintainers,  etc. Commented out by default.
+     
+      <othercredit role="translator">
+               <firstname>Latin</firstname> 
+               <surname>Translator 1</surname> 
+               <affiliation> 
+                       <orgname>Latin Translation Team</orgname> 
+                       <address> <email>translator gnome org</email> </address> 
+               </affiliation>
+               <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+    </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+-->
+<!-- than the current revision. -->
+<!-- The revision numbering system for GNOME manuals is as follows: -->
+<!-- * the revision number consists of two components -->
+<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
+<!-- * the second component of the revision number is a decimal unit that is incremented with each revision 
of the manual. -->
+<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
+<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
+<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
+<!-- to V3.0, and so on. -->  
+<!--  This is unmaintained quite a bit so screw this it just makes things
+      ugly and we don't update the manrevision stuff anyway
+    <revhistory>
+      <revision> 
+               <revnumber>&manrevision;</revnumber> 
+               <date>&date;</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>0.1</revnumber> 
+               <date>September 2004</date> 
+               <revdescription> 
+                       <para role="author">Kai Willadsen
+               <email>kaiw itee uq edu au</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>Genius Calculator Manual</revnumber> 
+               <date>August 2004</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+    </revhistory> 
+-->
+
+    <revhistory>
+      <revision> 
+               <revnumber>0.2</revnumber> 
+               <date>September 2016</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl <email>jirka 5z com</email></para>
+               </revdescription> 
+      </revision> 
+    </revhistory>
+    <releaseinfo>This manual describes version 1.0.22 of Genius.
+    </releaseinfo> 
+    <legalnotice> 
+      <title>Aνάδραση</title> 
+      <para>
+             To report a bug or make a suggestion regarding the <application>Genius Mathematics 
Tool</application>
+             application or this manual, please visit the
+             <ulink url="http://www.jirka.org/genius.html"; type="http">Genius
+                     Web page</ulink>
+             or email me at <email>jirka 5z com</email>.
+      </para>
+<!-- Translators may also add here feedback address for translations -->
+    </legalnotice> 
+  </bookinfo> 
+
+<!-- ============= Introduction =============================== -->
+  <chapter id="genius-introduction"> 
+    <title>Εισαγωγή</title> 
+    <para>Η εφαρμογή <application>Εργαλείο μαθηματικών Genius</application> είναι μια γενική αριθμομηχανή 
για χρήση ως αριθμομηχανή επιφάνειας εργασίας, ένα εκπαιδευτικό εργαλείο στα μαθηματικά και είναι χρήσιμη 
ακόμα και για έρευνα. Η χρησιμοποιούμενη γλώσσα στο <application>εργαλείο μαθηματικών Genius</application> 
σχεδιάζεται για να είναι ‘μαθηματική’ με την έννοια ότι πρέπει να είναι ‘ότι εννοείτε είναι ότι παίρνετε’. 
Φυσικά αυτό δεν είναι ένας πλήρως εφικτός στόχος. Το <application>εργαλείο μαθηματικών Genius</application> 
παρουσιάζει ρητούς, ακέραιους τυχαίας ακρίβειας κ�
 �ι αριθμούς κινητής υποδιαστολής πολλαπλής ακρίβειας χρησιμοποιώντας τη βιβλιοθήκη GMP. Διαχειρίζεται 
μιγαδικούς αριθμούς χρησιμοποιώντας καρτεσιανή σημειογραφία. Έχει καλή επεξεργασία διανυσμάτων και πινάκων 
και μπορεί να χειριστεί βασική γραμμική άλγεβρα. Η γλώσσα προγραμματισμού επιτρέπει στον χρήστη να ορίσει 
συναρτήσεις, μεταβλητές και τροποποιήσεις παραμέτρων.</para> 
+
+    <para>Το <application>εργαλείο μαθηματικών Genius</application> έρχεται σε δύο εκδόσεις. Μια έκδοση 
είναι η γραφική έκδοση GNOME, που χαρακτηρίζει μια διεπαφή τεχνοτροπίας IDE και την ικανότητα να σχεδιάσει 
συναρτήσεις μιας ή δύο μεταβλητών. Η έκδοση γραμμής εντολών δεν απαιτεί το GNOME, αλλά φυσικά δεν υλοποιεί 
οποιοδήποτε γνώρισμα απαιτεί τη γραφική διεπαφή.</para> 
+
+    <para>
+           Parts of this manual describe the graphical version of the calculator,
+       but the language is of course the same.  The command line only version
+       lacks the graphing capabilities and all other capabilities that require
+       the graphical user interface.
+    </para>
+
+    <para>
+           Generally, when some feature of the language (function, operator, etc...)
+           is new in some version past 1.0.5, it is mentioned, but
+           below 1.0.5 you would have to look at the NEWS file.
+    </para>
+
+  </chapter>
+
+<!-- =========== Getting Started ============================== -->
+  <chapter id="genius-getting-started"> 
+    <title>Ξεκίνημα</title> 
+
+    <sect1 id="genius-to-start">
+      <title>Για να ξεκινήσετε το <application>εργαλείο μαθηματικών Genius</application></title>
+      <para>You can start <application>Genius Mathematics Tool</application> in the following ways:
+      </para> 
+      <variablelist>
+        <varlistentry>
+          <term>Το μενού <guimenu>Εφαρμογές</guimenu></term>
+          <listitem>
+           <para>Ανάλογα με το λειτουργικό σας σύστημα και την έκδοση, το στοιχείο μενού για το 
<application>Εργαλείο μαθηματικών Genius</application> μπορεί να εμφανιστεί σε διαφορετικές θέσεις. Μπορεί να 
είναι στο <guisubmenu>Εκπαίδευση</guisubmenu>, <guisubmenu>Βοηθήματα</guisubmenu>, 
<guisubmenu>Γραφείο</guisubmenu>, <guisubmenu>Επιστήμη</guisubmenu>, ή παρόμοια υπομενού, ανάλογα με την 
συγκεκριμένη διαμόρφωση. Το στοιχείου μενού που ψάχνετε είναι <guimenuitem>Εργαλείο μαθηματικών 
Genius</guimenuitem>. Μόλις το εντοπίσετε αυτό το στοιχείο μενού πατήστε το για να ξεκινήσετε το 
<application>Εργαλείο μαθηματικών Genius</application>.
 </para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Ο διάλογος <guilabel>Εκτέλεση</guilabel></term>
+          <listitem>
+           <para>Ανάλογα με την εγκατάσταση του συστήματός σας, το στοιχείο μενού μπορεί να μην είναι 
διαθέσιμο. Αν δεν είναι, μπορείτε να ανοίξετε τον διάλογο εκτέλεσης και να εκτελέσετε την 
<command>gnome-genius</command>.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>Γραμμή εντολών</term>
+         <listitem>
+           <para>Για να ξεκινήσετε την έκδοση GNOME του <application>Εργαλείο μαθηματικών 
Genius</application> εκτελέστε την <command>gnome-genius</command> από την γραμμή εντολών.</para>
+           <para>Για να ξεκινήσετε μόνο την έκδοση της γραμμής εντολών, εκτελέστε την ακόλουθη εντολή: 
<command>genius</command>. Αυτή η έκδοση δεν περιλαμβάνει το γραφικό περιβάλλον και κάποιες λειτουργίες όπως 
η σχεδίαση δεν θα είναι διαθέσιμες.</para> 
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-when-start">
+    <title>Όταν ξεκινάτε το Genius</title>
+      <para>Όταν ξεκινάτε την έκδοση GNOME του <application>Εργαλείο μαθηματικών Genius</application>, το 
εικονιζόμενο παράθυρο στο <xref linkend="mainwindow-fig"/> εμφανίζεται.</para>
+
+      <figure id="mainwindow-fig"> 
+        <title>Το παράθυρο <application> Εργαλείο μαθηματικών Genius</application></title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+             <phrase>Shows <application>Εργαλείο μαθηματικών Genius</application> main window. Contains 
titlebar, menubar,
+toolbar and working area. Menubar contains <guilabel>Αρχείο</guilabel>,
+<guilabel>Επεξεργασία</guilabel>, <guilabel>Αριθμομηχανή</guilabel>,
+<guilabel>Examples</guilabel>,
+<guilabel>Programs</guilabel>,
+<guilabel>Ρυθμίσεις</guilabel>, and <guilabel>Βοήθεια</guilabel> menus.</phrase> 
+            </textobject> 
+          </mediaobject>
+        </screenshot> 
+      </figure>
+
+      <para>Το παράθυρο <application>Εργαλείο μαθηματικών Genius</application> περιέχει τα παρακάτω 
στοιχεία:</para>
+      <variablelist>
+        <varlistentry>
+          <term>Γραμμή μενού.</term>
+          <listitem>
+            <para>Τα μενού στη γραμμή μενού περιέχουν όλες τις εντολές που χρειάζεστε για να δουλέψετε με 
αρχεία στο <application>Εργαλείο μαθηματικών Genius</application>. Το μενού <guilabel>Αρχείο</guilabel> 
περιέχει στοιχεία για φόρτωση και αποθήκευση στοιχείων καθώς και δημιουργία νέων προγραμμάτων. Η εντολή 
<guilabel>φόρτωση και εκτέλεση...</guilabel> δεν ανοίγει ένα νέο παράθυρο για το πρόγραμμα, αλλά απλά εκτελεί 
άμεσα το πρόγραμμα. Είναι ισοδύναμη με την εντολή <command>φόρτωση</command>.</para>
+           <para>
+               The <guilabel>Calculator</guilabel> menu controls the
+calculator engine.  It allows you to run the currently selected program or to
+interrupt the current calculation.  You can also look at the full expression of
+the last answer (useful if the last answer was too large to fit onto the
+console), or you can view a listing of the values of all user defined
+variables.  You can also monitor user variables, which is especially useful
+while a long calculation is running, or to debug a certain program.
+                   Finally the <guilabel>Calculator</guilabel> allows plotting functions using a user 
friendly dialog box.
+          </para>
+          <para>
+                  The <guilabel>Examples</guilabel> menu is a list of example
+                  programs or demos.  If you open the menu, it will load the
+                  example into a new program, which you can run, edit, modify,
+                  and save.  These programs should be well documented
+                  and generally demonstrate either some feature of <application>Genius Mathematics 
Tool</application>
+                  or some mathematical concept.
+          </para>
+          <para>
+                  The <guilabel>Programs</guilabel> menu lists
+                  the currently open programs and allows you to switch
+                  between them.
+          </para>
+          <para>Τα άλλα μενού έχουν τις ίδιες οικείες συναρτήσεις όπως στις άλλες εφαρμογές.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Εργαλειοθήκη.</term>
+          <listitem>
+            <para>Η εργαλειοθήκη περιέχει ένα υποσύνολο των εντολών που μπορείτε να προσπελάσετε από τη 
γραμμή μενού.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Περιοχή εργασίας</term>
+          <listitem>
+            <para>Η περιοχή εργασίας είναι η πρωτεύουσα μέθοδος αλληλεπίδρασης με την εφαρμογή.</para>
+           <para>Η περιοχή εργασίας αρχικά έχει μόνο την καρτέλα <guilabel>κονσόλα</guilabel>, που είναι ο 
κύριος τρόπος αλληλεπίδρασης με την αριθμομηχανή. Εδώ πληκτρολογείτε παραστάσεις και τα αποτελέσματα 
επιστρέφονται αμέσως μετά το πάτημα του πλήκτρου εισαγωγής.</para>
+           <para>
+               Alternatively you can write longer programs and those can
+               appear in separate tabs.  The programs are a set of commands or
+               functions that can be run all at once rather than entering them
+               at the command line.  The programs can be saved in files for later
+               retrieval.
+           </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+<!-- ================ Usage =================================== -->
+  <chapter id="genius-usage"> 
+    <title>Βασική χρήση</title> 
+
+    <sect1 id="genius-usage-workarea"> 
+      <title>Χρήση της περιοχής εργασίας</title> 
+
+      <para>Κανονικά, αλληλεπιδράτε με την αριθμομηχανή στην καρτέλα <guilabel>κονσόλα</guilabel> της 
περιοχής εργασίας. Αν τρέχετε την κειμενική μόνο έκδοση, τότε η κονσόλα θα είναι το μόνο πράγμα που είναι 
διαθέσιμο σε σας. Αν θέλετε να χρησιμοποιήσετε το <application>Εργαλείο μαθηματικών Genius</application> ως 
αριθμομηχανή μόνο, πληκτρολογήστε απλά την παράστασή σας εδώ και η επιστρεφόμενη τιμή θα υπολογιστεί.</para>
+
+      <para>
+             To evaluate an expression, type it into the <guilabel>Console</guilabel> work area and press 
enter.
+             Expressions are written in a
+language called GEL.  The most simple GEL expressions just looks like
+mathematics.  For example
+<screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
+</screen>
+(Last is the harmonic sum from 1 to 70)
+</para>
+<para>Για να πάρετε έναν κατάλογο συναρτήσεων και εντολών, πληκτρολογήστε: <screen><prompt>genius&gt; 
</prompt><userinput>help</userinput>
+</screen> Αν θέλετε να πάρετε περισσότερη βοήθεια για μια συγκεκριμένη συνάρτηση, πληκτρολογήστε: 
<screen><prompt>genius&gt; </prompt><userinput>help FunctionName</userinput>
+</screen> Για να προβάλετε αυτό το εγχειρίδιο, πληκτρολογήστε: <screen><prompt>genius&gt; 
</prompt><userinput>manual</userinput>
+</screen></para>
+<para>
+Suppose you have previously saved some GEL commands as a program to a file and
+you now want to execute them.
+To load this program from the file <filename>path/to/program.gel</filename>,
+type
+<screen><prompt>genius&gt; </prompt><userinput>load path/to/program.gel</userinput>
+</screen>
+<application>Genius Mathematics Tool</application> keeps track of the current directory.
+To list files in the current directory type <command>ls</command>, to change directory
+do <userinput>cd directory</userinput> as in the UNIX command shell.
+</para>
+    </sect1>
+
+    <sect1 id="genius-usage-create-program"> 
+      <title>Για να δημιουργήσετε ένα νέο πρόγραμμα</title> 
+      <para>
+             If you wish to enter several more complicated commands, or perhaps write a complicated
+             function using the <link linkend="genius-gel">GEL</link> language, you can create a new
+            program.
+      </para>
+      <para>
+To start writing a new program, choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>New
+Program</guimenuitem></menuchoice>. A new tab will appear in the work area. You
+can write a <link linkend="genius-gel">GEL</link> program in this work area.
+Once you have written your program you can run it by 
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice> (or
+the <guilabel>Run</guilabel> toolbar button).
+This will execute your program and will display any output on the <guilabel>Console</guilabel> tab.
+Executing a program is equivalent of taking the text of the program and
+typing it into the console.  The only difference is that this input is done
+independent of the console and just the output goes onto the console.
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice>
+will always run the currently selected program even if you are on the <guilabel>Console</guilabel>
+tab.  The currently selected program has its tab in bold type.  To select a
+program, just click on its tab.
+      </para>
+      <para>
+To save the program you've just written, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save 
As...</guimenuitem></menuchoice>.
+Similarly as in other programs you can choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice> to save a program that 
already has
+a filename attached to it.  If you have many opened programs you have edited and wish to save you can also 
choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save All Unsaved</guimenuitem></menuchoice>.
+      </para>
+      <para>
+             Programs that have unsaved changes will have a "[+]" next to their filename.  This way you can 
see if the file
+             on disk and the currently opened tab differ in content.  Programs which have not yet had a 
filename associated
+             with them are always considered unsaved and no "[+]" is printed.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-usage-open-program"> 
+      <title>Για το άνοιγμα και την εκτέλεση ενός προγράμματος</title> 
+      <para>Για να ανοίξετε ένα αρχείο, επιλέξτε 
<menuchoice><guimenu>Αρχείο</guimenu><guimenuitem>Άνοιγμα</guimenuitem></menuchoice>. Μια νέα καρτέλα που 
περιέχει το αρχείο θα εμφανιστεί στην περιοχή εργασίας. Μπορείτε να την χρησιμοποιήσετε για να επεξεργαστείτε 
το αρχείο.</para>
+      <para>Για να εκτελέσετε ένα πρόγραμμα από ένα αρχείο, επιλέξτε 
<menuchoice><guimenu>Αρχείο</guimenu><guimenuitem>Φόρτωση και εκτέλεση...</guimenuitem></menuchoice>. Αυτό θα 
τρέξει το πρόγραμμα χωρίς να το ανοίξει σε ξεχωριστή καρτέλα. Αυτό είναι ισοδύναμο με την εντολή 
<command>φόρτωση</command>.</para>
+      <para>
+             If you have made edits to a file you wish to throw away and want to reload to the version 
that's on disk,
+             you can choose the
+             <menuchoice><guimenu>File</guimenu><guimenuitem>Reload from Disk</guimenuitem></menuchoice> 
menuitem.  This is useful for experimenting
+             with a program and making temporary edits, to run a program, but that you do not intend to keep.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Plotting ============================== -->
+  <chapter id="genius-gel-plotting">
+    <title>Γραφική παράσταση</title>
+
+    <para>Η υποστήριξη σχεδίασης είναι διαθέσιμη μόνο στην γραφική έκδοση GNOME. Όλες οι προσβάσιμες 
σχεδιάσεις από τη γραφική διεπαφή είναι διαθέσιμες από το παράθυρο <guilabel>Δημιουργία σχεδίου</guilabel>. 
Μπορείτε να προσπελάσετε αυτό το παράθυρο είτε πατώντας στο κουμπί <guilabel>Γραφική παράσταση</guilabel> 
στην εργαλειοθήκη είτε επιλέγοντας <guilabel>Γραφική παράσταση</guilabel> από το μενού 
<guilabel>Αριθμομηχανή</guilabel>. Μπορείτε επίσης να προσπελάσετε τη λειτουργία γραφικής παράστασης 
χρησιμοποιώντας τις <link linkend="genius-gel-function-list-plotting">συναρτήσεις σχεδίασης</link> τ�
 �ς γλώσσας GEL. Δείτε <xref linkend="genius-gel"/> για να βρείτε πώς να εισάγετε εκφράσεις που καταλαβαίνει 
το Genius.</para>
+
+    <sect1 id="genius-line-plots">
+      <title>Γραμμικές γραφικές παραστάσεις</title>
+      <para>Για να παραστήσετε με γραφικές παραστάσεις συναρτήσεις πραγματικών τιμών μιας μεταβλητής, 
ανοίξτε το παράθυρο <guilabel>Δημιουργία γραφικής παράστασης</guilabel>. Μπορείτε επίσης να χρησιμοποιήσετε 
τη συνάρτηση <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> στη γραμμή εντολών 
(δείτε την τεκμηρίωσή της).</para>
+      <para>Μόλις πατήσετε το κουμπί <guilabel>Γραφική παράσταση</guilabel>, ανοίγει ένα παράθυρο με κάποια 
σημειωματάρια σε αυτό. Πρέπει να είσαστε στην καρτέλα σημειωματαρίου <guilabel>Συνάρτηση γραμμικής γραφικής 
παράστασης</guilabel> και μέσα σε αυτό να είσαστε στην καρτέλα σημειωματαρίου <guilabel>Συναρτήσεις / 
εκφράσεις</guilabel>. Δείτε <xref linkend="lineplot-fig"/>.</para>
+
+      <figure id="lineplot-fig"> 
+        <title>Δημιουργία παραθύρου γραφικής παράστασης</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Εμφανίζει το παράθυρο γραμμικής γραφικής παράστασης.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Πληκτρολογήστε τις εκφράσεις με <userinput>x</userinput> ως ανεξάρτητη μεταβλητή στα πλαίσια 
κειμένου. Εναλλακτικά μπορείτε να δώσετε τα ονόματα των συναρτήσεων όπως <userinput>cos</userinput> αντί να 
πρέπει να πληκτρολογήσετε <userinput>cos(x)</userinput>. Μπορείτε να παραστήσετε μέχρι δέκα συναρτήσεις. Αν 
κάνετε λάθος και το Genius δεν μπορεί να αναλύσει την είσοδο, θα το υποδείξει με ένα εικονίδιο προειδοποίησης 
στα δεξιά του πλαισίου εισόδου του κειμένου, όπου προέκυψε το σφάλμα, και θα σας δώσει έναν διάλογο 
σφάλματος. Μπορείτε να αλλάξετε τις περιοχές των εξαρ�
 �ημένων και ανεξάρτητων μεταβλητών στο κάτω τμήμα του διαλόγου. Η <varname>y</varname> (εξαρτημένη) περιοχή 
μπορεί να οριστεί αυτόματα ενεργοποιώντας το πλαίσιο ελέγχου <guilabel>Προσαρμογή εξαρτημένου 
άξονα</guilabel>. Τα ονόματα των μεταβλητών μπορούν επίσης να αλλαχθούν. Πατώντας το κουμπί <guilabel>Γραφική 
παράσταση</guilabel> παράγει το γράφημα που εμφανίζεται στο <xref linkend="lineplot2-fig"/>.</para>
+      <para>
+             The variables can be renamed by clicking the <guilabel>Change variable names...</guilabel> 
button, which is useful if you wish to print or save the figure and don't want to use the standard
+             names.  Finally you can also avoid printing the legend and the axis labels completely,
+             which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="lineplot2-fig"> 
+        <title>Παράθυρο γραφικής παράστασης</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Το γράφημα που παράχθηκε.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Από εκεί μπορείτε να τυπώσετε τη γραφική παράσταση, να δημιουργήσετε ενθυλακωμένη postscript ή 
μια έκδοση PNG της γραφικής παράστασης ή να αλλάξετε την εστίαση. Αν ο εξαρτημένος άξονας δεν ορίστηκε σωστά, 
μπορείτε να κάνετε το Genius να τον προσαρμόσει, βρίσκοντας τα ακρότατα των συναρτήσεων γραφημάτων.</para>
+
+      <para>Για τη σχεδίαση χρησιμοποιώντας τη γραμμή εντολών δείτε την τεκμηρίωση της συνάρτησης <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+    </sect1>
+
+    <sect1 id="genius-parametric-plots">
+      <title>Παραμετρικές γραφικές παραστάσεις</title>
+      <para>Στο παράθυρο δημιουργίας γραφικών παραστάσεων, μπορείτε επίσης να επιλέξετε την καρτέλα 
σημειωματαρίου <guilabel>Παραμετρικά</guilabel> για να δημιουργήσετε παραμετρικές γραφικές παραστάσεις δύο 
διαστάσεων. Με αυτόν τον τρόπο μπορείτε να σχεδιάσετε μια συνάρτηση με μια μοναδική παράμετρο. Μπορείτε είτε 
να ορίσετε τα σημεία ως <varname>x</varname> και <varname>y</varname>, είτε να δώσετε έναν μοναδικό μιγαδικό 
αριθμό ως μια συνάρτηση της μεταβλητής <varname>t</varname>. Η περιοχή της μεταβλητής <varname>t</varname> 
δίνεται ρητά και η συνάρτηση παίρνει δείγματα σύμφωνα με 
 τη δοσμένη αύξηση. Η περιοχή <varname>x</varname> και <varname>y</varname> μπορεί να οριστεί αυτόματα 
ενεργοποιώντας το πλαίσιο ελέγχου <guilabel>Προσαρμογή εξαρτημένου άξονα</guilabel>, ή μπορεί να οριστεί 
ρητά. Δείτε <xref linkend="paramplot-fig"/>.</para>
+
+      <figure id="paramplot-fig"> 
+        <title>Καρτέλα παραμετρικών γραφικών παραστάσεων</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Η καρτέλα παραμετρικών γραφικών παραστάσεων στο παράθυρο <guilabel>Δημιουργία γραφικής 
παράστασης</guilabel>.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Ένα παράδειγμα των παραμετρικών γραφικών παραστάσεων δίνεται στο <xref 
linkend="paramplot2-fig"/>. Παρόμοιες πράξεις μπορούν να γίνουν σε τέτοια γραφήματα όπως μπορούν να γίνουν σε 
άλλες γραμμικές γραφικές παραστάσεις. Για σχεδίαση χρησιμοποιώντας τη γραμμή εντολών δείτε την τεκμηρίωση της 
συνάρτησης <link linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> ή 
<link linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link>.</para>
+
+      <figure id="paramplot2-fig"> 
+        <title>Παραμετρικές γραφικές παραστάσεις</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Παραγόμενη παραμετρική γραφική παράσταση</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+    </sect1>
+
+    <sect1 id="genius-slopefield-plots">
+      <title>Γραφικές παραστάσεις πεδίου κλίσεων</title>
+      <para>Στο παράθυρο δημιουργίας γραφικής παράστασης, μπορείτε επίσης να επιλέξετε την καρτέλα 
σημειωματαρίου <guilabel>πεδίου κλίσης</guilabel> για τη δημιουργία μιας δισδιάστατης γραφικής παράστασης 
πεδίου κλίσης. Παρόμοιες πράξεις μπορούν να γίνουν σε τέτοια γραφήματα όπως μπορούν να γίνουν στις άλλες 
γραμμικές γραφικές παραστάσεις. Για σχεδίαση χρησιμοποιώντας τη γραμμή εντολών δείτε την τεκμηρίωση της 
συνάρτησης <link linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>.</para>
+
+      <para>Όταν ένα πεδίο κλίσης είναι ενεργό, υπάρχει ένα πρόσθετο διαθέσιμο μενού 
<guilabel>επίλυσης</guilabel>, μέσα από το οποίο μπορείτε να εμφανίσετε τον διάλογο επίλυσης. Εδώ μπορείτε να 
έχετε συγκεκριμένες λύσεις για γραφικές παραστάσεις σε δεδομένες αρχικές συνθήκες. Μπορείτε είτε να ορίσετε 
εσωτερικές συνθήκες στον διάλογο, ή μπορείτε να πατήσετε στη γραφική παράσταση άμεσα για να ορίσετε το αρχικό 
σημείο. Ενώ ο διάλογος επίλυσης είναι ενεργός, η εστίαση πατώντας και μεταφέροντας δεν δουλεύει. Πρέπει να 
κλείσετε πρώτα τον διάλογο, αν θέλ
 ετε να εστιάσετε χρησιμοποιώντας το ποντίκι.</para>
+
+      <para>Ο επιλύτης χρησιμοποιεί την τυπική μέθοδο Runge-Kutta. Οι γραφικές παραστάσεις θα μείνουν στην 
οθόνη μέχρι να καθαριστούν. Ο επιλύτης θα σταματήσει όποτε φτάσει στα όρια του παραθύρου σχεδίασης. Η εστίαση 
δεν αλλάζει τα όρια ή τις παραμέτρους των λύσεων, θα πρέπει να καθαρίσετε και να τις επανασχεδιάσετε με 
κατάλληλες παραμέτρους. Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link> για να 
σχεδιάσετε λύσεις από τη γραμμή εντολών ή προγραμμάτων.</para>
+
+    </sect1>
+
+    <sect1 id="genius-vectorfield-plots">
+      <title>Γραφικές παραστάσεις διανυσματικού πεδίου</title>
+      <para>Στο παράθυρο δημιουργίας γραφικής παράστασης, μπορείτε να επιλέξετε επίσης την καρτέλα 
σημειωματαρίου <guilabel>διανυσματικό πεδίο</guilabel> για να δημιουργήσετε μια δισδιάστατη γραφική παράσταση 
διανυσματικού πεδίου. Παρόμοιες λειτουργίες μπορούν να γίνουν σε τέτοια γραφήματα όπως μπορούν να γίνουν σε 
άλλες γραμμικές γραφικές παραστάσεις. Για σχεδίαση χρησιμοποιώντας τη γραμμή εντολών δείτε την τεκμηρίωση της 
συνάρτησης <link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>.</para>
+
+      <para>Από προεπιλογή η κατεύθυνση και το μέγεθος του διανυσματικού πεδίου εμφανίζονται. Για να 
εμφανίσετε μόνο την κατεύθυνση και όχι το μέγεθος, σημειώστε το κατάλληλο πλαίσιο ελέγχου για να 
κανονικοποιήσετε τα μήκη των διανυσμάτων.</para>
+
+      <para>Όταν ένα πεδίο κλίσης είναι ενεργό, υπάρχει ένα πρόσθετο διαθέσιμο μενού 
<guilabel>επιλύτη</guilabel>, μέσα από το οποίο μπορείτε να εμφανίσετε τον διάλογο επίλυσης. Εδώ μπορείτε να 
έχετε συγκεκριμένες λύσεις για γραφικές παραστάσεις σε δεδομένες αρχικές συνθήκες. Μπορείτε είτε να ορίσετε 
εσωτερικές συνθήκες στον διάλογο, ή μπορείτε να πατήσετε στη γραφική παράσταση άμεσα για να ορίσετε το αρχικό 
σημείο. Ενώ ο διάλογος επίλυσης είναι ενεργός, η εστίαση πατώντας και μεταφέροντας δεν δουλεύει. Πρέπει να 
κλείσετε πρώτα τον διάλογο, αν θέλε
 τε να εστιάσετε χρησιμοποιώντας το ποντίκι.</para>
+
+      <para>Ο επιλύτης χρησιμοποιεί την τυπική μέθοδο Runge-Kutta. Οι γραφικές παραστάσεις θα μείνουν στην 
οθόνη μέχρι να καθαριστούν. Η εστίαση δεν αλλάζει τα όρια ή τις παραμέτρους των λύσεων, θα πρέπει να 
καθαρίσετε και να τις επανασχεδιάσετε με κατάλληλες παραμέτρους. Μπορείτε επίσης να χρησιμοποιήσετε τη 
συνάρτηση <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link> για να 
σχεδιάσετε λύσεις από τη γραμμή εντολών ή προγραμμάτων.</para>
+
+    </sect1>
+
+    <sect1 id="genius-surface-plots">
+      <title>Γραφικές παραστάσεις επιφάνειας</title>
+      <para>Η Genius μπορεί να σχεδιάσει επίσης επιφάνειες. Επιλέξτε την καρτέλα <guilabel>γραφική παράσταση 
επιφάνειας</guilabel> στο κύριο σημειωματάριο του παραθύρου <guilabel>Δημιουργία γραφικής 
παράστασης</guilabel>. Εδώ μπορείτε να ορίσετε μια μοναδική έκφραση που πρέπει να χρησιμοποιήσει είτε τις 
<varname>x</varname> και <varname>y</varname> ως πραγματικές ανεξάρτητες μεταβλητές ή την 
<varname>z</varname> ως μιγαδική μεταβλητή (όπου <varname>x</varname> είναι το πραγματικό τμήμα της 
<varname>z</varname> και <varname>y</varname> είναι το φανταστικό τμήμα). Για παράδειγμα για να σχεδιάσετε το 
μέτρο της συνάρτ�
 �σης συνημιτόνου για μιγαδικές παραμέτρους, μπορείτε να εισάγετε <userinput>|cos(z)|</userinput>. Αυτό θα 
είναι ισοδύναμο με <userinput>|cos(x+1i*y)|</userinput>. Δείτε <xref linkend="surfaceplot-fig"/>. Για 
σχεδίαση χρησιμοποιώντας τη γραμμή εντολών, δείτε την τεκμηρίωση της συνάρτησης <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
+      <para>
+             The <varname>z</varname> range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+             checkbox.  The variables can be renamed by clicking the <guilabel>Change variable 
names...</guilabel> button, which is useful if you wish to print or save the figure and don't want to use the 
standard
+             names.  Finally you can also avoid printing the legend, which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="surfaceplot-fig"> 
+        <title>Γραφικές παραστάσεις επιφάνειας</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Μέτρο της μιγαδικής συνάρτησης συνημιτόνου.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+             In surface mode, left and right arrow keys on your keyboard will rotate the
+             view along the z axis.  Alternatively you can rotate along any axis by
+             selecting <guilabel>Rotate axis...</guilabel> in the <guilabel>View</guilabel> 
+             menu.  The <guilabel>View</guilabel> menu also has a top view mode which rotates the
+             graph so that the z axis is facing straight out, that is, we view the graph from the top
+             and get essentially just the colors that define the values of the function getting a
+             temperature plot of the function.  Finally you should
+             try <guilabel>Start rotate animation</guilabel>, to start a continuous slow rotation.
+             This is especially good if using <application>Genius Mathematics Tool</application> to present 
to an audience.
+      </para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL ====================================== -->
+  <chapter id="genius-gel"> 
+    <title>Βασικά της GEL</title> 
+
+       <para>GEL σημαίνει γλώσσα επέκτασης Genius. Είναι η γλώσσα που χρησιμοποιείτε για να γράψετε 
προγράμματα στη Genius. Ένα πρόγραμμα στη GEL είναι απλά μια παράσταση που υπολογίζει έναν αριθμό. Το 
<application>Εργαλείο μαθηματικών Genius</application> μπορεί να χρησιμοποιηθεί ως μια απλή αριθμομηχανή, ή 
ως ένα ισχυρό θεωρητικό εργαλείο αναζήτησης. Η σύνταξη πρέπει να έχει όσο πιο ρηχή καμπύλη μάθησης γίνεται, 
ειδικά για χρήση ως αριθμομηχανή.</para>
+
+    <sect1 id="genius-gel-values">
+      <title>Τιμές</title>
+
+      <para>Οι τιμές στην GEL μπορεί να είναι <link linkend="genius-gel-values-numbers">αριθμοί</link>, 
<link linkend="genius-gel-values-booleans">Λογικές τιμές</link> ή <link 
linkend="genius-gel-values-strings">συμβολοσειρές</link>. Η GEL θεωρεί επίσης <link 
linkend="genius-gel-matrices">πίνακες</link> ως τιμές. Οι τιμές μπορεί να χρησιμοποιηθούν σε υπολογισμούς, 
εκχωρημένες σε μεταβλητές και να επιστραφούν από τις συναρτήσεις, μεταξύ άλλων χρήσεων.</para>
+
+      <sect2 id="genius-gel-values-numbers">
+        <title>Αριθμοί</title>
+        <para>Οι ακέραιοι είναι ο πρώτος τύπος αριθμού στην GEL. Οι ακέραιοι γράφονται με τον κανονικό 
τρόπο. <programlisting>1234
+</programlisting> Δεκαεξαδικοί και οκταδικοί αριθμοί μπορούν να γραφτούν χρησιμοποιώντας σημειογραφία C. Για 
παράδειγμα: <programlisting>0x123ABC
+01234
+</programlisting> Ή μπορείτε να πληκτρολογήσετε αριθμούς σε μια ελεύθερη βάση χρησιμοποιώντας 
<literal>&lt;base&gt;\&lt;number&gt;</literal>. Ψηφία μεγαλύτερα από 10 χρησιμοποιούν γράμματα με παρόμοιο 
τρόπο με τα δεκαεξαδικά. Για παράδειγμα, ένας αριθμός με βάση 23 πρέπει να γραφτεί: 
<programlisting>23\1234ABCD
+</programlisting></para>
+
+        <para>Ο δεύτερος τύπος αριθμού GEL είναι ρητοί. Οι ρητοί εκφράζονται διαιρώντας απλά δύο ακέραιους. 
Έτσι, κάποιος μπορεί να γράψει: <programlisting>3/4
+</programlisting> για να πάρει τρία τέταρτα. Οι ρητοί δέχονται επίσης μικτή σημειογραφία κλάσματος. Έτσι, 
για να πάρετε ένα και τρία δέκατα μπορείτε να γράψετε: <programlisting>1 3/10
+</programlisting></para>
+
+        <para>
+The next type of number is floating point. These are entered in a similar fashion to C notation. You can use 
<literal>E</literal>, <literal>e</literal> or <literal>@</literal> as the exponent delimiter. Note that using 
the exponent delimiter gives a float even if there is no decimal point in the number. Examples:
+<programlisting>1.315
+7.887e77
+7.887e-77
+.3
+0.3
+77e5
+</programlisting>
+       When Genius prints a floating point number it will always append a
+       <computeroutput>.0</computeroutput> even if the number is whole.  This is to indicate that
+       floating point numbers are taken as imprecise quantities.  When a number is written in the
+       scientific notation, it is always a floating point number and thus Genius does not
+       print the <computeroutput>.0</computeroutput>.
+        </para>
+
+        <para>
+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:
+<programlisting>1+2i
+8.01i
+77*e^(1.3i)
+</programlisting>
+        </para>
+
+        <important>
+          <para>Κατά την εισαγωγή φανταστικών αριθμών, ένας αριθμός πρέπει να είναι μπροστά από το 
<literal>i</literal>. Αν χρησιμοποιήσετε <literal>i</literal> αυτό καθεαυτό, η Genius θα το ερμηνεύσει ως 
αναφορά στη μεταβλητή <varname>i</varname>. Αν χρειάζεται να αναφέρετε το <literal>i</literal> αυτό καθεαυτό, 
χρησιμοποιήστε <literal>1i</literal> στη θέση του.</para>
+
+          <para>Για να χρησιμοποιήσετε μικτή σημειογραφία κλάσματος με φανταστικούς αριθμούς, πρέπει να 
έχετε το μικτό κλάσμα σε παρενθέσεις. (δηλαδή, <userinput>(1 2/5)i</userinput>)</para>
+        </important>
+
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-booleans">
+        <title>Λογικές τιμές </title>
+        <para>Η Genius επίσης υποστηρίζει εγγενείς λογικές τιμές. Οι δύο σταθερές λογικών τιμών ορίζονται ως 
<constant>true</constant> και <constant>false</constant>· αυτά τα αναγνωριστικά μπορούν να χρησιμοποιηθούν 
όπως κάθε άλλη μεταβλητή. Μπορείτε επίσης να χρησιμοποιήσετε τα αναγνωριστικά <constant>True</constant>, 
<constant>TRUE</constant>, <constant>False</constant> και <constant>FALSE</constant> ως παραλλαγές για τα 
παραπάνω.</para>
+        <para>Σε οποιαδήποτε θέση όπου αναμένεται παράσταση λογικών τιμών, μπορείτε να χρησιμοποιήσετε μια 
λογική τιμή ή οποιαδήποτε παράσταση παράγει ή έναν αριθμό ή μια λογική τιμή. Αν η Genius χρειάζεται να 
υπολογίσει έναν αριθμό ως λογική τιμή θα ερμηνεύσει το 0 ως <constant>ψευδή</constant> και οποιοδήποτε άλλο 
αριθμό ως <constant>αληθή</constant>.</para>
+        <para>Επιπλέον, μπορείτε να κάνετε αριθμητική με λογικές τιμές. Για παράδειγμα: <programlisting>( (1 
+ αληθές) - ψευδές ) * αληθές
+</programlisting> είναι το ίδιο με: <programlisting>( (αληθές ή αληθές) ή όχι ψευδές ) και αληθές
+</programlisting> Μόνο πρόσθεση, αφαίρεση και πολλαπλασιασμός υποστηρίζονται. Αν αναμείξετε αριθμούς με 
λογικές τιμές σε μια παράσταση, τότε οι αριθμοί μετατρέπονται σε λογικές τιμές όπως περιγράφεται παραπάνω. 
Αυτό σημαίνει ότι, για παράδειγμα: το <programlisting>1 == αληθές
+</programlisting> πάντα αξιολογείται σε <constant>αληθές</constant> αφού το 1 θα μετατραπεί σε 
<constant>αληθές</constant> πριν συγκριθεί με το <constant>αληθές</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-strings">
+        <title>Συμβολοσειρές</title>
+        <para>Όπως οι αριθμοί και οι λογικές τιμές, οι συμβολοσειρές στην GEL μπορούν να αποθηκευτούν ως 
τιμές μέσα σε μεταβλητές και να περάσουν σε συναρτήσεις. Μπορείτε επίσης να συνενώσετε μια συμβολοσειρά με 
μια άλλη τιμή χρησιμοποιώντας τον τελεστή συν. Για παράδειγμα: το <programlisting>a=2+3· "Το αποτέλεσμα 
είναι: "+a
+</programlisting> θα δημιουργήσει τη συμβολοσειρά: <programlisting>Το αποτέλεσμα είναι: 5
+</programlisting> Μπορείτε επίσης να χρησιμοποιήσετε τις ακολουθίες διαφυγής παρόμοιες με C όπως 
<literal>\n</literal>,<literal>\t</literal>,<literal>\b</literal>,<literal>\a</literal> και 
<literal>\r</literal>. Για να πάρετε ένα <literal>\</literal> or <literal>"</literal> μέσα στη συμβολοσειρά 
μπορείτε να βάλετε εισαγωγικά με ένα <literal>\</literal>. Για παράδειγμα: <programlisting>"Slash: \\ Quotes: 
\" Tabs: \t1\t2\t3"
+</programlisting> θα κάνει μια συμβολοσειρά: <programlisting>Slash: \ Quotes: " Tabs:  1       2       3
+</programlisting> Σημειώστε, όμως, ότι όταν μια συμβολοσειρά επιστρέφεται από μια συνάρτηση, οι διαφυγές 
είναι σε εισαγωγικά, έτσι ώστε η έξοδος να μπορεί να χρησιμοποιηθεί ως είσοδος. Αν θέλετε να εκτυπώσετε τη 
συμβολοσειρά όπως είναι (χωρίς διαφυγές), χρησιμοποιήστε τις συναρτήσεις <link 
linkend="gel-function-print"><function>print</function></link> ή <link 
linkend="gel-function-printn"><function>printn</function></link>.</para>
+        <para>Επιπλέον, μπορείτε να χρησιμοποιήσετε τη συνάρτηση βιβλιοθήκης <link 
linkend="gel-function-string"><function>string</function></link> για να μετατρέψετε ο,τιδήποτε σε μια 
συμβολοσειρά. Για παράδειγμα: το <programlisting>string(22)
+</programlisting> θα επιστρέψει <programlisting>"22"
+</programlisting> Οι συμβολοσειρές μπορούν επίσης να συγκριθούν με τελεστές <literal>==</literal> (ίσον), 
<literal>!=</literal> (όχι ίσο) και <literal>&lt;=&gt;</literal> (σύγκρισης)</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-null">
+        <title>Null</title>
+        <para>
+There is a special value called
+<constant>null</constant>. No operations can be performed on
+it, and nothing is printed when it is returned. Therefore,
+<constant>null</constant> is useful when you do not want output from an
+expression.  The value <constant>null</constant> can be obtained as an expression when you
+type <literal>.</literal>, the constant <constant>null</constant> or nothing.
+By nothing we mean that if you end an expression with
+a separator <literal>;</literal>, it is equivalent to ending it with a
+separator followed by a <constant>null</constant>.
+        </para>
+        <para>Παράδειγμα: <programlisting>x=5;.
+x=5;
+</programlisting></para>
+<para>Κάποιες συναρτήσεις επιστρέφουν <constant>null</constant>, όταν καμιά τιμή δεν μπορεί να επιστραφεί ή 
όταν συμβαίνει ένα σφάλμα. Επίσης η <constant>null</constant> χρησιμοποιείται ως ένα κενό διάνυσμα ή πίνακας, 
ή μια κενή αναφορά.</para>
+      </sect2>
+
+    </sect1>
+
+    <sect1 id="genius-gel-variables">
+      <title>Χρήση μεταβλητών</title>
+
+      <para>Σύνταξη: <programlisting>VariableName
+</programlisting> Παράδειγμα: <screen><prompt>genius&gt; </prompt><userinput>e</userinput>
+=2.71828182846
+</screen></para>
+
+      <para>Για να αξιολογηθεί μια μεταβλητή αυτή καθεαυτή, εισάγετε απλώς το όνομα της μεταβλητής. Αυτή θα 
επιστρέψει την τιμή της μεταβλητής. Μπορείτε να χρησιμοποιήσετε μια μεταβλητή οπουδήποτε θα μπορούσατε 
κανονικά να χρησιμοποιήσετε έναν αριθμό ή την συμβολοσειρά. Επιπλέον, οι μεταβλητές είναι απαραίτητες όταν 
ορίζονται συναρτήσεις που παίρνουν ορίσματα (δείτε <xref linkend="genius-gel-functions-defining"/>).</para>
+
+      <tip>
+        <title>Χρήση συμπλήρωσης καρτέλας</title>
+        <para>Μπορείτε να χρησιμοποιήσετε την συμπλήρωση καρτέλας για να πάρετε την Genius για να 
συμπληρωθούν τα ονόματα των μεταβλητών για σας. Δοκιμάστε την πληκτρολόγηση των πρώτων λίγων γραμμάτων του 
ονόματος και πατήστε <userinput>καρτέλα</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Τα ονόματα των μεταβλητών είναι με διάκριση πεζών/κεφαλαίων</title>
+        <para>Τα ονόματα των μεταβλητών είναι με διάκριση πεζών/κεφαλαίων. Αυτό σημαίνει ότι οι μεταβλητές 
με όνομα <varname>hello</varname>, <varname>HELLO</varname> and <varname>Hello</varname> είναι όλες 
διαφορετικές μεταβλητές.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-variables-setting">
+        <title>Ορισμός μεταβλητών</title>
+        <para>Σύνταξη: <programlisting><![CDATA[<identifier> = <value>
+<identifier> := <value>]]>
+</programlisting> Παράδειγμα: <programlisting>x = 3
+x := 3
+</programlisting></para>
+
+        <para>Για εκχώρηση σε μια μεταβλητή, χρησιμοποιήστε τους τελεστές <literal>=</literal> ή 
<literal>:=</literal>. Αυτοί οι τελεστές ορίζουν την τιμή της μεταβλητής και επιστρέφουν την τιμή που 
ορίσατε, έτσι μπορείτε να κάνετε πράγματα όπως <programlisting>a = b = 5
+</programlisting> Αυτό θα ορίσει το <varname>b</varname> σε 5 και μετά ορίζει επίσης το <varname>a</varname> 
σε 5.</para>
+
+        <para>Οι τελεστές <literal>=</literal> και <literal>:=</literal> μπορούν να χρησιμοποιηθούν και οι 
δύο για να ορίσουν μεταβλητές. Η διαφορά μεταξύ τους είναι ότι ο τελεστής <literal>:=</literal> δρα πάντα ως 
μια ανάθεση τελεστή, ενώ ο τελεστής <literal>=</literal> μπορεί να ερμηνευτεί ως δοκιμή για ισότητα όταν 
χρησιμοποιείται σε ένα περιεχόμενο όπου μια παράσταση λογικής τιμής αναμένεται.</para>
+
+       <para>Για περισσότερες πληροφορίες σχετικά με την εμβέλεια των μεταβλητών, δηλαδή, πότε είναι ορατές 
οι μεταβλητές, δείτε <xref linkend="genius-gel-variables-global"/>.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-variables-built-in">
+        <title>Ενσωματωμένες μεταβλητές</title>
+        <para>
+GEL has a number of built-in ‘variables’, such as
+<varname>e</varname>, <varname>pi</varname> or <varname>GoldenRatio</varname>.  These are widely used 
constants with a preset value, and
+they cannot be assigned new values.
+There are a number of other built-in variables.
+See <xref linkend="genius-gel-function-list-constants"/> for a full list.  Note that <varname>i</varname> is 
not by default
+the square root of negative one (the imaginary number), and is undefined to allow its use as a counter.  If 
you wish to write the imaginary number you need to
+use <userinput>1i</userinput>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-previous-result">
+        <title>Προηγούμενη μεταβλητή αποτελέσματος</title>
+        <para>Οι μεταβλητές <varname>Ans</varname> και <varname>ans</varname> μπορούν να χρησιμοποιηθούν για 
να πάρετε το αποτέλεσμα της τελευταίας παράστασης. Για παράδειγμα, αν έχετε εκτελέσει κάποιο υπολογισμό, για 
να προσθέσετε το 389 στο αποτέλεσμα μπορείτε να κάνετε: <programlisting>Ans+389
+</programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-functions">
+      <title>Χρησιμοποίηση συναρτήσεων</title>
+
+      <para>Σύνταξη: <programlisting>FunctionName(όρισμα1, όρισμα2, ...)
+</programlisting> Παράδειγμα: <programlisting>Factorial(5)
+cos(2*pi)
+gcd(921,317)
+</programlisting> Για να αξιολογήσετε μια συνάρτηση, εισάγετε το όνομα της συνάρτησης, που ακολουθείται από 
τα ορίσματα (αν υπάρχουν) της συνάρτησης σε παρενθέσεις. Αυτό θα επιστρέψει το αποτέλεσμα της εφαρμογής της 
συνάρτησης στα ορίσματά της. Ο αριθμός των ορισμάτων στη συνάρτηση είναι, φυσικά, διαφορετικός για κάθε 
συνάρτηση.</para>
+
+      <para>Υπάρχουν πολλές ενσωματωμένες συναρτήσεις, όπως οι <link 
linkend="gel-function-sin"><function>sin</function></link>, <link 
linkend="gel-function-cos"><function>cos</function></link> και <link 
linkend="gel-function-tan"><function>tan</function></link>. Μπορείτε να χρησιμοποιήσετε την ενσωματωμένη 
εντολή <link linkend="gel-command-help"><function>help</function></link> για να πάρετε έναν κατάλογο 
διαθέσιμων συναρτήσεων, ή δείτε <xref linkend="genius-gel-function-list"/> για έναν πλήρη κατάλογο.</para>
+
+      <tip>
+        <title>Χρήση συμπλήρωσης καρτέλας</title>
+        <para>Μπορείτε να χρησιμοποιήσετε την συμπλήρωση καρτέλας για να βάλετε την Genius να συμπληρώσει τα 
ονόματα των συναρτήσεων για σας. Δοκιμάστε την πληκτρολόγηση των πρώτων λίγων γραμμάτων του ονόματος και 
πατήστε <userinput>Καρτέλα</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Τα ονόματα των συναρτήσεων είναι με διάκριση πεζών/κεφαλαίων</title>
+        <para>Τα ονόματα των συναρτήσεων είναι με διάκριση πεζών/κεφαλαίων. Αυτό σημαίνει ότι οι συναρτήσεις 
με όνομα <function>dosomething</function>, <function>DOSOMETHING</function> και 
<function>DoSomething</function> είναι όλες διαφορετικές συναρτήσεις.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-functions-defining">
+        <title>Ορισμός συναρτήσεων</title>
+        <para>Σύνταξη: <programlisting><![CDATA[function <identifier>(<comma separated arguments>) = 
<function body>
+<identifier> = (`() = <function body>)
+]]></programlisting> Το <literal>`</literal> είναι ο χαρακτήρας ` και υποδηλώνει μια ανώνυμη συνάρτηση. 
Ορίζοντας την σε ένα όνομα μεταβλητής την ορίζετε αποτελεσματικά ως συνάρτηση.</para>
+
+        <para>Μια συνάρτηση παίρνει μηδέν ή περισσότερα ορίσματα που χωρίζονται με κόμμα και επιστρέφει το 
αποτέλεσμα του σώματος της συνάρτησης. Ορίζοντας τις δικές σας συναρτήσεις είναι κυρίως ένα θέμα ευκολίας· 
μια πιθανή χρήση είναι να βάλετε σύνολα συναρτήσεων που ορίστηκαν στα αρχεία GEL, τα οποία η Genius μπορεί να 
φορτώσει για να τα κάνει διαθέσιμα. Παράδειγμα: <programlisting>function addup(a,b,c) = a+b+c
+</programlisting> έπειτα <userinput>addup(1,4,9)</userinput> δίνει 14</para>
+      </sect2>
+
+      <sect2 id="genius-gel-functions-variable-argument-lists">
+        <title>Κατάλογοι ορισμάτων μεταβλητής</title>
+        <para>Αν συμπεριλάβετε <literal>...</literal> μετά το τελευταίο όνομα ορίσματος στη δήλωση 
συνάρτησης, τότε η Genius θα επιτρέψει οποιονδήποτε αριθμό ορισμάτων να περαστεί επί τόπου σε αυτό το όρισμα. 
Αν δεν περαστούν ορίσματα τότε αυτό το όρισμα θα οριστεί σε <constant>null</constant>. Αλλιώς, θα είναι 
οριζόντιο διάνυσμα που περιέχει όλα τα ορίσματα. Για παράδειγμα: <programlisting>function f(a,b...) = b
+</programlisting> Τότε το <userinput>f(1,2,3)</userinput> δίνει <computeroutput>[2,3]</computeroutput>, ενώ 
<userinput>f(1)</userinput> δίνει <constant>null</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-functions-passing-functions">
+        <title>Πέρασμα συναρτήσεων σε συναρτήσεις</title>
+
+        <para>Στο Genius, είναι δυνατό να περάσετε μια συνάρτηση ως ένα όρισμα σε μια άλλη συνάρτηση. Αυτό 
μπορεί να γίνει χρησιμοποιώντας είτε ‘κόμβους συνάρτησης’ ή ανώνυμες συναρτήσεις.</para>
+
+        <para>Αν δεν εισάγετε τις παρενθέσεις μετά από ένα όνομα συνάρτησης, αντί να αξιολογηθεί, η 
συνάρτηση θα επιστραφεί στη θέση της ως ‘κόμβος συνάρτησης’. Ο κόμβος συνάρτησης μπορεί τότε να περαστεί σε 
μια άλλη συνάρτηση. Παράδειγμα: <programlisting>function f(a,b) = a(b)+1;
+function b(x) = x*x;
+f(b,2)
+</programlisting></para>
+        <para>Για να περάσετε συναρτήσεις που δεν ορίζονται, μπορείτε να χρησιμοποιήσετε μια ανώνυμη 
συνάρτηση (δείτε <xref linkend="genius-gel-functions-defining"/>). Δηλαδή, αν θέλετε να περάσετε μια 
συνάρτηση χωρίς να της δώσετε ένα όνομα. Σύνταξη: <programlisting><![CDATA[function(<comma separated 
arguments>) = <function body>
+`(<comma separated arguments>) = <function body>
+]]></programlisting> Παράδειγμα: <programlisting>function f(a,b) = a(b)+1;
+f(`(x) = x*x,2)
+</programlisting> Αυτό θα επιστρέψει 5.</para>
+      </sect2>
+
+
+    <sect2 id="genius-gel-functions-operations">
+      <title>Πράξεις σε συναρτήσεις</title>
+      <para>Κάποιες συναρτήσεις επιτρέπουν αριθμητικές πράξεις και κάποιες συναρτήσεις μοναδικού ορίσματος 
όπως <link linkend="gel-function-exp"><function>exp</function></link> ή <link 
linkend="gel-function-ln"><function>ln</function></link>, λειτουργούν στη συνάρτηση. Για παράδειγμα, η 
<programlisting>exp(sin*cos+4)
+</programlisting> θα επιστρέψει μια συνάρτηση που παίρνει <varname>x</varname> και επιστρέφει 
<userinput>exp(sin(x)*cos(x)+4)</userinput>. Είναι ισοδύναμη λειτουργικά με την πληκτρολόγηση 
<programlisting>`(x) = exp(sin(x)*cos(x)+4)
+</programlisting> Αυτή η πράξη μπορεί να είναι χρήσιμη, όταν ορίζετε γρήγορα συναρτήσεις. Για παράδειγμα για 
να δημιουργήσετε μια συνάρτηση που λέγεται <varname>f</varname> για να εκτελέσετε την παραπάνω πράξη, 
μπορείτε να πληκτρολογήσετε απλά: <programlisting>f = exp(sin*cos+4)
+</programlisting> Μπορεί επίσης να χρησιμοποιηθεί στη σχεδίαση. Για παράδειγμα, για να σχεδιάσετε τετράγωνο 
ημιτόνου μπορείτε να εισάγετε: <programlisting>LinePlot(sin^2)
+</programlisting></para>
+
+      <warning>
+        <para>Δεν μπορούν όλες οι συναρτήσεις να χρησιμοποιηθούν κατ' αυτόν τον τρόπο. Για παράδειγμα, όταν 
χρησιμοποιείτε μια δυαδική πράξη οι συναρτήσεις πρέπει να παίρνουν τον ίδιο αριθμό ορισμάτων.</para>
+      </warning>
+    </sect2>
+
+
+    </sect1>
+
+    <sect1 id="genius-gel-separator">
+      <title>Διαχωριστικό</title>
+      <para>
+             GEL is somewhat different from other languages in how it deals with multiple commands and 
functions.
+             In GEL you must chain commands together with a separator operator.
+That is, if you want to type more than one expression you have to use
+the <literal>;</literal> operator in between the expressions.   This is
+a way in which both expressions are evaluated and the result of the second one (or the last one
+if there is more than two expressions) is returned.
+Suppose you type the following:
+<programlisting>3 ; 5
+</programlisting>
+This expression will yield 5.
+      </para>
+      <para>
+This will require some parenthesizing to make it unambiguous sometimes,
+especially if the <literal>;</literal> is not the top most primitive. This slightly differs from
+other programming languages where the <literal>;</literal> is a terminator of statements, whereas
+in GEL it’s actually a binary operator. If you are familiar with pascal
+this should be second nature. However genius can let you pretend it is a
+terminator to some degree.  If a <literal>;</literal> is found at the end of a parenthesis or a block,
+genius will append a null to it as if you would have written
+<userinput>;null</userinput>.
+This is useful in case you do not want to return a value from say a loop,
+or if you handle the return differently. Note that it will slightly slow down
+the code if it is executed too often as there is one more operator involved.
+      </para>
+      <para>
+             If you are typing expressions in a program you do not have to add a semicolon.  In this case
+             genius will simply print the return value whenever it executes the expression.  However, do 
note that if you are defining a
+             function, the body of the function is a single expression.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comments">
+      <title>Σχόλια</title>
+      <para>
+             GEL is similar to other scripting languages in that <literal>#</literal> denotes
+             a comment, that is text that is not meant to be evaluated.  Everything beyond the
+             pound sign till the end of line will just be ignored.  For example,
+<programlisting># This is just a comment
+# every line in a comment must have its own pound sign
+# in the next line we set x to the value 123
+x=123;
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-modular-evaluation">
+      <title>Μετρικός υπολογισμός</title>
+      <para>
+             Genius implements modular arithmetic.
+To use it you just add "mod &lt;integer&gt;" after
+the expression.  Example:
+<userinput>2^(5!) * 3^(6!) mod 5</userinput>
+It could be possible to do modular arithmetic by computing with integers and then modding in the end with
+the <literal>%</literal> operator, which simply gives the remainder, but
+that may be time consuming if not impossible when working with larger numbers.
+For example, <userinput>10^(10^10) % 6</userinput> will simply not work (the exponent
+will be too large), while
+<userinput>10^(10^10) mod 6</userinput> is instantaneous.  The first expression first tries to compute the 
integer
+<userinput>10^(10^10)</userinput> and then find remainder after division by 6, while the second expression 
evaluates
+everything modulo 6 to begin with.
+      </para>
+      <para>Μπορείτε να υπολογίσετε τους αντίστροφους των αριθμών mod μερικών ακέραιων χρησιμοποιώντας απλά 
ρητούς αριθμούς (φυσικά ο αντίστροφος πρέπει να υπάρχει). Παραδείγματα: <programlisting>10^-1 mod 101
+1/10 mod 101</programlisting> Μπορείτε επίσης να κάνετε υπολογισμό υπολοίπων με πίνακες που συμπεριλαμβάνουν 
λήψη αντίστροφων, δυνάμεων και διαίρεση. Παράδειγμα: <programlisting>A = [1,2;3,4]
+B = A^-1 mod 5
+A*B mod 5</programlisting> Αυτό πρέπει να δίνει τον μοναδιαίο πίνακα ως Β που θα είναι ο αντίστροφος του Α 
mod 5.</para>
+      <para>Μερικές συναρτήσεις όπως <link linkend="gel-function-sqrt"><function>sqrt</function></link> ή 
<link linkend="gel-function-log"><function>log</function></link> δουλεύουν διαφορετικά όταν είναι κατάσταση 
σε modulo. Αυτές τότε δουλεύουν όπως οι διακριτές εκδόσεις που δουλεύουν μέσα στον δακτύλιο των ακεραίων που 
επιλέξατε. Για παράδειγμα: η <programlisting>genius&gt; sqrt(4) mod 7
+=
+[2, 5]
+genius&gt; 2*2 mod 7
+= 4</programlisting><function>sqrt</function> θα επιστρέψει στην πραγματικότητα όλες τις πιθανές 
τετραγωνικές ρίζες.</para>
+      <para>Μην συνδέετε τελεστές mod, απλά τοποθετήστε τους στο τέλος του υπολογισμού, όλοι οι υπολογισμοί 
στην παράσταση στα αριστερά θα εκτελεστούν σε αριθμητική mod. Αν βάλετε μια mod μέσα σε μια mod, θα πάρετε 
απροσδόκητα αποτελέσματα. Αν θέλετε απλά να πάρετε υπόλοιπο ενός απλού αριθμού και να ελέγξετε ακριβώς πότε 
παίρνονται υπόλοιπα, καλύτερα να χρησιμοποιήσετε τον τελεστή <literal>%</literal>. Όταν χρειάζεται να 
συνδέσετε αρκετές παραστάσεις σε αριθμητική υπολοίπων με διαφορετικούς διαιρέτες, μπορεί να είναι καλύτερο να 
χωρίσετε απλά την παράστ
 αση σε αρκετές και να χρησιμοποιήσετε προσωρινές μεταβλητές για να αποφύγετε ένα mod μέσα σε ένα mod.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-operator-list">
+      <title>Κατάλογος τελεστών GEL</title>
+
+      <para>
+             Everything in GEL is really just an expression.  Expressions are stringed together with
+             different operators.  As we have seen, even the separator is simply a binary operator
+             in GEL.  Here is a list of the operators in GEL. 
+      </para>
+
+      <variablelist>
+        <varlistentry>
+         <term><userinput>a;b</userinput></term>
+         <listitem>
+           <para>Το διαχωριστικό, δίνει και την <varname>a</varname> και την <varname>b</varname>, αλλά 
επιστρέφει μόνο το αποτέλεσμα της <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a=b</userinput></term>
+         <listitem>
+           <para>Ο τελεστής ανάθεσης. Αυτός αναθέτει τη <varname>b</varname> στη <varname>a</varname> (η 
<varname>a</varname> πρέπει να είναι μια έγκυρη <link linkend="genius-gel-lvalues">lvalue</link>) (σημειώστε 
όμως ότι αυτός ο τελεστής μπορεί να μεταφραστεί σε <literal>==</literal> αν χρησιμοποιηθεί σε μια θέση όπου 
αναμένεται παράσταση λογικής τιμής)</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:=b</userinput></term>
+         <listitem>
+           <para>Ο τελεστής ανάθεσης. Εκχωρεί την <varname>b</varname> στην <varname>a</varname> (η 
<varname>a</varname> πρέπει να είναι μια έγκυρη <link linkend="genius-gel-lvalues">lvalue</link>). Αυτός 
είναι διαφορετικός από τον <literal>=</literal>, επειδή δεν μεταφράζεται ποτέ σε μια 
<literal>==</literal>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>|a|</userinput></term>
+         <listitem>
+           <para>
+                  Absolute value.
+                  In case the expression is a complex number the result will be the modulus
+(distance from the origin).  For example:
+<userinput>|3 * e^(1i*pi)|</userinput>
+returns 3.
+         </para>
+          <para>Δείτε <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld</ulink> για 
περισσότερες πληροφορίες.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a^b</userinput></term>
+         <listitem>
+           <para>Εκθετοποίηση, ανυψώνει μια <varname>a</varname> στη δύναμη <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.^b</userinput></term>
+         <listitem>
+           <para>Εκθετοποίηση στοιχείου κατά στοιχείο. Ανυψώνει κάθε στοιχείο ενός πίνακα 
<varname>a</varname> στη δύναμη <varname>b</varname>. Ή αν η <varname>b</varname> είναι ένας πίνακας του 
ίδιου μεγέθους όπως η <varname>a</varname>, τότε κάνει την πράξη στοιχείο κατά στοιχείο. Αν η 
<varname>a</varname> είναι ένας αριθμός και η <varname>b</varname> είναι ένας πίνακας, τότε δημιουργεί έναν 
πίνακα του ίδιου μεγέθους όπως η <varname>b</varname> με τη <varname>a</varname> υψωμένη σε όλες τις 
διαφορετικές δυνάμεις στην <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a+b</userinput></term>
+         <listitem>
+           <para>Πρόσθεση. Προσθέτει δύο αριθμούς, πίνακες, συναρτήσεις ή συμβολοσειρές. Αν προσθέτετε μια 
συμβολοσειρά σε ο,τιδήποτε το αποτέλεσμα θα είναι απλά μια συμβολοσειρά. Αν ο ένας είναι ένας τετραγωνικός 
πίνακας και ο άλλος ένας αριθμός, τότε ο αριθμός πολλαπλασιάζεται με τον ταυτοτικό πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a-b</userinput></term>
+         <listitem>
+           <para>Αφαίρεση. Αφαιρεί δύο αριθμούς, πίνακες ή συναρτήσεις.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a*b</userinput></term>
+         <listitem>
+           <para>Πολλαπλασιασμός. Αυτός είναι ο κανονικός πίνακας πολλαπλασιασμού.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.*b</userinput></term>
+         <listitem>
+           <para>Πολλαπλασιασμός στοιχείο με στοιχείο αν οι <varname>a</varname> και <varname>b</varname> 
είναι πίνακες.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a/b</userinput></term>
+         <listitem>
+           <para>Διαίρεση. Όταν οι <varname>a</varname> και <varname>b</varname> είναι μόνο αριθμοί, αυτή 
είναι η κανονική διαίρεση. Όταν είναι πίνακες, τότε αυτή είναι ισοδύναμη με 
<userinput>a*b^-1</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a./b</userinput></term>
+         <listitem>
+           <para>
+                  Element by element division.  Same as <userinput>a/b</userinput> for
+                  numbers, but operates element by element on matrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a\b</userinput></term>
+         <listitem>
+           <para>Οπίσθια διαίρεση. Είναι η ίδια με <userinput>b/a</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.\b</userinput></term>
+         <listitem>
+           <para>Οπίσθια διαίρεση στοιχείου με στοιχείο.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a%b</userinput></term>
+         <listitem>
+           <para>
+            The mod operator.  This does not turn on the <link 
linkend="genius-gel-modular-evaluation">modular mode</link>, but
+             just returns the remainder of integer division
+             <userinput>a/b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.%b</userinput></term>
+         <listitem>
+           <para>
+             Element by element mod operator.  Returns the remainder
+            after element by element integer division
+            <userinput>a./b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a mod b</userinput></term>
+         <listitem>
+           <para>Τελεστής υπολογισμού υπολοίπων. Η παράσταση <varname>a</varname> υπολογίζει το modulo 
<varname>b</varname>. Δείτε <xref linkend="genius-gel-modular-evaluation"/>. Κάποιες συναρτήσεις και κάποιοι 
τελεστές συμπεριφέρονται διαφορετικά με το ισοϋπόλοιπο ενός ακεραίου.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!</userinput></term>
+         <listitem>
+           <para>Παραγοντικός τελεστής. Αυτό είναι παρόμοιο με 
<userinput>1*...*(n-2)*(n-1)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!!</userinput></term>
+         <listitem>
+           <para>Διπλός παραγοντικός τελεστής. Αυτός είναι παρόμοιος με 
<userinput>1*...*(n-4)*(n-2)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a==b</userinput></term>
+         <listitem>
+           <para>Τελεστής ισότητας. Επιστρέφει <constant>αληθές</constant> ή <constant>ψευδές</constant> 
ανάλογα με το αν οι <varname>a</varname> και <varname>b</varname> είναι ίσες ή όχι.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!=b</userinput></term>
+         <listitem>
+           <para>Τελεστής ανισότητας, επιστρέφει <constant>αληθές</constant> αν η <varname>a</varname> δεν 
είναι ίση με την <varname>b</varname>, αλλιώς επιστρέφει <constant>ψευδές</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;&gt;b</userinput></term>
+         <listitem>
+           <para>Εναλλακτικός τελεστής ανισότητας, επιστρέφει <constant>αληθές</constant> αν η 
<varname>a</varname> δεν είναι ίση με την <varname>b</varname>, αλλιώς επιστρέφει 
<constant>ψευδές</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>Τελεστής μικρότερος από ή ίσος, επιστρέφει <constant>αληθές</constant> αν 
<varname>a</varname> είναι μικρότερο από ή ίσο με <varname>b</varname>, αλλιώς επιστρέφει 
<constant>ψευδές</constant>. Αυτοί μπορούν να συνδεθούν όπως στο <userinput>a &lt;= b &lt;= c</userinput> 
(μπορούν επίσης να συνδυαστούν με τον τελεστή λιγότερο από).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>
+             Greater than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt;= b &gt;= c</userinput>
+            (and they can also be combined with the greater than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a&lt;b</userinput></term>
+         <listitem>
+           <para>
+             Less than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt; b &lt; c</userinput>
+            (they can also be combined with the less than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;b</userinput></term>
+         <listitem>
+           <para>
+             Greater than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt; b &gt; c</userinput>
+            (they can also be combined with the greater than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=&gt;b</userinput></term>
+         <listitem>
+           <para>Τελεστής σύγκρισης. Αν <varname>a</varname> είναι ίσο με <varname>b</varname> επιστρέφει 0, 
αν <varname>a</varname> είναι μικρότερο από <varname>b</varname> επιστρέφει -1 και αν <varname>a</varname> 
είναι μεγαλύτερο από <varname>b</varname> επιστρέφει 1.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a και b</userinput></term>
+         <listitem>
+           <para>Λογικό και. Επιστρέφει αληθές αν αμφότερα τα <varname>a</varname> και <varname>b</varname> 
είναι αληθή, αλλιώς επιστρέφει ψευδές. Αν είναι δοσμένοι οι αριθμοί, οι μη μηδενικοί αριθμοί αντιμετωπίζονται 
ως αληθείς.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a ή b</userinput></term>
+         <listitem>
+           <para>
+             Logical or.
+            Returns true if either
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a xor b</userinput></term>
+         <listitem>
+           <para>
+             Logical xor.
+            Returns true if exactly one of
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>όχι a</userinput></term>
+         <listitem>
+           <para>
+                  Logical not.  Returns the logical negation of <varname>a</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>-a</userinput></term>
+         <listitem>
+           <para>
+             Negation operator.  Returns the negative of a number or a matrix (works element-wise on a 
matrix).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>&amp;a</userinput></term>
+         <listitem>
+           <para>Αναφορά μεταβλητής (για το πέρασμα μιας αναφοράς σε μια μεταβλητή). Δείτε <xref 
linkend="genius-gel-references"/>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>*a</userinput></term>
+         <listitem>
+           <para>Αποαναφορά μεταβλητής (για πρόσβαση σε μια αναφερθείσα μεταβλητή). Δείτε <xref 
linkend="genius-gel-references"/>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a'</userinput></term>
+         <listitem>
+           <para>Αναστροφή συζυγούς πίνακα. Δηλαδή, οι γραμμές και οι στήλες εναλλάσσονται και παίρνουμε τον 
συζυγή μιγαδικό όλων των καταχωρίσεων. Δηλαδή αν τα στοιχεία i,j της <varname>a</varname> είναι x+iy, τότε τα 
στοιχεία j,i του <userinput>a'</userinput> είναι x-iy.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.'</userinput></term>
+         <listitem>
+           <para>Η αναστροφή πίνακα, δεν παίρνει τον συζυγή μιγαδικό των καταχωρίσεων. Δηλαδή, τα στοιχεία 
i,j της <varname>a</varname> γίνονται τα στοιχεία του <userinput>a.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,c)</userinput></term>
+         <listitem>
+           <para>
+            Get element of a matrix in row <varname>b</varname> and column
+            <varname>c</varname>.   If <varname>b</varname>,
+            <varname>c</varname> are vectors, then this gets the corresponding
+            rows, columns or submatrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,)</userinput></term>
+         <listitem>
+           <para>Λήψη γραμμής ενός πίνακα (ή πολλαπλών γραμμών αν το <varname>b</varname> είναι ένα 
διάνυσμα).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,:)</userinput></term>
+         <listitem>
+           <para>Ίδιο με το παραπάνω.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(,c)</userinput></term>
+         <listitem>
+           <para>Λήψη στήλης ενός πίνακα (ή στηλών αν το <varname>c</varname> είναι ένα διάνυσμα).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(:,c)</userinput></term>
+         <listitem>
+           <para>Ίδιο με το παραπάνω.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b)</userinput></term>
+         <listitem>
+           <para>Λήψη ενός στοιχείου από έναν πίνακα αντιμετωπίζοντας τον ως διάνυσμα. Αυτό θα διατρέξει τον 
πίνακα κατά τη γραμμή.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b</userinput></term>
+         <listitem>
+           <para>Δόμηση ενός διανύσματος από το <varname>a</varname> στο <varname>b</varname> (ή ορίστε 
γραμμή, περιοχή στήλης για τον τελεστή <literal>@</literal>). Για παράδειγμα για να πάρετε τις γραμμές 2 
μέχρι 4 του πίνακα <varname>Α</varname> μπορούμε να κάνουμε <programlisting>A@(2:4,)
+            </programlisting> ως <userinput>2:4</userinput> που θα επιστρέψει ένα διάνυσμα 
<userinput>[2,3,4]</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b:c</userinput></term>
+         <listitem>
+           <para>Δόμηση ενός διανύσματος από <varname>a</varname> σε <varname>c</varname> με 
<varname>b</varname> ως ένα βήμα. Δηλαδή για παράδειγμα <programlisting>genius&gt; 1:2:9
+=
+`[1, 3, 5, 7, 9]
+</programlisting></para>
+          <para>
+            When the numbers involved are floating point numbers, for example
+            <userinput>1.0:0.4:3.0</userinput>, the output is what is expected
+            even though adding 0.4 to 1.0 five times is actually just slightly
+            more than 3.0 due to the way that floating point numbers are
+            stored in base 2 (there is no 0.4, the actual number stored is
+            just ever so slightly bigger).  The way this is handled is the
+            same as in the for, sum, and prod loops.  If the end is within
+            <userinput>2^-20</userinput> times the step size of the endpoint,
+            the endpoint is used and we assume there were roundoff errors.
+            This is not perfect, but it handles the majority of the cases.
+            This check is done only from version 1.0.18 onwards, so execution
+            of your code may differ on older versions.  If you want to avoid
+            dealing with this issue, use actual rational numbers, possibly
+            using the <function>float</function> if you wish to get floating
+            point numbers in the end.  For example
+            <userinput>1:2/5:3</userinput> does the right thing and
+            <userinput>float(1:2/5:3)</userinput> even gives you floating
+            point numbers and is ever so slightly more precise than
+            <userinput>1.0:0.4:3.0</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>(a)i</userinput></term>
+         <listitem>
+           <para>
+            Make <varname>a</varname> into an imaginary number (multiply <varname>a</varname> by the
+            imaginary).  Normally the imaginary number <varname>i</varname> is
+            written as <userinput>1i</userinput>.  So the above is equal to
+            <programlisting>(a)*1i
+            </programlisting>
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>`a</userinput></term>
+         <listitem>
+           <para>Βάλτε ` σε ένα αναγνωριστικό έτσι ώστε να μην υπολογιστεί. Ή βάλτε ` σε έναν πίνακα, έτσι 
ώστε να μην επεκταθεί.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a swapwith b</userinput></term>
+         <listitem>
+           <para>Εναλλαγή τιμής του <varname>a</varname> με την τιμή του <varname>b</varname>. Πρός το παρόν 
δεν λειτουργεί σε περιοχές στοιχείων πίνακα. Επιστρέφει <constant>null</constant>. Διαθέσιμο από την έκδοση 
1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a</userinput></term>
+         <listitem>
+           <para>Αύξηση της μεταβλητής <varname>a</varname> κατά 1. Αν η <varname>a</varname> είναι ένας 
πίνακας, τότε αυξάνεται κάθε στοιχείο. Αυτό είναι ισοδύναμο με το <userinput>a=a+1</userinput>, αλλά είναι 
κάπως γρηγορότερο. Επιστρέφει <constant>null</constant>. Διαθέσιμο από την έκδοση 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a by b</userinput></term>
+         <listitem>
+           <para>Αυξάνει τη μεταβλητή <varname>a</varname> κατά <varname>b</varname>. Αν η 
<varname>a</varname> είναι ένας πίνακας, τότε αυξάνεται κάθε στοιχείο. Αυτό είναι ισοδύναμο με το 
<userinput>a=a+b</userinput>, αλλά είναι κάπως γρηγορότερο. Επιστρέφει <constant>null</constant>. Διαθέσιμο 
από την έκδοση 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+
+<note>
+<para>Ο τελεστής @() καθιστά τον: τελεστή πιο χρήσιμο. Με αυτό μπορείτε να ορίσετε περιοχές ενός πίνακα. 
Έτσι ώστε a@(2:4,6) είναι οι γραμμές 2,3,4 της στήλης 6. Ή a@(,1:2) θα σας πάρει τις πρώτες δύο στήλες ενός 
πίνακα. Μπορείτε επίσης να αναθέσετε στον τελεστή @(), όσο η δεξιά τιμή είναι ο πίνακας που ταιριάζει στην 
περιοχή σε μέγεθος, ή αν είναι οποιουδήποτε άλλου τύπου τιμής.</para>
+</note>
+
+<note>
+<para>Οι τελεστές σύγκρισης (εκτός από τον τελεστή &lt;=&gt; που συμπεριφέρεται κανονικά), δεν είναι αυστηρά 
δυαδικοί τελεστές, μπορούν στην πραγματικότητα να ομαδοποιηθούν με τον κανονικό μαθηματικό τρόπο, π.χ.: 
(1&lt;x&lt;=y&lt;5) είναι μια επιτρεπτή παράσταση λογικών τιμών και σημαίνει απλά αυτό που πρέπει, δηλαδή 
(1&lt;x and x≤y and y&lt;5)</para>
+</note>
+
+<note>
+<para>Ο μοναδιαίος τελεστής μείον λειτουργεί με διαφορετικό τρόπο ανάλογα με το πού εμφανίζεται. Αν 
εμφανίζεται πριν από ένα αριθμό έχει στενή προτεραιότητα, αν εμφανίζεται μπροστά από μια παράσταση έχει 
μικρότερη προτεραιότητα από τη δύναμη και τους παραγοντικούς τελεστές. Έτσι για παράδειγμα 
<userinput>-1^k</userinput> είναι στην πραγματικότητα <userinput>(-1)^k</userinput>, αλλά 
<userinput>-foo(1)^k</userinput> είναι στην πραγματικότητα <userinput>-(foo(1)^k)</userinput>. Γιαυτό να 
προσέχετε τη χρήση του και αν αμφιβάλετε, προσθέστε παρενθέσεις.</para>
+</note>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL Programming ========================== -->
+  <chapter id="genius-gel-programming">
+    <title>Προγραμματισμός με GEL</title>
+
+    <sect1 id="genius-gel-conditionals">
+      <title>Εξαρτήσεις</title>
+      <para>Σύνταξη: <programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
+]]></programlisting> Αν <literal>else</literal> παραλείπεται, τότε αν η <literal>expression1</literal> δίνει 
<constant>ψευδές</constant> ή 0, επιστρέφεται η <literal>NULL</literal>.</para>
+      <para>Παραδείγματα: <programlisting><![CDATA[if(a==5)then(a=a-1)
+if b<a then b=a
+if c>0 then c=c-1 else c=0
+a = ( if b>0 then b else 1 )
+]]></programlisting> Σημειώστε ότι <literal>=</literal> θα μεταφραστεί σε <literal>==</literal> αν 
χρησιμοποιηθεί μέσα στην παράσταση για <literal>if</literal>, έτσι το <programlisting>if a=5 then a=a-1
+</programlisting> θα ερμηνευτεί ως: <programlisting>if a==5 then a:=a-1
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loops">
+      <title>Βρόχοι</title>
+
+      <sect2 id="genius-gel-loops-while">
+        <title>Βρόχοι While</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[while <expression1> do <expression2>
+until <expression1> do <expression2>
+do <expression2> while <expression1>
+do <expression2> until <expression1>]]></programlisting>
+
+       These are similar to other languages.  However, as in GEL it is simply an expression that must have 
some return value, these
+       constructs will simply return the result of the last iteration or <literal>NULL</literal> if no 
iteration was done.  In the boolean expression, <literal>=</literal> is translated into <literal>==</literal> 
just as for the <literal>if</literal> statement.
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-for">
+        <title>Βρόχοι For</title>
+        <para>Σύνταξη: <programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
+for <identifier> = <from> to <to> by <increment> do <body>]]></programlisting> Βρόχος με αναγνωριστικό 
ορίζεται για όλες τις τιμές από το <literal>&lt;from&gt;</literal> μέχρι το <literal>&lt;to&gt;</literal>, 
χρησιμοποιώντας προαιρετικά μια αύξηση άλλη από 1. Αυτοί είναι γρηγορότεροι, πιο ωραίοι και περισσότερο 
συμπαγείς από τους κανονικούς βρόχους όπως παραπάνω, αλλά λιγότερο ευέλικτοι. Το αναγνωριστικό πρέπει να 
είναι ένα αναγνωριστικό και δεν μπορεί να είναι μια αποαναφορά. Η τιμή του αναγνωριστικού είναι η τελευταία 
τιμή του ή <literal>&lt;from&gt;</literal> αν το σώμα δεν υπολογίστηκε ποτέ. Η μεταβλητή εγγ
 υάται την αρχικοποίηση μετά από ένα βρόχο, έτσι μπορείτε να την χρησιμοποιήσετε με ασφάλεια. Επίσης τα 
<literal>&lt;from&gt;</literal>, <literal>&lt;to&gt;</literal> και <literal>&lt;increment&gt;</literal> 
πρέπει να είναι μη μιγαδικές τιμές. Το <literal>&lt;to&gt;</literal> δεν είναι βέβαιο ότι θα επιτευχθεί, αλλά 
δεν θα ξεπεραστεί ποτέ, για παράδειγμα το παρακάτω εκτυπώνει περιττούς αριθμούς από 1 έως 19: 
<programlisting>for i = 1 to 20 by 2 do print(i)
+</programlisting></para>
+        <para>
+               When one of the values is a floating point number, then the
+               final check is done to within 2^-20 of the step size.  That is,
+               even if we overshoot by 2^-20 times the "by" above, we still execute the last
+               iteration.  This way 
+<programlisting>for x = 0 to 1 by 0.1 do print(x)
+</programlisting>
+does the expected even though adding 0.1 ten times becomes just slightly more than 1.0 due to the way that 
floating point numbers
+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
+the majority of the cases.  If you want to avoid dealing with this issue, use actual rational numbers for 
example:
+<programlisting>for x = 0 to 1 by 1/10 do print(x)
+</programlisting>
+               This check is done only from version 1.0.16 onwards, so execution of your code may differ on 
older versions.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-foreach">
+        <title>Βρόχοι Foreach</title>
+        <para>Σύνταξη: <programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting> 
Για κάθε στοιχείο στον πίνακα, πηγαίνοντας γραμμή ανά γραμμή από αριστερά προς τα δεξιά, εκτελούμε το σώμα με 
το αναγνωριστικό ορισμένο στο τρέχον στοιχείο. Για να εκτυπώσετε τους αριθμούς 1,2,3 και 4 με αυτήν τη σειρά 
θα μπορούσατε να κάνετε: <programlisting>for n in [1,2:3,4] do print(n)
+</programlisting> Αν επιθυμείτε να διασχίσετε τις γραμμές και τις στήλες ενός πίνακα, μπορείτε να 
χρησιμοποιήσετε τις συναρτήσεις RowsOf και ColumnsOf που επιστρέφουν ένα διάνυσμα γραμμών ή στηλών του 
πίνακα. Έτσι, το <programlisting>for n in RowsOf ([1,2:3,4]) do print(n)
+</programlisting> θα εκτυπώσει [1,2] και έπειτα [3,4].</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-break-continue">
+        <title>Break και Continue (διακοπή και συνέχιση)</title>
+        <para>Μπορείτε επίσης να χρησιμοποιήσετε τις εντολές <literal>break</literal> και 
<literal>continue</literal> σε βρόχους. Η εντολή <literal>continue</literal> θα επανεκκινήσει τον τρέχοντα 
βρόχο στην επόμενη του επανάληψη, ενώ η εντολή <literal>break</literal> φεύγει από τον τρέχοντα βρόχο. 
<programlisting><![CDATA[while(<expression1>) do (
+  if(<expression2>) break
+  else if(<expression3>) continue;
+  <expression4>
+)
+]]></programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-sums-products">
+      <title>Sums και Products (αθροίσματα και γινόμενα)</title>
+      <para>Σύνταξη: <programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
+sum <identifier> = <from> to <to> by <increment> do <body>
+sum <identifier> in <matrix> do <body>
+prod <identifier> = <from> to <to> do <body>
+prod <identifier> = <from> to <to> by <increment> do <body>
+prod <identifier> in <matrix> do <body>]]></programlisting> Αν αντικαταστήσετε το <literal>for</literal> με 
το <literal>sum</literal> ή <literal>prod</literal>, τότε θα πάρετε ένα άθροισμα ή γινόμενο αντί για έναν 
βρόχο <literal>for</literal> loop. Αντί για επιστροφή στην τελευταία τιμή, αυτά θα επιστρέψουν το άθροισμα ή 
το γινόμενο των τιμών αντίστοιχα.</para>
+      <para>Αν δεν εκτελεστεί κανένα σώμα (για παράδειγμα <userinput>sum i=1 to 0 do ...</userinput>) τότε 
το <literal>sum</literal> επιστρέφει 0 και το <literal>prod</literal> επιστρέφει 1 όπως είναι η τυπική 
σύμβαση.</para>
+      <para>Για αριθμούς κινητής υποδιαστολής η ίδια στρογγυλοποίηση προστασίας σφάλματος γίνεται όπως στον 
βρόχο for. Δείτε <xref linkend="genius-gel-loops-for"/>.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-comparison-operators">
+      <title>Τελεστές σύγκρισης</title>
+      <para>Οι παρακάτω τυπικοί τελεστές σύγκρισης υποστηρίζονται στο GEL και έχουν την προφανή σημασία: 
<literal>==</literal>, <literal>&gt;=</literal>, <literal>&lt;=</literal>, <literal>!=</literal>, 
<literal>&lt;&gt;</literal>, <literal>&lt;</literal>, <literal>&gt;</literal>. Επιστρέφουν 
<constant>αληθές</constant> ή <constant>ψευδές</constant>. Οι τελεστές <literal>!=</literal> και 
<literal>&lt;&gt;</literal> είναι το ίδιο πράγμα και σημαίνουν "δεν είναι ίσο με". Η GEL επίσης υποστηρίζει 
τον τελεστή <literal>&lt;=&gt;</literal>, που επιστρέφει -1 αν το αριστερό μέλος είναι μικρότερο, 0 αν και τα 
δύο μέλη είναι ίσα, 1 αν το αριστερό μέλος είναι μεγαλύτερο.</para>
+
+      <para>Κανονικά <literal>=</literal> μεταφράζεται σε <literal>==</literal> αν συμβεί να είναι κάπου 
όπου το GEL αναμένει μια συνθήκη όπως στη συνθήκη if. Για παράδειγμα <programlisting>if a=b then c
+if a==b then c
+</programlisting> είναι το ίδιο πράγμα στη GEL. Όμως, θα πρέπει να χρησιμοποιήσετε πραγματικά το 
<literal>==</literal> ή <literal>:=</literal> όταν θέλετε να συγκρίνετε ή να αναθέσετε αντίστοιχα, αν θέλετε 
ο κώδικας σας να είναι ευανάγνωστος και να αποφύγετε λάθη.</para>
+
+      <para>Όλοι οι τελεστές σύγκρισης (εκτός από τον τελεστή <literal>&lt;=&gt;</literal> που 
συμπεριφέρεται κανονικά), δεν είναι αυστηρά δυαδικοί τελεστές, μπορούν στην πραγματικότητα να ομαδοποιηθούν 
με τον κανονικό μαθηματικό τρόπο, π.χ.: (<literal>1&lt;x&lt;=y&lt;5</literal>) είναι μια επιτρεπτή παράσταση 
λογικών τιμών και σημαίνει ακριβώς αυτό που πρέπει, δηλαδή (1&lt;x and x≤y and y&lt;5)</para>
+      <para>Για να δημιουργήσετε λογικές παραστάσεις χρησιμοποιήστε τις λέξεις <literal>not</literal>, 
<literal>and</literal>, <literal>or</literal>, <literal>xor</literal>. Οι τελεστές <literal>or</literal> και 
<literal>and</literal> είναι ειδικές οντότητες επειδή υπολογίζουν τα ορίσματά τους ένα προς ένα, έτσι το 
συνηθισμένο κόλπο για υπό όρο υπολογισμό δουλεύει εδώ επίσης. Για παράδειγμα, <literal>1 or a=1</literal> δεν 
θα ορίσουν <literal>a=1</literal> αφού το πρώτο όρισμα ήταν αληθές.</para>
+    </sect1>
+
+      <sect1 id="genius-gel-variables-global">
+        <title>Καθολικές μεταβλητές και εμβέλεια μεταβλητών</title>
+       <para>
+         GEL is a
+         <ulink url="https://en.wikipedia.org/wiki/Scope_%28programming%29";>
+         dynamically scoped language</ulink>.  We will explain what this
+         means below.  That is, normal variables and functions are dynamically
+         scoped.  The exception are 
+         <link linkend="genius-gel-parameters">parameter variables</link>,
+         which are always global.
+       </para>
+       <para>Όπως οι περισσότερες γλώσσες προγραμματισμού, η GEL έχει διαφορετικούς τύπους μεταβλητών. 
Κανονικά, όταν μια μεταβλητή ορίζεται σε μια συνάρτηση, είναι ορατή από αυτή τη συνάρτηση και από όλες τις 
συναρτήσεις που καλούνται (όλες με υψηλότερα περιεχόμενα). Για παράδειγμα, ας υποθέσουμε ότι μια συνάρτηση 
<function>f</function> ορίζει μια μεταβλητή <varname>a</varname> και έπειτα καλεί τη συνάρτηση 
<function>g</function>. Τότε η συνάρτηση <function>g</function> μπορεί να αναφέρει την <varname>a</varname>. 
Αλλά μόλις η <function>f</function> επιστρέφει, η μεταβλητή <varname>a</varname> βγαίνει εκτός εμβέλ�
 �ιας. Για παράδειγμα, ο παρακάτω κώδικας θα εμφανίσει 5. Η συνάρτηση <function>g</function> δεν μπορεί να 
κληθεί στο ανώτατο επίπεδο (έξω από τη <function>f</function> ως <varname>a</varname> δεν θα οριστεί). 
<programlisting>function f() = (a:=5; g());
+function g() = print(a);
+f();
+</programlisting></para>
+        <para>Αν ορίσετε μια μεταβλητή μέσα σε μια συνάρτηση θα επικαλύψει οποιεσδήποτε μεταβλητές ορίστηκαν 
στις συναρτήσεις κλήσης. Για παράδειγμα, τροποποιούμε τον παραπάνω κώδικα και γράφουμε: 
<programlisting>function f() = (a:=5; g());
+function g() = print(a);
+a:=10;
+f();
+</programlisting> Αυτός ο κώδικας θα εμφανίσει ακόμα 5. Αλλά αν καλέσετε την <function>g</function> έξω από 
την <function>f</function>, τότε θα πάρετε ένα αποτέλεσμα 10. Σημειώστε ότι, ο ορισμός μιας 
<varname>a</varname> σε 5 μέσα σε μια <function>f</function> δεν αλλάζει την τιμή της <varname>a</varname> 
στο ανώτατο (καθολικό) επίπεδο, έτσι αν τώρα ελέγξετε την τιμή της <varname>a</varname> θα είναι ακόμα 
10.</para>
+       <para>Τα ορίσματα συναρτήσεων είναι ακριβώς όπως οι μεταβλητές που ορίστηκαν μέσα στη συνάρτηση, 
εκτός από το ότι είναι αρχικοποιημένες με την τιμή που περάστηκε στη συνάρτηση. Πέρα από αυτό το σημείο, 
αντιμετωπίζονται ακριβώς όπως όλες οι άλλες μεταβλητές που ορίστηκαν μέσα στη συνάρτηση.</para>
+       <para>Οι συναρτήσεις αντιμετωπίζονται ακριβώς όπως οι μεταβλητές. Συνεπώς, μπορείτε τοπικά να 
επανορίσετε τις συναρτήσεις. Κανονικά, (στο ανώτατο επίπεδο) δεν μπορείτε να επανορίσετε προστατευμένες 
μεταβλητές και συναρτήσεις. Αλλά τοπικά μπορείτε να το κάνετε. Θεωρείστε την ακόλουθη συνεδρία: 
<screen><prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
+= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
+<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
+= 1e20
+</screen></para>
+       <para>
+         Functions and variables defined at the top level are
+         considered global.  They are visible from anywhere.  As we
+         said the following function <function>f</function>
+         will not change the value of <varname>a</varname> to 5.
+<programlisting>a=6;
+function f() = (a:=5);
+f();
+</programlisting>
+         Sometimes, however, it is necessary to set
+a global variable from inside a function.  When this behavior is needed,
+use the
+<link linkend="gel-function-set"><function>set</function></link> function. Passing a string or a quoted 
identifier to
+this function sets the variable globally (on the top level).
+For example, to set
+<varname>a</varname> to the value 3 you could call:
+<programlisting>set(`a,3)
+</programlisting>
+or:
+<programlisting>set("a",3)
+</programlisting>
+        </para>
+        <para>Η συνάρτηση <function>set</function> ορίζει πάντα την καθολική ανωτάτου επιπέδου. Δεν υπάρχει 
τρόπος να οριστεί μια τοπική μεταβλητή σε κάποια συνάρτηση από μια υπορουτίνα. Αν αυτό απαιτείται, πρέπει να 
χρησιμοποιηθεί το πέρασμα με αναφορά.</para>
+       <para>
+               See also the
+               <link linkend="gel-function-SetElement"><function>SetElement</function></link> and
+               <link linkend="gel-function-SetVElement"><function>SetVElement</function></link> functions.
+       </para>
+       <para>Για να ανακεφαλαιώσουμε σε μια πιο τεχνική γλώσσα: Η Genius λειτουργεί με διαφορετικά 
αριθμημένα περιεχόμενα. Το ανώτατο επίπεδο είναι το περιεχόμενο 0 (μηδέν). Όποτε μια συνάρτηση εισέρχεται, το 
περιεχόμενο αυξάνεται και όταν η συνάρτηση επιστρέφει το περιεχόμενο μειώνεται. Μια συνάρτηση ή μια μεταβλητή 
είναι πάντα ορατή από όλα τα περιεχόμενα με υψηλότερη αρίθμηση. Όταν μια μεταβλητή ορίζεται σε ένα 
περιεχόμενο χαμηλότερης αρίθμησης, τότε ο ορισμός αυτής της μεταβλητής επιδρά στη δημιουργία μιας νέας 
τοπικής μεταβλητής με τον τρέ�
 �οντα αριθμό περιεχομένου και αυτή η μεταβλητή θα είναι τώρα ορατή από όλα τα περιεχόμενα με υψηλότερη 
αρίθμηση.</para>
+       <para>Υπάρχουν επίσης αληθινές τοπικές μεταβλητές, που δεν φαίνονται από οπουδήποτε εκτός από το 
τρέχον περιεχόμενο. Επίσης όταν επιστρέφονται συναρτήσεις με τιμή μπορεί να αναφέρονται σε μεταβλητές μη 
ορατές από υψηλότερο περιεχόμενο και αυτό μπορεί να είναι ένα πρόβλημα. Δείτε τις ενότητες <link 
linkend="genius-gel-true-local-variables">Αληθείς τοπικές μεταβλητές</link> και <link 
linkend="genius-gel-returning-functions">Επιστροφή συναρτήσεων</link>.</para>
+      </sect1>
+
+      <sect1 id="genius-gel-parameters">
+        <title>Μεταβλητές παραμέτρων</title>
+       <para>Όπως είπαμε πριν, υπάρχουν ειδικές μεταβλητές που λέγονται παράμετροι που υπάρχουν σε όλες τις 
εμβέλειες. Για να δηλώσετε μια παράμετρο που λέγεται <varname>foo</varname> με την αρχική τιμή 1, γράφουμε 
<programlisting><![CDATA[parameter foo = 1
+]]></programlisting> Από κει και πέρα η <varname>foo</varname> είναι μια αυστηρά καθολική μεταβλητή. 
Ορίζοντας την <varname>foo</varname> μέσα σε οποιαδήποτε συνάρτηση θα τροποποιεί τη μεταβλητή σε όλα τα 
περιεχόμενα, δηλαδή, οι συναρτήσεις δεν έχουν ένα ιδιωτικό αντίγραφο των παραμέτρων.</para>
+        <para>Όταν αποκαθορίζετε μια παράμετρο χρησιμοποιώντας τη συνάρτηση <link 
linkend="gel-function-undefine"><function>undefine</function></link>, σταματά να είναι μια παράμετρος.</para>
+        <para>
+         Some parameters are built-in and modify the behavior of genius.
+        </para>
+      </sect1>
+
+    <sect1 id="genius-gel-returning">
+      <title>Επιστροφή</title>
+       <para>Κανονικά, μια συνάρτηση είναι μία ή πολλές παραστάσεις χωρισμένες με ; και η τιμή της 
τελευταίας παράστασης επιστρέφεται. Αυτό είναι θαυμάσιο για απλές συναρτήσεις, αλλά μερικές φορές δεν θέλετε 
μια συνάρτηση νε επιστρέφει το τελευταίο υπολογισμένο πράγμα. Μπορείτε, για παράδειγμα, να θέλετε να 
επιστρέψετε από το μέσο μιας συνάρτησης. Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί 
<literal>return</literal>. Η <literal>return</literal> παίρνει ένα όρισμα, που είναι η τιμή για 
επιστροφή.</para>
+      <para>Παράδειγμα: <programlisting><![CDATA[function f(x) = (
+  y=1;
+  while true do (
+    if x>50 then return y;
+    y=y+1;
+    x=x+1
+  )
+)
+]]></programlisting></para>
+    </sect1>
+
+
+    <sect1 id="genius-gel-references">
+      <title>Αναφορές</title>
+      <para>Μπορεί να είναι απαραίτητο για μερικές συναρτήσεις να επιστραφούν περισσότερες από μία τιμές. 
Αυτό μπορεί να επιτευχθεί επιστρέφοντας ένα διάνυσμα τιμών, αλλά πολλές φορές, είναι βολικό να 
χρησιμοποιήσετε το πέρασμα μιας αναφοράς σε μια μεταβλητή. Περνάτε μια αναφορά σε μια μεταβλητή σε μια 
συνάρτηση και η συνάρτηση θα ορίσει τη μεταβλητή για σας χρησιμοποιώντας μια αποαναφορά. Δεν πρέπει να 
χρησιμοποιείτε αναφορές μόνο για αυτόν το σκοπό, αλλά αυτή είναι η κύρια χρήση τους.</para>
+      <para>Όταν χρησιμοποιείτε συναρτήσεις που επιστρέφουν τιμές μέσα από αναφορές στη λίστα ορισμάτων, 
περάστε απλά το όνομα της μεταβλητής με ένα  (A x v: </para>
+      <para>Οι λεπτομέρειες του πώς δουλεύουν οι αναφορές και η σύνταξη είναι παρόμοιες με τη γλώσσα C. Ο 
τελεστής <literal>&amp;</literal> αναφέρεται σε μια μεταβλητή και το <literal>*</literal> αποαναφέρει μια 
μεταβλητή. Αμφότεροι μπορούν να εφαρμοστούν μόνο σε ένα αναγνωριστικό, έτσι το <literal>**a</literal> δεν 
είναι επιτρεπτή παράσταση στο GEL.</para>
+      <para>Οι αναφορές εξηγούνται καλύτερα με ένα παράδειγμα: <programlisting><![CDATA[a=1;
+b=&a;
+*b=2;
+]]></programlisting> τώρα η <varname>a</varname> περιέχει 2. Μπορείτε επίσης να αναφέρετε συναρτήσεις: το 
<programlisting><![CDATA[function f(x) = x+1;
+t=&f;
+*t(3)
+]]></programlisting> μας δίνει 4.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-lvalues">
+      <title>Lvalues (αριστερές τιμές)</title>
+      <para>Μια lvalue είναι το αριστερό μέλος μιας ανάθεσης. Με άλλα λόγια, μια lvalue είναι αυτό που 
αναθέτετε σε κάτι. Έγκυρες lvalues είναι: <variablelist>
+  <varlistentry>
+    <term><userinput>a</userinput></term>
+    <listitem>
+      <para>Αναγνωριστικό. Εδώ μπορεί να οριστεί η μεταβλητή του ονόματος <varname>a</varname>.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>*a</userinput></term>
+    <listitem>
+      <para>Αποαναφορά ενός αναγνωριστικού. Αυτό θα ορίσει οποιαδήποτε μεταβλητή δείχνει στο 
<varname>a</varname>.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>a@(&lt;region&gt;)</userinput></term>
+    <listitem>
+      <para>Μια περιοχή ενός πίνακα. Εδώ η περιοχή ορίζεται κανονικά όπως στην περίπτωση του κανονικού 
τελεστή @() και μπορεί να είναι μια μοναδική καταχώριση, ή μια πλήρης περιοχή του πίνακα.</para>
+    </listitem>
+  </varlistentry>
+</variablelist></para>
+      <para>
+Examples:
+<programlisting>a:=4
+*tmp := 89
+a@(1,1) := 5
+a@(4:8,3) := [1,2,3,4,5]'
+</programlisting>
+Note that both <literal>:=</literal> and <literal>=</literal> can be used
+interchangeably.  Except if the assignment appears in a condition.
+It is thus always safer to just use
+<literal>:=</literal> when you mean assignment, and <literal>==</literal>
+when you mean comparison.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <chapter id="genius-gel-programming-advanced">
+    <title>Προχωρημένος προγραμματισμός με GEL</title>
+
+    <sect1 id="genius-gel-error-handling">
+      <title>Χειρισμός σφάλματος</title>
+      <para>Αν εντοπίσετε ένα σφάλμα στη συνάρτησή σας, μπορείτε να το αποφύγετε. Για φυσιολογικά σφάλματα, 
όπως εσφαλμένους τύπους ορισμάτων, μπορείτε να παραλείψετε να υπολογίσετε τη συνάρτηση προσθέτοντας την 
δήλωση <literal>bailout</literal>. Αν κάτι πήγε πραγματικά εσφαλμένα και θέλετε να τερματίσετε πλήρως τον 
τρέχοντα υπολογισμό, μπορείτε να χρησιμοποιήσετε το <literal>exception</literal>.</para>
+      <para>Για παράδειγμα αν θέλετε να ελέγξετε για ορίσματα στη συνάρτησή σας. Θα μπορούσατε να 
χρησιμοποιήσετε τον ακόλουθο κώδικα. <programlisting>function f(M) = (
+  if not IsMatrix (M) then (
+    error ("M not a matrix!");
+    bailout
+  );
+  ...
+)
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-toplevel-syntax">
+      <title>Σύνταξη ανωτάτου επιπέδου</title>
+      <para>
+       The syntax is slightly different if you enter statements on
+       the top level versus when they are inside parentheses or
+       inside functions.  On the top level, enter acts the same as if
+       you press return on the command line.  Therefore think of programs
+       as just a sequence of lines as if they were entered on the command line.
+       In particular, you do not need to enter the separator at the end of the
+       line (unless it is of course part of several statements inside
+       parentheses).  When a statement does not end with a separator on the
+       top level, the result is printed after being executed.
+      </para>
+      <para>
+       For example,
+       <programlisting>function f(x)=x^2
+f(3)
+</programlisting>
+       will print first the result of setting a function (a representation of
+       the function, in this case <computeroutput>(`(x)=(x^2))</computeroutput>)
+       and then the expected 9.  To avoid this, enter a separator
+       after the function definition.
+       <programlisting>function f(x)=x^2;
+f(3)
+</programlisting>
+       If you need to put a separator into your function then you have to surround with
+       parenthesis.  For example:
+<programlisting>function f(x)=(
+  y=1;
+  for j=1 to x do
+    y = y+j;
+  y^2
+);
+</programlisting>
+      </para>
+      <para>Ο παρακάτω κώδικας θα παράξει ένα σφάλμα όταν εισαχθεί στο ανώτατο επίπεδο ενός προγράμματος, 
ενώ θα δουλέψει θαυμάσια σε μια συνάρτηση. <programlisting>if Something() then
+  DoSomething()
+else
+  DoSomethingElse()
+</programlisting></para>
+      <para>Το πρόβλημα είναι ότι μετά το <application>Εργαλείο μαθηματικών Genius</application> βλέπει το 
τέλος της γραμμής μετά τη δεύτερη γραμμή, θα αποφασίσει ότι έχουμε ολόκληρη τη δήλωση και θα την εκτελέσει. 
Μετά την εκτέλεση, το <application>Εργαλείο μαθηματικών Genius</application> θα συνεχίσει με την επόμενη 
γραμμή, θα δει το <literal>else</literal> και θα παράξει ένα σφάλμα ανάλυσης. Για να το διορθώσετε, 
χρησιμοποιήστε παρενθέσεις. Το <application>Εργαλείο μαθηματικών Genius</application> δεν θα ικανοποιηθεί 
μέχρι να βρει ότι όλες οι παρενθέσεις έχουν κλείσει. <programlisting>if Something() then (
+  DoSomething()
+) else (
+  DoSomethingElse()
+)
+</programlisting></para>
+    </sect1>
+
+     <sect1 id="genius-gel-returning-functions">
+       <title>Επιστροφή συναρτήσεων</title>
+       <para>Είναι δυνατό να επιστρέψετε συναρτήσεις ως τιμή. Με αυτόν τον τρόπο μπορείτε να δομήσετε 
συναρτήσεις που κατασκευάζουν συναρτήσεις ειδικού σκοπού σύμφωνα με κάποιες παραμέτρους. Το ευαίσθητο κομμάτι 
είναι τι μεταβλητές βλέπει η συνάρτηση. Ο τρόπος που αυτό δουλεύει στο GEL είναι ότι όταν μια συνάρτηση 
επιστρέφει μια άλλη συνάρτηση, όλα τα αναγνωριστικά που αναφέρθηκαν στο σώμα της συνάρτησης που βγήκε εκτός 
εμβέλειας προτάσσουν ένα ιδιωτικό λεξικό της επιστρεφόμενης συνάρτησης. Έτσι η συνάρτηση θα δει όλες τις 
μεταβλητέςπου ήτα�
 � στην εμβέλεια όταν ορίστηκε. Για παράδειγμα, ορίζουμε μια συνάρτηση που επιστρέφει μια συνάρτηση που 
προσθέτει 5 στο όρισμά της. <programlisting>function f() = (
+  k = 5;
+  `(x) = (x+k)
+)
+</programlisting> Σημειώστε ότι, η συνάρτηση προσθέτει τη <varname>k</varname> στη <varname>x</varname>. 
Μπορείτε να τη χρησιμοποιήσετε ως εξής. <programlisting>g = f();
+g(5)
+</programlisting> Και η <userinput>g(5)</userinput> πρέπει να επιστρέψει 10.</para>
+       <para>Πρέπει να σημειώσετε ότι η τιμή της <varname>k</varname> που χρησιμοποιείται είναι αυτή που 
επιστρέφεται στην πραγματικότητα από την <function>f</function>. Για παράδειγμα: το <programlisting>function 
f() = (
+  k := 5;
+  function r(x) = (x+k);
+  k := 10;
+  r
+)
+</programlisting> θα επιστρέψει μια συνάρτηση που προσθέτει 10 στο όρισμά της αντί για 5. Αυτό συμβαίνει 
επειδή το πρόσθετο λεξικό δημιουργείται μόνο όταν το περιεχόμενο στο οποίο η συνάρτηση ορίστηκε τελειώνει, 
που συμβαίνει όταν η συνάρτηση <function>f</function> επιστρέφεται. Αυτό είναι συνεπές με το πώς θα 
περιμένατε η συνάρτηση <function>r</function> να δουλέψει μέσα στη συνάρτηση <function>f</function> σύμφωνα 
με τους κανόνες εμβέλειας των μεταβλητών στη GEL. Μόνο αυτές οι μεταβλητές προστίθενται στο πρόσθετο λεξικό 
που είναι στο περιεχόμενο που μόλις τελείωσε και δεν �
 �πάρχει πια. Οι χρησιμοποιούμενες μεταβλητές στη συνάρτηση που είναι ακόμα σε έγκυρα περιεχόμενα θα 
δουλέψουν ως συνήθως, χρησιμοποιώντας την τρέχουσα τιμή της μεταβλητής. Η μόνη διαφορά είναι με τις καθολικές 
μεταβλητές και συναρτήσεις. Όλα τα αναγνωριστικά που αναφέρθηκαν σε καθολικές μεταβλητές κατά τον ορισμό της 
συνάρτησης δεν προστίθενται στο ιδιωτικό λεξικό. Αυτό συμβαίνει για να αποφευχθεί πολλή περιττή εργασία κατά 
την επιστροφή συναρτήσεων και μπορεί σπάνια να είναι πρόβλημα. Για παράδειγμα, ας υποθέσουμε ότι διαγράφετε 
 το "k=5" από τη συνάρτηση <function>f</function> και στο ανώτατο επίπεδο ορίζετε την <varname>k</varname> να 
είναι ας πούμε 5. Τότε όταν εκτελείτε τη <function>f</function>, η συνάρτηση <function>r</function> δεν θα 
βάλει την <varname>k</varname> στο ιδιωτικό λεξικό, επειδή είναι καθολική (ανωτάτου επιπέδου) τη στιγμή του 
ορισμού της <function>r</function>.</para>
+       <para>Μερικές φορές είναι καλύτερο να έχετε περισσότερο έλεγχο στο πώς αντιγράφονται οι μεταβλητές 
στο ιδιωτικό λεξικό. Από την έκδοση 1.0.7, μπορείτε να ορίσετε ποιες μεταβλητές αντιγράφονται στο ιδιωτικό 
λεξικό βάζοντας πρόσθετες αγκύλες μετά τα ορίσματα με τον κατάλογο των μεταβλητών να αντιγράφεται χωριζόμενο 
με κόμματα. Αν το κάνετε αυτό, τότε οι μεταβλητές αντιγράφονται στο προσωπικό λεξικό τη στιγμή του ορισμού 
της συνάρτησης και το ιδιωτικό λεξικό δεν επηρεάζεται κατόπιν. Για παράδειγμα το <programlisting>function f() 
= (
+  k := 5;
+  function r(x) [k] = (x+k);
+  k := 10;
+  r
+)
+</programlisting> θα επιστρέψει μια συνάρτηση που όταν καλείται θα προσθέσει 5 στο όρισμά του. Το τοπικό 
αντίγραφο της <varname>k</varname> δημιουργήθηκε όταν η συνάρτηση ορίστηκε.</para>
+       <para>Όταν θέλετε η συνάρτηση να μην έχει κανένα ιδιωτικό λεξικό, τότε βάλτε κενές αγκύλες μετά την 
λίστα ορισμάτων. Τότε κανένα ιδιωτικό λεξικό δεν θα δημιουργηθεί. Κάνοντας το αυξάνετε την 
αποτελεσματικότητα, όταν ένα προσωπικό λεξικό δεν χρειάζεται ή όταν θέλετε η συνάρτηση να αναζητήσει όλες τις 
μεταβλητές όπως τις βλέπει όταν καλούνται. Για παράδειγμα ας υποθέσουμε ότι θέλετε η επιστρεφόμενη συνάρτηση 
από την <function>f</function> να δει την τιμή της <varname>k</varname> από το ανώτατο επίπεδο παρά το ότι 
εκεί είναι μια τοπική μεταβλητή με το ίδιο όν�
 �μα κατά τη διάρκεια του ορισμού. Έτσι ο κώδικας <programlisting>function f() = (
+  k := 5;
+  function r(x) [] = (x+k);
+  r
+);
+k := 10;
+g = f();
+g(10)
+</programlisting> θα επιστρέψει 20 και όχι 15, που θα συμβεί αν η <varname>k</varname> με μια τιμή 5 
προστέθηκε στο ιδιωτικό λεξικό.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-true-local-variables">
+      <title>Αληθείς τοπικές μεταβλητές</title>
+      <para>Κατά τη μεταβίβαση συναρτήσεων σε άλλες συναρτήσεις, η κανονική εμβέλεια των μεταβλητών μπορεί 
να είναι ανεπιθύμητη. Για παράδειγμα: <programlisting>k := 10;
+function r(x) = (x+k);
+function f(g,x) = (
+  k := 5;
+  g(x)
+);
+f(r,1)
+</programlisting> προφανώς θέλετε η συνάρτηση <function>r</function> κατά τη μεταβίβαση ως 
<function>g</function> στη <function>f</function> να δει τη <varname>k</varname> ως 10 αντί για 5, έτσι ώστε 
ο κώδικας να επιστρέψει 11 και όχι 6. Όμως, όπως είναι γραμμένο, η συνάρτηση κατά την εκτέλεση θα δει τη 
<varname>k</varname> που είναι ίση με 5. Υπάρχουν δύο τρόποι για την επίλυση αυτού του θέματος. Κάποιος 
πρέπει να κάνει την <function>r</function> να πάρει την <varname>k</varname> σε ένα ιδιωτικό λεξικό 
χρησιμοποιώντας την σημειογραφία αγκύλης στην ενότητα <link 
linkend="genius-gel-returning-functions">Επιστροφή συναρτήσεων</link>.</para>
+      <para>
+       But there is another solution.  Since version 1.0.7 there are
+       true local variables.  These are variables that are visible only
+       from the current context and not from any called functions.
+       We could define <varname>k</varname> as a local variable in the
+       function <function>f</function>.  To do this add a
+       <command>local</command> statement as the first statement in the
+       function (it must always be the first statement in the function).
+       You can also make any arguments be local variables as well.
+       That is,
+<programlisting>function f(g,x) = (
+  local g,x,k;
+  k := 5;
+  g(x)
+);
+</programlisting>
+       Then the code will work as expected and prints out 11.
+       Note that the <command>local</command> statement initializes
+       all the referenced variables (except for function arguments) to
+       a <constant>null</constant>.
+      </para>
+      <para>
+       If all variables are to be created as locals you can just pass an
+       asterisk instead of a list of variables.  In this case the variables
+       will not be initialized until they are actually set of course.
+       So the following definition of <function>f</function>
+       will also work:
+<programlisting>function f(g,x) = (
+  local *;
+  k := 5;
+  g(x)
+);
+</programlisting>
+      </para>
+      <para>Είναι μια καλή πρακτική όλες οι συναρτήσεις που παίρνουν άλλες συναρτήσεις ως ορίσματα να 
χρησιμοποιούν τοπικές μεταβλητές. Με αυτόν το τρόπο η μεταβιβαζόμενη συνάρτηση δεν βλέπει λεπτομέρειες 
υλοποίησης και δεν μπερδεύεται.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-startup-procedure">
+      <title>Διαδικασία έναρξης GEL</title>
+      <para>Αρχικά το πρόγραμμα αναζητά το εγκατεστημένο αρχείο βιβλιοθήκης (τη μεταγλωττισμένη έκδοση 
<filename>lib.cgel</filename>) στον εγκατεστημένο κατάλογο, έπειτα ψάχνει στον τρέχοντα κατάλογο και έπειτα 
προσπαθεί να φορτώσει το αμεταγλώττιστο αρχείο που λέγεται <filename>~/.geniusinit</filename>.</para>
+      <para>Αν ποτέ αλλάξετε την εγκατεστημένη θέση της βιβλιοθήκης, θα πρέπει πρώτα να τη μεταγλωττίσετε με 
<command>genius --compile loader.gel &gt; lib.cgel</command></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loading-programs">
+      <title>Φόρτωση προγραμμάτων</title>
+      <para>
+Sometimes you have a larger program you wrote into a file and want to read that file into 
<application>Genius Mathematics Tool</application>. In these situations, you have two options. You can keep 
the functions you use most inside the <filename>~/.geniusinit</filename> file. Or if you want to load up a 
file in a middle of a session (or from within another file), you can type <command>load &lt;list of 
filenames&gt;</command> at the prompt. This has to be done on the top level and not inside any function or 
whatnot, and it cannot be part of any expression. It also has a slightly different syntax than the rest of 
genius, more similar to a shell. You can enter the file in quotes. If you use the '' quotes, you will get 
exactly the string that you typed, if you use the "" quotes, special characters will be unescaped as they are 
for strings. Example:
+<programlisting>load program1.gel program2.gel
+load "Weird File Name With SPACES.gel"
+</programlisting>
+There are also <command>cd</command>, <command>pwd</command> and <command>ls</command> commands built in. 
<command>cd</command> will take one argument, <command>ls</command> will take an argument that is like the 
glob in the UNIX shell (i.e., you can use wildcards). <command>pwd</command> takes no arguments. For example:
+<programlisting>cd directory_with_gel_programs
+ls *.gel
+</programlisting>
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Matrices ================================= -->
+  <chapter id="genius-gel-matrices">
+    <title>Πίνακες στη GEL</title>
+
+    <para>
+      Genius has support for vectors and matrices and possesses a sizable library of
+      matrix manipulation and linear algebra functions.
+    </para>
+
+    <sect1 id="genius-gel-matrix-support">
+      <title>Εισαγωγή πινάκων</title>
+      <para>
+To enter matrices, you can use one of the following two syntaxes. You can either enter
+the matrix on one line, separating values by commas and rows by semicolons.  Or you
+can enter each row on one line, separating
+values by commas.
+You can also just combine the two methods.
+So to enter a 3x3 matrix
+of numbers 1-9 you could do
+<programlisting>[1,2,3;4,5,6;7,8,9]
+</programlisting>
+or
+<programlisting>[1, 2, 3
+ 4, 5, 6
+ 7, 8, 9]
+</programlisting>
+Do not use both ';' and return at once on the same line though.
+      </para>
+
+      <para>
+You can also use the matrix expansion functionality to enter matrices.
+For example you can do:
+<programlisting>a = [ 1, 2, 3
+      4, 5, 6
+      7, 8, 9]
+b = [ a,  10
+      11, 12]
+</programlisting>
+and you should get
+<programlisting>[1,   2,  3, 10
+ 4,   5,  6, 10
+ 7,   8,  9, 10
+ 11, 11, 11, 12]
+</programlisting>
+similarly you can build matrices out of vectors and other stuff like that.
+      </para>
+
+      <para>Ένα άλλο είναι ότι αρχικοποιούνται μη καθορισμένα σημεία σε 0, έτσι το <programlisting>[1, 2, 3
+ 4, 5
+ 6]
+</programlisting> θα καταλήξει να είναι <programlisting>
+[1, 2, 3
+ 4, 5, 0
+ 6, 0, 0]
+</programlisting></para>
+
+      <para>Όταν υπολογίζονται πίνακες, υπολογίζονται και διατρέχονται κατά την έννοια της γραμμής. Αυτό 
είναι ακριβώς όπως ο τελεστής <literal>M@(j)</literal> που διατρέχει τον πίνακα κατά την έννοια της 
γραμμής.</para>
+
+      <note>
+        <para>Προσέξτε τη χρήση επιστροφών για εκφράσεις μέσα σε αγκύλες <literal>[ ]</literal>, επειδή 
έχουν μια ελαφρώς διαφορετική έννοια εδώ. Θα ξεκινήσετε μια νέα γραμμή.</para>
+      </note>
+
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-transpose">
+      <title>Συζυγής αντιστροφή και τελεστής αντιστροφής</title>
+      <para>Μπορείτε να πάρετε τον συζυγή ενός ανάστροφου πίνακα χρησιμοποιώντας τον τελεστή 
<literal>'</literal>. Δηλαδή, η καταχώριση στην <varname>i</varname>στη στήλη και στην 
<varname>j</varname>στη γραμμή θα είναι ο μιγαδικός συζυγής της καταχώρισης στη <varname>j</varname>στη στήλη 
και την <varname>i</varname>στη γραμμή του αρχικού πίνακα. Για παράδειγμα: <programlisting>[1,2,3]*[4,5,6]'
+</programlisting> Αναστρέφουμε το δεύτερο διάνυσμα για να κάνουμε τον πολλαπλασιασμό του πίνακα δυνατό. Αν 
θέλετε απλά να αναστρέψετε έναν πίνακα χωρίς να πάρετε τον συζυγή του, μπορείτε να χρησιμοποιήσετε τον 
τελεστή <literal>.'</literal>. Για παράδειγμα: <programlisting>[1,2,3]*[4,5,6i].'
+</programlisting></para>
+       <para>Σημειώστε ότι ο κανονικός ανάστροφος, δηλαδή ο τελεστής <literal>.'</literal>, είναι πολύ 
γρηγορότερος και δεν θα δημιουργήσει ένα νέο αντίγραφο του πίνακα στη μνήμη. Η αναστροφή του συζυγή δεν 
δημιουργεί ένα νέο αντίγραφο δυστυχώς. Συνιστάται να χρησιμοποιείτε πάντα τον τελεστή <literal>.'</literal> 
όταν δουλεύετε με πραγματικούς πίνακες και διανύσματα.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-linalg">
+      <title>Γραμμική Άλγεβρα</title>
+      <para>Η Genius υλοποιεί πολλές χρήσιμες ρουτίνες χειρισμού γραμμικής άλγεβρας και πινάκων. Δείτε <link 
linkend="genius-gel-function-list-linear-algebra">γραμμική άλγεβρα</link> και τις ενότητες <link 
linkend="genius-gel-function-list-matrix">Χειρισμός πίνακα</link> του καταλόγου συναρτήσεων GEL.</para>
+      <para>Οι υλοποιούμενες ρουτίνες γραμμικής άλγεβρας στο GEL δεν έρχονται προς το παρόν από ένα καλά 
ελεγμένο αριθμητικό πακέτο και έτσι δεν πρέπει να χρησιμοποιηθούν για κρίσιμους αριθμητικούς υπολογισμούς. 
Από την άλλη μεριά, η Genius υλοποιεί πολύ καλά πολλές πράξεις γραμμικής άλγεβρας με ρητούς και ακέραιους 
συντελεστές. Αυτές είναι έμφυτα ακριβείς και στην πραγματικότητα θα σας δώσουν πολύ καλύτερα αποτελέσματα από 
τις συνηθισμένες ρουτίνες διπλής ακρίβειας για γραμμική άλγεβρα.</para>
+      <para>Για παράδειγμα, είναι χωρίς νόημα να υπολογίσετε την τάξη και μηδενικό χώρο ενός πίνακα κινητής 
υποδιαστολής αφού για όλους τους πρακτικούς σκοπούς, χρειάζεται να θεωρήσουμε ότι ο πίνακας έχει κάποια μικρά 
σφάλματα. Είναι πιθανό να πάρετε ένα διαφορετικό αποτέλεσμα από αυτό που περιμένετε. Το πρόβλημα είναι κάτω 
από μια μικρή διαταραχή κάθε πίνακας είναι πλήρους τάξης και αντιστρέψιμος. Αν ο πίνακας όμως είναι ρητών 
αριθμών, τότε η τάξη και ο μηδενικός χώρος είναι πάντα ακριβείς.</para>
+      <para>Γενικά, όταν η Genius υπολογίζει τη βάση συγκεκριμένου διανυσματικού χώρου (για παράδειγμα με 
την <link linkend="gel-function-NullSpace"><function>NullSpace</function></link>) θα δώσει τη βάση ως πίνακα, 
στον οποίον οι στήλες είναι τα διανύσματα της βάσης. Δηλαδή, όταν η Genius μιλά για έναν γραμμικό υπόχωρο 
σημαίνει ένας πίνακας του οποίου ο χώρος στηλών είναι ο δοσμένος γραμμικός υπόχωρος.</para>
+      <para>Θα πρέπει να σημειωθεί ότι η Genius μπορεί να θυμάται συγκεκριμένες ιδιότητες ενός πίνακα. Για 
παράδειγμα, θα θυμάται ότι ο πίνακας είναι σε ανηγμένη μορφή γραμμής. Αν γίνουν πολλές κλήσεις σε συναρτήσεις 
που χρησιμοποιούν εσωτερικά ανηγμένη μορφή γραμμής του πίνακα, μπορούμε απλά να μειώσουμε τη γραμμή του 
πίνακα προκαταβολικά μια φορά. Διαδοχικές κλήσεις στο <link 
linkend="gel-function-rref"><function>rref</function></link> θα είναι πολύ γρήγορες.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Polynomials ============================== -->
+  <chapter id="genius-gel-polynomials">
+    <title>Πολυώνυμα στην GEL</title>
+
+    <para>Προς το παρόν η Genius μπορεί να χειριστεί πολυώνυμα μιας μεταβλητής γραμμένα ως διανύσματα και να 
κάνει μερικές βασικές πράξεις με αυτές. Είναι προγραμματισμένο να επεκτείνει αυτήν την υποστήριξη 
παραπέρα.</para>
+
+    <sect1 id="genius-gel-polynomials-using">
+      <title>Χρήση πολυωνύμων</title>
+      <para>Προς το παρόν πολυώνυμα με μια μεταβλητή είναι μόνο οριζόντια διανύσματα με τιμή μόνο κόμβων. Η 
δύναμη του όρου είναι η θέση στο διάνυσμα, με την πρώτη θέση να είναι το 0. Έτσι, το <programlisting>[1,2,3]
+</programlisting> μεταφράζεται σε ένα πολυωνύμου του <programlisting>1 + 2*x + 3*x^2
+</programlisting></para>
+      <para>Μπορείτε να προσθέσετε, αφαιρέσετε και να πολλαπλασιάσετε πολυώνυμα χρησιμοποιώντας τις 
συναρτήσεις <link linkend="gel-function-AddPoly"><function>AddPoly</function></link>, <link 
linkend="gel-function-SubtractPoly"><function>SubtractPoly</function></link> και <link 
linkend="gel-function-MultiplyPoly"><function>MultiplyPoly</function></link> αντίστοιχα. Μπορείτε να 
εκτυπώσετε ένα πολυώνυμο χρησιμοποιώντας τη συνάρτηση <link 
linkend="gel-function-PolyToString"><function>PolyToString</function></link>. Για παράδειγμα, το 
<programlisting>PolyToString([1,2,3],"y")
+</programlisting> δίνει <programlisting>3*y^2 + 2*y + 1
+</programlisting> Μπορείτε επίσης να πάρετε μια αναπαράσταση συνάρτησης του πολυωνύμου έτσι ώστε να 
μπορέσετε την υπολογίσετε. Αυτό γίνεται χρησιμοποιώντας την <link 
linkend="gel-function-PolyToFunction"><function>PolyToFunction</function></link>, που επιστρέφει μια ανώνυμη 
συνάρτηση. <programlisting>f = PolyToFunction([0,1,1])
+f(2)
+</programlisting></para>
+      <para>Είναι επίσης δυνατό να βρείτε ρίζες πολυωνύμων βαθμών 1 μέχρι 4 χρησιμοποιώντας τη συνάρτηση 
<link linkend="gel-function-PolynomialRoots"><function>PolynomialRoots</function></link>, που καλεί τη 
συνάρτηση κατάλληλου τύπου. Πολυώνυμα μεγαλύτερου βαθμού πρέπει να μετατραπούν σε συναρτήσεις και να 
επιλυθούν αριθμητικά χρησιμοποιώντας μια συνάρτηση όπως οι <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>, ή <link 
linkend="gel-function-FindRootSecant"><function>FindRootSecant</function></link>.</para>
+      <para>Δείτε <xref linkend="genius-gel-function-list-polynomials"/> στον κατάλογο συναρτήσεων για τις 
υπόλοιπες συναρτήσεις που δρουν σε πολυώνυμα.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Set Theory ============================== -->
+  <chapter id="genius-gel-settheory">
+    <title>Θεωρία συνόλων στη GEL</title>
+
+    <para>Η Genius έχει κάποια βασική θεωρητική λειτουργικότητα συνόλων ενσωματωμένη. Προς το παρόν ένα 
σύνολο είναι απλά ένα διάνυσμα (ή πίνακας). Κάθε ξεχωριστό αντικείμενο αντιμετωπίζεται ως διαφορετικό 
στοιχείο.</para>
+
+    <sect1 id="genius-gel-sets-using">
+      <title>Χρήση συνόλων</title>
+      <para>Ακριβώς όπως τα διανύσματα, τα αντικείμενα στα σύνολα μπορούν να περιλαμβάνουν αριθμούς, 
συμβολοσειρές <constant>null</constant>, πίνακες και διανύσματα. Σχεδιάζεται στο μέλλον να υπάρχει ένας 
αποκλειστικός τύπος για σύνολα, αντί να χρησιμοποιούνται διανύσματα. Σημειώστε ότι οι αριθμοί κινητής 
υποδιαστολής είναι διακριτοί από τους ακέραιους, ακόμα κι αν εμφανίζονται το ίδιο. Δηλαδή η Genius θα 
θεωρήσει τις <constant>0</constant> και <constant>0.0</constant> ως δύο διαφορετικά στοιχεία. Η 
<constant>null</constant> αντιμετωπίζεται ως ένα κενό σύνολο.</para>
+      <para>Για να δομήσετε ένα σύνολο από ένα διάνυσμα, χρησιμοποιήστε τη συνάρτηση <link 
linkend="gel-function-MakeSet"><function>MakeSet</function></link>. Προς το παρόν, θα επιστρέψει απλά ένα νέο 
διάνυσμα, όπου κάθε στοιχείο είναι μοναδικό. <screen><prompt>genius&gt; 
</prompt><userinput>MakeSet([1,2,2,3])</userinput>
+= [1, 2, 3]
+</screen></para>
+
+       <para>Παρόμοια, υπάρχουν συναρτήσεις <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>, που είναι μάλλον αυτονόητες. Για 
παράδειγμα: <screen><prompt>genius&gt; </prompt><userinput>Union([1,2,3], [1,2,4])</userinput>
+= [1, 2, 4, 3]
+</screen> Σημειώστε ότι δεν εγγυάται καμία τάξη για τις τιμές επιστροφής. Αν θέλετε να ταξινομήσετε το 
διάνυσμα θα πρέπει να χρησιμοποιήσετε τη συνάρτηση <link 
linkend="gel-function-SortVector"><function>SortVector</function></link>.</para>
+
+       <para>Για τον έλεγχο μέλους, υπάρχουν συναρτήσεις <link 
linkend="gel-function-IsIn"><function>IsIn</function></link> and <link 
linkend="gel-function-IsSubset"><function>IsSubset</function></link>, που επιστρέφουν μια λογική τιμή. Για 
παράδειγμα: <screen><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
+= true
+</screen> Η είσοδος <userinput>IsIn(x,X)</userinput> είναι φυσικά ισοδύναμη με 
<userinput>IsSubset([x],X)</userinput>. Σημειώστε ότι, αφού το κενό σύνολο είναι ένα υποσύνολο κάθε συνόλου, 
η <userinput>IsSubset(null,X)</userinput> είναι πάντα αληθής.</para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL function list ======================== -->
+  <chapter id="genius-gel-function-list">
+    <title>Κατάλογος συναρτήσεων της GEL</title>
+
+    <!--&gel-function-list;-->
+
+    <para>Για να πάρετε βοήθεια σε μια συγκεκριμένη συνάρτηση από την κονσόλα πληκτρολογήστε: 
<programlisting>βοήθεια FunctionName
+</programlisting></para>
+
+    <sect1 id="genius-gel-function-list-commands">
+      <title>Εντολές</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-command-help"/>help</term>
+         <listitem>
+          <synopsis>βοήθεια</synopsis>
+          <synopsis>βοήθεια FunctionName</synopsis>
+          <para>Εμφάνιση βοήθειας (ή βοήθεια για μια συνάρτηση/εντολή).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-load"/>load</term>
+         <listitem>
+          <synopsis>load "file.gel"</synopsis>
+          <para>Load a file into the interpreter.  The file will execute
+as if it were typed onto the command line.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-cd"/>cd</term>
+         <listitem>
+          <synopsis>cd /directory/name</synopsis>
+          <para>Αλλαγή καταλόγου εργασίας σε <filename>/directory/name</filename>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-pwd"/>pwd</term>
+         <listitem>
+          <synopsis>pwd</synopsis>
+          <para>Εμφάνιση του τρέχοντος καταλόγου εργασίας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-ls"/>ls</term>
+         <listitem>
+          <synopsis>ls</synopsis>
+          <para>Λίστα αρχείων στον τρέχοντα κατάλογο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-plugin"/>plugin</term>
+         <listitem>
+          <synopsis>plugin plugin_name</synopsis>
+          <para>Φόρτωση ενός προσθέτου. Το πρόσθετο πρέπει να εγκατασταθεί στο σύστημα στο σωστό 
κατάλογο.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-basic">
+      <title>Βασικά</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
+         <listitem>
+          <synopsis>AskButtons (query)</synopsis>
+          <synopsis>AskButtons (query, button1, ...)</synopsis>
+         <para>Ερωτά και παρουσιάζει έναν κατάλογο κουμπιών στον χρήστη (ή ένα μενού επιλογών σε κατάσταση 
κειμένου). Επιστρέφει τον δείκτη με βάση το 1 του πατημένου κουμπιού. Δηλαδή, επιστρέφει 1 αν το πρώτο κουμπί 
πατήθηκε, 2 αν το δεύτερο κουμπί πατήθηκε και ούτω καθεξής. Αν ο χρήστης κλείσει το παράθυρο (ή απλά πατήσει 
εισαγωγή στην κατάσταση κειμένου), τότε η <constant>null</constant> επιστρέφεται. Η εκτέλεση του προγράμματος 
εμποδίζεται μέχρι να απαντήσει ο χρήστης.</para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AskString"/>AskString</term>
+         <listitem>
+          <synopsis>AskString (query)</synopsis>
+          <synopsis>AskString (query, default)</synopsis>
+          <para>Asks a question and lets the user enter a string, which
+it then returns.  If the user cancels or closes the window, then
+<constant>null</constant> is returned.  The execution of the program
+is blocked until the user responds.  If <varname>default</varname> is given, then it is pre-typed in for the 
user to just press enter on (version 1.0.6 onwards).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Compose"/>Compose</term>
+         <listitem>
+          <synopsis>Compose (f,g)</synopsis>
+          <para>Σύνθεση δύο συναρτήσεων και επιστροφή μιας συνάρτησης που είναι η σύνθεση των 
<function>f</function> και <function>g</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
+         <listitem>
+          <synopsis>ComposePower (f,n,x)</synopsis>
+          <para>Σύνθεση και εκτέλεση μιας συνάρτησης με τον εαυτό της <varname>n</varname> φορές, 
μεταβιβάζοντας την <varname>x</varname> ως όρισμα. Επιστροφή της <varname>x</varname> αν η 
<varname>n</varname> είναι ίση με 0. Παράδειγμα: <screen><prompt>genius&gt;</prompt> <userinput>function f(x) 
= x^2 ;</userinput>
+<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
+= 5764801
+<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
+= 5764801
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
+         <listitem>
+          <synopsis>Evaluate (str)</synopsis>
+          <para>Αναλύει και υπολογίζει μια συμβολοσειρά.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
+         <listitem>
+          <synopsis>GetCurrentModulo</synopsis>
+          <para>Λήψη του τρέχοντος ισοϋπόλοιπου από το περιεχόμενο έξω από τη συνάρτηση. Δηλαδή, αν 
εκτελέστηκε έξω από την συνάρτηση σε modulo (χρησιμοποιώντας <literal>mod</literal>), τότε αυτό επιστρέφει 
ποιο ήταν αυτό το modulo. Κανονικά το καλούμενο σώμα της συνάρτησης δεν εκτελείται σε αριθμητική υπολοίπων 
και αυτή η ενσωματωμένη συνάρτηση κάνει δυνατή την ενημέρωση των συναρτήσεων GEL αριθμητικής υπολοίπων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Identity"/>Identity</term>
+         <listitem>
+          <synopsis>Identity (x)</synopsis>
+         <para>Identity function, returns its argument.  It is equivalent to <userinput>function 
Identity(x)=x</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
+         <listitem>
+          <synopsis>IntegerFromBoolean (bval)</synopsis>
+         <para>Κάνει τον ακέραιο (0 για <constant>ψευδή</constant> ή 1 για <constant>αληθή</constant>) από 
μια λογική τιμή. Η <varname>bval</varname> μπορεί επίσης να είναι ένας αριθμός οπότε μια μη μηδενική τιμή θα 
ερμηνευτεί ως <constant>αληθής</constant> και το μηδέν θα ερμηνευτεί ως <constant>ψευδής</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
+         <listitem>
+          <synopsis>IsBoolean (arg)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι λογική τιμή (και όχι αριθμός).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
+         <listitem>
+          <synopsis>IsDefined (id)</synopsis>
+          <para>Ελέγχει αν ένα αναγνωριστικό ορίζεται. Θα πρέπει να περάσετε μια συμβολοσειρά ή και 
αναγνωριστικό. Αν περάσετε έναν πίνακα, κάθε καταχώριση θα υπολογιστεί ξεχωριστά και ο πίνακας πρέπει να 
περιέχει συμβολοσειρές ή αναγνωριστικά.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
+         <listitem>
+          <synopsis>IsFunction (arg)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι συνάρτηση.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
+         <listitem>
+          <synopsis>IsFunctionOrIdentifier (arg)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι συνάρτηση ή ένα αναγνωριστικό.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
+         <listitem>
+          <synopsis>IsFunctionRef (arg)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι μια συνάρτηση αναφοράς. Αυτό περιλαμβάνει αναφορές 
μεταβλητών.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
+         <listitem>
+          <synopsis>IsMatrix (arg)</synopsis>
+          <para>Ελέγχει αν ένα όρισμα είναι ένας πίνακας. Αν και η <constant>null</constant> θεωρείται 
μερικές φορές ως κενός πίνακας, η συνάρτηση <function>IsMatrix</function> δεν θεωρεί την 
<constant>null</constant> ως πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNull"/>IsNull</term>
+         <listitem>
+          <synopsis>IsNull (arg)</synopsis>
+         <para>Ελέγχει αν το όρισμα είναι μια <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsString"/>IsString</term>
+         <listitem>
+          <synopsis>IsString (arg)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι μια συμβολοσειρά κειμένου.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValue"/>IsValue</term>
+         <listitem>
+          <synopsis>IsValue (arg)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι αριθμός.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Parse"/>Parse</term>
+         <listitem>
+          <synopsis>Parse (str)</synopsis>
+          <para>Αναλύει, αλλά δεν υπολογίζει μια συμβολοσειρά. Σημειώστε ότι, συγκεκριμένος προϋπολογισμός 
γίνεται κατά τη διάρκεια του σταδίου ανάλυσης.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
+         <listitem>
+          <synopsis>SetFunctionFlags (id,flags...)</synopsis>
+          <para>Ορίζει σημαίες για μια συνάρτηση, προς το παρόν <literal>"PropagateMod"</literal> and 
<literal>"NoModuloArguments"</literal>. Αν η <literal>"PropagateMod"</literal> οριστεί, τότε το σώμα της 
συνάρτησης υπολογίζεται σε αριθμητική υπολοίπων, όταν η συνάρτηση καλείται μέσα σε μια ομάδα που υπολογίστηκε 
χρησιμοποιώντας αριθμητική υπολοίπων (χρησιμοποιώντας <literal>mod</literal>). Αν είναι 
<literal>"NoModuloArguments"</literal>, τότε τα ορίσματα της συνάρτησης δεν υπολογίζονται ποτέ 
χρησιμοποιώντας αριθμητική υπολοίπων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
+         <listitem>
+          <synopsis>SetHelp (id,category,desc)</synopsis>
+          <para>Ορισμός της γραμμής περιγραφής κατηγορίας και βοήθειας για μια συνάρτηση.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
+         <listitem>
+          <synopsis>SetHelpAlias (id,alias)</synopsis>
+          <para>Εγκαθιστά μια παραλλαγή βοήθειας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-chdir"/>chdir</term>
+         <listitem>
+          <synopsis>chdir (dir)</synopsis>
+          <para>Αλλάζει τον τρέχοντα κατάλογο, το ίδιο με <command>cd</command>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
+         <listitem>
+          <synopsis>CurrentTime</synopsis>
+          <para>Επιστρέφει τον τρέχοντα χρόνο UNIX με ακρίβεια μικροδευτερολέπτου ως έναν αριθμό κινητής 
υποδιαστολής. Δηλαδή, επιστρέφει τον αριθμό των δευτερολέπτων από την 1η Ιανουαρίου 1970.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-display"/>display</term>
+         <listitem>
+          <synopsis>display (str,expr)</synopsis>
+          <para>Εμφανίζει μια συμβολοσειρά και μια έκφραση με άνω-κάτω τελεία για να τις διακρίνει.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DisplayVariables"/>DisplayVariables</term>
+         <listitem>
+          <synopsis>DisplayVariables (var1,var2,...)</synopsis>
+         <para>Εμφάνιση συνόλου μεταβλητών. Οι μεταβλητές μπορούν να δοθούν ως συμβολοσειρές ή 
αναγνωριστικά. Για παράδειγμα: <programlisting>DisplayVariables(`x,`y,`z)
+           </programlisting></para>
+         <para>Αν κληθεί χωρίς ορίσματα (πρέπει να παρέχεται άδεια λίστα ορισμάτων), όπως 
<programlisting>DisplayVariables()
+           </programlisting> τότε όλες οι μεταβλητές εκτυπώνονται συμπεριλαμβανομένου ενός ιχνηλάτηση 
στοίβας παρόμιου με την <guilabel>Εμφάνιση μεταβλητών χρήστη</guilabel> στην έκδοση γραφικών.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-error"/>error</term>
+         <listitem>
+          <synopsis>error (str)</synopsis>
+          <para>Εμφανίζει μια συμβολοσειρά στη ροή σφάλματος (στην κονσόλα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exit"/>exit</term>
+         <listitem>
+          <synopsis>exit</synopsis>
+          <para>Παραλλαγές: <function>quit</function></para>
+          <para>Φεύγει από το πρόγραμμα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-false"/>false</term>
+         <listitem>
+          <synopsis>false</synopsis>
+          <para>Παραλλαγές: <function>False</function><function>FALSE</function></para>
+         <para>Η λογική τιμή <constant>ψευδές</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-manual"/>manual</term>
+         <listitem>
+          <synopsis>manual</synopsis>
+          <para>Προβολή του εγχειριδίου χρήστη.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-print"/>print</term>
+         <listitem>
+          <synopsis>print (str)</synopsis>
+          <para>Εμφανίζει μια παράσταση και έπειτα δίνει μια νέα γραμμή. Το όρισμα <varname>str</varname> 
μπορεί να είναι οποιαδήποτε παράσταση. Γίνεται συμβολοσειρά πριν την εμφάνιση.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-printn"/>printn</term>
+         <listitem>
+          <synopsis>printn (str)</synopsis>
+          <para>Εμφανίζει μια παράσταση χωρίς μια τελική νέα γραμμή. Το όρισμα <varname>str</varname> μπορεί 
να είναι οποιαδήποτε παράσταση. Γίνεται συμβολοσειρά πριν την εμφάνιση.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrintTable"/>PrintTable</term>
+         <listitem>
+          <synopsis>PrintTable (f,v)</synopsis>
+         <para>Εκτύπωση ενός πίνακα τιμών για μια λειτουργία. Οι τιμές είναι στο διάνυσμα 
<varname>v</varname>. Μπορείτε να χρησιμοποιήσετε τη σημειογραφία δόμησης διανύσματος ως εξής: 
<programlisting>PrintTable (f,[0:10])
+           </programlisting> Αν <varname>v</varname> είναι ένας θετικός ακέραιος, τότε θα χρησιμοποιηθεί ο 
πίνακας των ακεραίων από το 1 έως και το v.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-protect"/>protect</term>
+         <listitem>
+          <synopsis>protect (id)</synopsis>
+          <para>Προστατεύει μια μεταβλητή από τροποποίηση. Αυτό χρησιμοποιείται στις εσωτερικές συναρτήσεις 
GEL για να αποφευχθεί η τυχαία αντικατάστασή τους.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
+         <listitem>
+          <synopsis>ProtectAll ()</synopsis>
+          <para>Προστατεύει όλες τις τρέχουσες ορισμένες μεταβλητές, παραμέτρους και συναρτήσεις από 
τροποποίηση. Αυτό χρησιμοποιείται στις εσωτερικές συναρτήσεις GEL για να αποφευχθεί η τυχαία αντικατάστασή 
τους. Κανονικά το <application>Εργαλείο μαθηματικών Genius</application> θεωρεί απροστάτευτες τις μεταβλητές 
που όρισε ο χρήστης.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-set"/>set</term>
+         <listitem>
+          <synopsis>set (id,val)</synopsis>
+          <para>Set a global variable.  The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>set(`x,1)
+           </programlisting>
+           will set the global variable <varname>x</varname> to the value 1.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetElement"/>SetElement</term>
+         <listitem>
+          <synopsis>SetElement (id,row,col,val)</synopsis>
+         <para>Set an element of a global variable which is a matrix.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,3,1)
+           </programlisting>
+           will set the second row third column element of the global variable <varname>x</varname> to the 
value 1.  If no global variable of the name exists, or if it is set to something that's not a matrix, a new 
zero matrix of appropriate size will be created.
+         </para>
+         <para>The <varname>row</varname> and <varname>col</varname> can also be ranges, and the semantics 
are the same as for regular setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetVElement"/>SetVElement</term>
+         <listitem>
+          <synopsis>SetElement (id,elt,val)</synopsis>
+         <para>Set an element of a global variable which is a vector.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,1)
+           </programlisting>
+           will set the second element of the global vector variable <varname>x</varname> to the value 1.  
If no global variable of the name exists, or if it is set to something that's not a vector (matrix), a new 
zero row vector of appropriate size will be created.
+         </para>
+         <para>The <varname>elt</varname> can also be a range, and the semantics are the same as for regular 
setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-string"/>string</term>
+         <listitem>
+          <synopsis>string (s)</synopsis>
+          <para>Δημιουργία συμβολοσειράς. Αυτή θα δημιουργήσει μια συμβολοσειρά από οποιοδήποτε 
όρισμα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-true"/>true</term>
+         <listitem>
+          <synopsis>true</synopsis>
+          <para>Παραλλαγές: <function>True</function><function>TRUE</function></para>
+         <para>Η λογική τιμή <constant>true</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-undefine"/>undefine</term>
+         <listitem>
+          <synopsis>undefine (id)</synopsis>
+          <para>Παραλλαγές: <function>Undefine</function></para>
+          <para>Αποκαθορισμός μεταβλητής. Αυτό περιλαμβάνει τοπικές και καθολικές, κάθε τιμή σε όλα τα 
επίπεδα περιεχομένου καθαρίζεται. Αυτή η συνάρτηση πρέπει πραγματικά να μην χρησιμοποιηθεί σε τοπικές 
μεταβλητές. Ένα διάνυσμα αναγνωριστικών μπορεί επίσης να περαστεί για αποκαθορισμό πολλών μεταβλητών.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
+         <listitem>
+          <synopsis>UndefineAll ()</synopsis>
+         <para>Αποκαθορίζει όλες τις απροστάτευτες καθολικές μεταβλητές (συμπεριλαμβάνοντας συναρτήσεις και 
παραμέτρους). Κανονικά το <application>Εργαλείο μαθηματικών Genius</application> θεωρεί τις προστατευμένες 
μεταβλητές ως ορισμένες από το σύστημα συναρτήσεις και μεταβλητές. Σημειώστε ότι η 
<function>UndefineAll</function> αφαιρεί μόνο τον καθολικό ορισμό των συμβόλων και όχι των τοπικών, έτσι ώστε 
να μπορεί να εκτελεστεί μέσα από άλλες συναρτήσεις με ασφάλεια.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-unprotect"/>unprotect</term>
+         <listitem>
+          <synopsis>unprotect (id)</synopsis>
+          <para>Αφαιρεί την προστασία μιας μεταβλητής από τροποποίηση.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
+         <listitem>
+          <synopsis>UserVariables ()</synopsis>
+          <para>Επιστρέφει ένα διάνυσμα αναγνωριστικών ορισμένων από τον χρήστη (απροστάτευτων) καθολικών 
μεταβλητών.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-wait"/>wait</term>
+         <listitem>
+          <synopsis>wait (secs)</synopsis>
+          <para>Περιμένει ορισμένα δευτερόλεπτα. Η <varname>secs</varname> πρέπει να είναι μη αρνητική. Το 
μηδέν γίνεται δεκτό και τίποτα δεν συμβαίνει σε αυτήν την περίπτωση, εκτός από το ότι πιθανά συμβάντα 
διεπαφής χρήστη επεξεργάζονται.</para>
+         <para>Since version 1.0.18, <varname>secs</varname> can be a noninteger number, so
+                 <userinput>wait(0.1)</userinput> will wait for one tenth of a second.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-version"/>version</term>
+         <listitem>
+          <synopsis>version</synopsis>
+          <para>Επιστρέφει την έκδοση του Genius ως ένα οριζόντιο διάνυσμα 3 με πρώτη την κύρια έκδοση, 
έπειτα την δευτερεύουσα και τελικά το επίπεδο διόρθωσης.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-warranty"/>warranty</term>
+         <listitem>
+          <synopsis>warranty</synopsis>
+          <para>Δίνει τις πληροφορίες εγγύησης.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+
+    </sect1>
+
+    <sect1 id="genius-gel-function-parameters">
+      <title>Παράμετροι</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
+         <listitem>
+          <synopsis>ChopTolerance = number</synopsis>
+          <para>Ανοχή της συνάρτησης <function>Chop</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
+         <listitem>
+          <synopsis>ContinuousNumberOfTries = number</synopsis>
+          <para>Αριθμός επαναλήψεων για την εύρεση του ορίου για τη συνέχεια και τα όρια.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
+         <listitem>
+          <synopsis>ContinuousSFS = number</synopsis>
+          <para>Αριθμός διαδοχικών βημάτων για να είναι μέσα στην ανοχή για τον υπολογισμό της 
συνέχειας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
+         <listitem>
+          <synopsis>ContinuousTolerance = number</synopsis>
+          <para>Η ανοχή για συνέχεια των συναρτήσεων και για υπολογισμό του ορίου.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
+         <listitem>
+          <synopsis>DerivativeNumberOfTries = number</synopsis>
+          <para>Αριθμός επαναλήψεων για την εύρεση του ορίου για την παράγωγο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
+         <listitem>
+          <synopsis>DerivativeSFS = number</synopsis>
+          <para>Αριθμός διαδοχικών βημάτων για να είναι μέσα στην ανοχή για τον υπολογισμό της 
παραγώγου.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
+         <listitem>
+          <synopsis>DerivativeTolerance = number</synopsis>
+          <para>Ανοχή για τον υπολογισμό των παραγώγων των συναρτήσεων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
+         <listitem>
+          <synopsis>ErrorFunctionTolerance = number</synopsis>
+         <para>Ανοχή της <link 
linkend="gel-function-ErrorFunction"><function>ErrorFunction</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
+         <listitem>
+          <synopsis>FloatPrecision = number</synopsis>
+          <para>Ακρίβεια κινητής υποδιαστολής.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
+         <listitem>
+          <synopsis>FullExpressions = boolean</synopsis>
+          <para>Εμφάνιση πλήρων εκφράσεων, ακόμα κι αν είναι περισσότερες από μία γραμμή.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
+         <listitem>
+          <synopsis>GaussDistributionTolerance = number</synopsis>
+         <para>Ανοχή της συνάρτησης <link 
linkend="gel-function-GaussDistribution"><function>GaussDistribution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
+         <listitem>
+          <synopsis>IntegerOutputBase = number</synopsis>
+          <para>Βάση εξόδου ακεραίων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
+         <listitem>
+          <synopsis>IsPrimeMillerRabinReps = number</synopsis>
+         <para>Αριθμός των πρόσθετων δοκιμών Miller-Rabin που θα εκτελεστούν σε έναν αριθμό πριν τη δήλωση 
του ως πρώτου στην <link linkend="gel-function-IsPrime"><function>IsPrime</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
+         <listitem>
+          <synopsis>LinePlotDrawLegends = true</synopsis>
+          <para>Λέει στο Genius να σχεδιάσει τα υπομνήματα για τις <link 
linkend="genius-gel-function-list-plotting">συναρτήσεις γραφικής παράστασης γραμμής</link> όπως <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
+         <listitem>
+          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
+          <para>Λέει στο Genius να σχεδιάσει τις ετικέτες του άξονα για τις <link 
linkend="genius-gel-function-list-plotting">συναρτήσεις γραφικής παράστασης γραμμής</link> όπως <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
+         <listitem>
+          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
+          <para>Λέει στο Genius ποια ονόματα μεταβλητών χρησιμοποιούνται ως προεπιλεγμένα ονόματα για τις 
<link linkend="genius-gel-function-list-plotting">συναρτήσεις γραφικής παράστασης γραμμής</link> όπως <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> και παρόμοιες.</para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
+         <listitem>
+          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
+          <para>Ορίζει τα όρια για τις <link linkend="genius-gel-function-list-plotting">συναρτήσεις 
γραφικής παράστασης γραμμής</link> όπως <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
+         <listitem>
+          <synopsis>MaxDigits = number</synopsis>
+          <para>Μέγιστα αριθμός ψηφίων που θα εμφανίζονται.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
+         <listitem>
+          <synopsis>MaxErrors = number</synopsis>
+          <para>Μέγιστος αριθμός σφαλμάτων που θα εμφανίζονται.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
+         <listitem>
+          <synopsis>MixedFractions = boolean</synopsis>
+          <para>Αν είναι αληθές, εμφανίζονται μικτά κλάσματα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
+         <listitem>
+          <synopsis>NumericalIntegralFunction = function</synopsis>
+         <para>Η χρησιμοποιούμενη συνάρτηση για αριθμητική ολοκλήρωση στη <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
+         <listitem>
+          <synopsis>NumericalIntegralSteps = number</synopsis>
+         <para>Βήματα για εκτέλεση στη <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
+         <listitem>
+          <synopsis>OutputChopExponent = number</synopsis>
+         <para>Όταν ένας άλλος αριθμός στο αντικείμενο εμφανίζεται (πίνακας ή τιμή) που είναι μεγαλύτερος 
από 10<superscript>-OutputChopWhenExponent</superscript> και ο εμφανιζόμενος αριθμός είναι μικρότερος από 
10<superscript>-OutputChopExponent</superscript>, τότε εμφανίζεται ο <computeroutput>0.0</computeroutput> 
αντί για τον αριθμό.</para>
+<para>Η έξοδος δεν είναι ποτέ κομμένη αν η <function>OutputChopExponent</function> είναι μηδέν. Πρέπει να 
είναι ένας μη αρνητικός ακέραιος.</para>
+<para>Αν θέλετε η έξοδος να περικόπτεται πάντα σύμφωνα με την <function>OutputChopExponent</function>, τότε 
ορίστε την <function>OutputChopWhenExponent</function>, σε κάτι μεγαλύτερο από ή ίσο με 
<function>OutputChopExponent</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
+         <listitem>
+          <synopsis>OutputChopWhenExponent = number</synopsis>
+         <para>Πότε να περικόψετε την έξοδο. Δείτε <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
+         <listitem>
+          <synopsis>OutputStyle = string</synopsis>
+          <para>Η τεχνοτροπία εξόδου μπορεί να είναι <literal>κανονική</literal>, <literal>latex</literal>, 
<literal>mathml</literal> ή <literal>troff</literal>.</para>
+         <para>Αυτή επηρεάζει κυρίως πώς εμφανίζονται οι πίνακες και τα κλάσματα και είναι χρήσιμη για 
επικόλληση στα έγγραφα. Για παράδειγμα μπορείτε να την ορίσετε σε latex με: <programlisting>OutputStyle = 
"latex"
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
+         <listitem>
+          <synopsis>ResultsAsFloats = boolean</synopsis>
+          <para>Μετατροπή όλων των αποτελεσμάτων σε αριθμούς κινητής υποδιαστολής πριν την εμφάνιση.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
+         <listitem>
+          <synopsis>ScientificNotation = boolean</synopsis>
+          <para>Χρήση επιστημονικής σημειογραφίας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
+         <listitem>
+          <synopsis>SlopefieldTicks = [vertical,horizontal]</synopsis>
+          <para>Ορίζει τον αριθμό των κάθετων και οριζόντιων υποδιαιρέσεων σε μια γραφική παράσταση πεδίου 
κλίσης. (Δείτε <link linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>).</para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
+         <listitem>
+          <synopsis>SumProductNumberOfTries = number</synopsis>
+         <para>Πόσες επαναλήψεις να δοκιμαστούν για <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> και <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
+         <listitem>
+          <synopsis>SumProductSFS = number</synopsis>
+          <para>Πόσα διαδοχικά βήματα να γίνουν μέσα στην ανοχή για <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> και <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
+         <listitem>
+          <synopsis>SumProductTolerance = number</synopsis>
+          <para>Ανοχή για <link linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> 
και <link linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLegends = true</synopsis>
+          <para>Λέει στο Genius να σχεδιάσει τα υπομνήματα για τις <link 
linkend="genius-gel-function-list-plotting">συναρτήσεις γραφικής παράστασης επιφάνειας</link> όπως <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
+         <listitem>
+          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
+          <para>Tells genius which variable names are used as default names for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> using <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          Note that the <varname>z</varname> does not refer to the dependent (vertical) axis, but to the 
independent complex variable
+          <userinput>z=x+iy</userinput>.
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
+         <listitem>
+          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
+          <para>Ορίζει τα όρια για τη γραφική παράσταση επιφάνειας (Δείτε <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
+         <listitem>
+          <synopsis>VectorfieldNormalized = true</synopsis>
+          <para>Αν θα πρέπει η γραφική παράσταση του διανυσματικού πεδίου να έχει κανονικοποιημένο μήκος 
βέλους. Αν είναι αληθές, τα διανυσματικά πεδία θα εμφανίσουν μόνο την κατεύθυνση και όχι το μέγεθος. (Δείτε 
<link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
+         <listitem>
+          <synopsis>VectorfieldTicks = [vertical,horizontal]</synopsis>
+          <para>Ορίζει τον αριθμό των κάθετων και οριζόντιων υποδιαιρέσεων σε μια γραφική παράσταση 
διανυσματικού πεδίου. (Δείτε <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-constants">
+      <title>Σταθερές</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
+         <listitem>
+          <synopsis>CatalanConstant</synopsis>
+          <para>Η σταθερά του Catalan, περίπου 0.915... Ορίζεται να είναι η σειρά, όπου οι όροι είναι 
<userinput>(-1^k)/((2*k+1)^2)</userinput>, με την <varname>k</varname> να κυμαίνεται από 0 μέχρι το 
άπειρο.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Catalan%27s_constant";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/CatalansConstant.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
+         <listitem>
+          <synopsis>EulerConstant</synopsis>
+          <para>Παραλλαγές: <function>gamma</function></para>
+          <para>
+           Euler's constant gamma.  Sometimes called the
+           Euler-Mascheroni constant.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler-Mascheroni_constant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MascheroniConstant";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
+         <listitem>
+          <synopsis>GoldenRatio</synopsis>
+          <para>Η χρυσή τομή.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Golden_ratio";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GoldenRatio";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GoldenRatio.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Gravity"/>Gravity</term>
+         <listitem>
+          <synopsis>Gravity</synopsis>
+         <para>Free fall acceleration at sea level in meters per second squared.  This is the standard 
gravity constant 9.80665.  The gravity
+                 in your particular neck of the woods might be different due to different altitude and the 
fact that the earth is not perfectly
+                 round and uniform.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Standard_gravity";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-e"/>e</term>
+         <listitem>
+          <synopsis>e</synopsis>
+          <para>
+           The base of the natural logarithm.  <userinput>e^x</userinput>
+           is the exponential function
+           <link linkend="gel-function-exp"><function>exp</function></link>.  It is approximately
+           2.71828182846...  This number is sometimes called Euler's number, although there are
+           several numbers that are also called Euler's.  An example is the gamma constant: <link 
linkend="gel-function-EulerConstant"><function>EulerConstant</function></link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/E_(mathematical_constant)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/E";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/e.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-pi"/>pi</term>
+         <listitem>
+          <synopsis>pi</synopsis>
+          <para>Ο αριθμός π, που είναι ο λόγος της περιφέρειας ενός κύκλου προς τη διάμετρό του. Αυτός είναι 
περίπου 3.14159265359...</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Pi";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Pi";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pi.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-numeric">
+      <title>Αριθμητικό</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
+         <listitem>
+          <synopsis>AbsoluteValue (x)</synopsis>
+          <para>Παραλλαγές: <function>abs</function></para>
+          <para>
+           Absolute value of a number and if <varname>x</varname> is
+           a complex value the modulus of <varname>x</varname>.  I.e. this
+           the distance of <varname>x</varname> to the origin.  This is equivalent
+           to <userinput>|x|</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Absolute_value";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/AbsoluteValue";>Planetmath (absolute value)</ulink>,
+           <ulink url="http://planetmath.org/ModulusOfComplexNumber";>Planetmath (modulus)</ulink>,
+           <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld (absolute value)</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ComplexModulus.html";>Mathworld (complex modulus)</ulink>
+for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Chop"/>Chop</term>
+         <listitem>
+          <synopsis>Chop (x)</synopsis>
+          <para>Αντικατάσταση πολύ μικρού αριθμού με μηδέν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
+         <listitem>
+          <synopsis>ComplexConjugate (z)</synopsis>
+          <para>Παραλλαγές: <function>conj</function><function>Conj</function></para>
+          <para>Υπολογίζει τον μιγαδικό συζυγή του μιγαδικού αριθμού <varname>z</varname>. Αν η 
<varname>z</varname> είναι ένα διάνυσμα ή πίνακας, όλα τα στοιχεία του παίρνουν συζυγή.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Complex_conjugate";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Denominator"/>Denominator</term>
+         <listitem>
+          <synopsis>Denominator (x)</synopsis>
+          <para>Λήψη του παρανομαστή ενός ρητού αριθμού.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Denominator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
+         <listitem>
+          <synopsis>FractionalPart (x)</synopsis>
+          <para>Επιστροφή του κλασματικού μέρους ενός αριθμού.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fractional_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Im"/>Im</term>
+         <listitem>
+          <synopsis>Im (z)</synopsis>
+          <para>Παραλλαγές: <function>ImaginaryPart</function></para>
+          <para>Get the imaginary part of a complex number.  For example <userinput>Re(3+4i)</userinput> 
yields 4.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Imaginary_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
+         <listitem>
+          <synopsis>IntegerQuotient (m,n)</synopsis>
+          <para>Διαίρεση χωρίς υπόλοιπο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
+         <listitem>
+          <synopsis>IsComplex (num)</synopsis>
+         <para>Check if argument is a complex (non-real) number.  Do note that we really mean nonreal 
number.  That is,
+         <userinput>IsComplex(3)</userinput> yields false, while
+         <userinput>IsComplex(3-1i)</userinput> yields true.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
+         <listitem>
+          <synopsis>IsComplexRational (num)</synopsis>
+         <para>Ελέγχει αν το όρισμα είναι πιθανόν μιγαδικός ρητός αριθμός. Δηλαδή, αν και το πραγματικό και 
το φανταστικό μέρος δίνονται ως ρητοί αριθμοί. Φυσικά ρητός σημαίνει απλά "μη αποθηκευμένος ως αριθμός 
κινητής υποδιαστολής."</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
+         <listitem>
+          <synopsis>IsFloat (num)</synopsis>
+          <para>Check if argument is a real floating point number (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
+         <listitem>
+          <synopsis>IsGaussInteger (num)</synopsis>
+          <para>Παραλλαγές: <function>IsComplexInteger</function></para>
+         <para>Check if argument is a possibly complex integer.  That is a complex integer is a number of
+                 the form <userinput>n+1i*m</userinput> where <varname>n</varname> and <varname>m</varname>
+         are integers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
+         <listitem>
+          <synopsis>IsInteger (num)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι ένας ακέραιος (μη μιγαδικός).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
+         <listitem>
+          <synopsis>IsNonNegativeInteger (num)</synopsis>
+          <para>Check if argument is a non-negative real integer.  That is, either a positive integer or 
zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
+         <listitem>
+          <synopsis>IsPositiveInteger (num)</synopsis>
+          <para>Παραλλαγές: <function>IsNaturalNumber</function></para>
+          <para>Ελέγχει αν το όρισμα είναι θετικός πραγματικός ακέραιος. Σημειώστε ότι δεχόμαστε τη σύμβαση 
ότι το 0 δεν είναι φυσικός αριθμός.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsRational"/>IsRational</term>
+         <listitem>
+          <synopsis>IsRational (num)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι ένας ρητός αριθμός (μη μιγαδικός). Φυσικά ρητός σημαίνει απλά "μη 
αποθηκευμένος ως αριθμός κινητής υποδιαστολής."</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsReal"/>IsReal</term>
+         <listitem>
+          <synopsis>IsReal (num)</synopsis>
+          <para>Ελέγχει αν το όρισμα είναι ένας πραγματικός αριθμός.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Numerator"/>Numerator</term>
+         <listitem>
+          <synopsis>Numerator (x)</synopsis>
+          <para>Λήψη του αριθμητή ενός ρητού αριθμού.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Numerator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Re"/>Re</term>
+         <listitem>
+          <synopsis>Re (z)</synopsis>
+          <para>Παραλλαγές: <function>RealPart</function></para>
+         <para>Get the real part of a complex number.  For example <userinput>Re(3+4i)</userinput> yields 
3.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Real_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Sign"/>Sign</term>
+         <listitem>
+          <synopsis>Sign (x)</synopsis>
+          <para>Παραλλαγές: <function>sign</function></para>
+          <para>Επιστρέφει το πρόσημο ενός αριθμού. Δηλαδή επιστρέφει <literal>-1</literal> αν η τιμή είναι 
αρνητική, <literal>0</literal> αν η τιμή είναι μηδέν και <literal>1</literal> αν η τιμή είναι θετική. Αν 
<varname>x</varname> είναι μια μιγαδική τιμή τότε η <function>Sign</function> επιστρέφει την κατεύθυνση ή 
0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ceil"/>ceil</term>
+         <listitem>
+          <synopsis>ceil (x)</synopsis>
+          <para>Παραλλαγές: <function>Ceiling</function></para>
+         <para>Παίρνει τον πιο μικρό ακέραιο μεγαλύτερο από ή ίσο με τη <varname>n</varname>. Παραδείγματα: 
<screen><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
+= 2
+<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
+= -1
+</screen></para>
+          <para>Note that you should be careful and notice that floating point
+                  numbers are stored in binary and so may not be what you
+                  expect.  For example <userinput>ceil(420/4.2)</userinput>
+                  returns 101 instead of the expected 100.  This is because
+                  4.2 is actually very slightly less than 4.2.  Use rational
+                  representation <userinput>42/10</userinput> if you want
+                  exact arithmetic.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exp"/>exp</term>
+         <listitem>
+          <synopsis>exp (x)</synopsis>
+          <para>Η εκθετική συνάρτηση. Αυτή είναι η συνάρτηση <userinput>e^x</userinput> όπου 
<varname>e</varname> είναι η <link linkend="gel-function-e">βάση του φυσικού λογαρίθμου</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Exponential_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ExponentialFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-float"/>float</term>
+         <listitem>
+          <synopsis>float (x)</synopsis>
+          <para>Δημιουργεί αριθμό τιμής κινητής υποδιαστολής. Δηλαδή επιστρέφει την αναπαράσταση κινητής 
υποδιαστολής του αριθμού <varname>x</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-floor"/>floor</term>
+         <listitem>
+          <synopsis>floor (x)</synopsis>
+          <para>Παραλλαγές: <function>Floor</function></para>
+          <para>Παίρνει τον μεγαλύτερο ακέραιο που είναι μικρότερος από ή ίσος με 
<varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ln"/>ln</term>
+         <listitem>
+          <synopsis>ln (x)</synopsis>
+          <para>Ο φυσικός λογάριθμος, ο λογάριθμος με βάση το <varname>e</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Natural_logarithm";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NaturalLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log"/>log</term>
+         <listitem>
+          <synopsis>log (x)</synopsis>
+          <synopsis>log (x,b)</synopsis>
+         <para>Ο λογάριθμος του <varname>x</varname> με βάση <varname>b</varname> (καλεί <link 
linkend="gel-function-DiscreteLog"><function>DiscreteLog</function></link> αν είναι σε κατάσταση modulo), αν 
η βάση δεν δίνεται, <link linkend="gel-function-e"><varname>e</varname></link> χρησιμοποιείται.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log10"/>log10</term>
+         <listitem>
+          <synopsis>log10 (x)</synopsis>
+          <para>Ο λογάριθμος της <varname>x</varname> με βάση 10.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log2"/>log2</term>
+         <listitem>
+          <synopsis>log2 (x)</synopsis>
+          <para>Παραλλαγές: <function>lg</function></para>
+          <para>Ο λογάριθμος του <varname>x</varname> με βάση 2.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-max"/>max</term>
+         <listitem>
+          <synopsis>max (a,args...)</synopsis>
+          <para>Παραλλαγές: <function>Max</function><function>Maximum</function></para>
+          <para>Επιστρέφει το μέγιστο των ορισμάτων ή πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-min"/>min</term>
+         <listitem>
+          <synopsis>min (a,args...)</synopsis>
+          <para>Παραλλαγές: <function>Min</function><function>Minimum</function></para>
+          <para>Επιστρέφει το ελάχιστο των ορισμάτων ή πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rand"/>rand</term>
+         <listitem>
+          <synopsis>rand (size...)</synopsis>
+          <para>Δημιουργεί τυχαίο αριθμό κινητής υποδιαστολής στην περιοχή <literal>[0,1)</literal>. Αν το 
μέγεθος δίνεται, τότε ένας πίνακας (αν δύο αριθμοί ορίζονται) ή ένα διάνυσμα (αν ορίζεται ένας αριθμός) του 
δοσμένου μεγέθους επιστρέφεται.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-randint"/>randint</term>
+         <listitem>
+          <synopsis>randint (max,size...)</synopsis>
+          <para>Δημιουργεί τυχαίο ακέραιο στην περιοχή <literal>[0,max)</literal>. Αν το μέγεθος δίνεται, 
τότε ένας πίνακας (αν ορίζονται δύο αριθμοί) ή ένα διάνυσμα (αν ορίζεται ένας αριθμός) του δοσμένου μεγέθους 
επιστρέφεται. Για παράδειγμα, <screen><prompt>genius&gt;</prompt> <userinput>randint(4)</userinput>
+= 3
+<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
+=
+[0      1]
+<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
+=
+[2      2       1
+ 0      0       3]
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-round"/>round</term>
+         <listitem>
+          <synopsis>round (x)</synopsis>
+          <para>Παραλλαγές: <function>Round</function></para>
+          <para>Στρογγυλοποίηση αριθμού.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sqrt"/>sqrt</term>
+         <listitem>
+          <synopsis>sqrt (x)</synopsis>
+          <para>Παραλλαγές: <function>SquareRoot</function></para>
+          <para>Η τετραγωνική ρίζα. Όταν λειτουργεί modulo κάποιοι ακέραιοι θα επιστρέψουν ή μια 
<constant>null</constant> ή ένα διάνυσμα τετραγωνικών ριζών. Παραδείγματα: 
<screen><prompt>genius&gt;</prompt> <userinput>sqrt(2)</userinput>
+= 1.41421356237
+<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
+= 1i
+<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
+=
+[2      5]
+<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
+= 4
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Square_root";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/SquareRoot";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-trunc"/>trunc</term>
+         <listitem>
+          <synopsis>trunc (x)</synopsis>
+          <para>Παραλλαγές: <function>Truncate</function><function>IntegerPart</function></para>
+          <para>Περικοπή αριθμού σε ακέραιο (επιστροφή του ακέραιου μέρους).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-trigonometry">
+      <title>Τριγωνομετρία</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-acos"/>acos</term>
+         <listitem>
+          <synopsis>acos (x)</synopsis>
+          <para>Παραλλαγές: <function>arccos</function></para>
+          <para>Η συνάρτηση arccos (τόξο συνημιτόνου).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acosh"/>acosh</term>
+         <listitem>
+          <synopsis>acosh (x)</synopsis>
+          <para>Παραλλαγές: <function>arccosh</function></para>
+          <para>Η συνάρτηση arccosh (τόξο υπερβολικού συνημιτόνου).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acot"/>acot</term>
+         <listitem>
+          <synopsis>acot (x)</synopsis>
+          <para>Παραλλαγές: <function>arccot</function></para>
+          <para>Η συνάρτηση arccot (τόξο συνεφαπτομένης).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acoth"/>acoth</term>
+         <listitem>
+          <synopsis>acoth (x)</synopsis>
+          <para>Παραλλαγές: <function>arccoth</function></para>
+          <para>Η συνάρτηση arccoth (τόξο υπερβολικής συνεφαπτομένης).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsc"/>acsc</term>
+         <listitem>
+          <synopsis>acsc (x)</synopsis>
+          <para>Παραλλαγές: <function>arccsc</function></para>
+          <para>Η συνάρτηση τόξου συντέμνουσας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsch"/>acsch</term>
+         <listitem>
+          <synopsis>acsch (x)</synopsis>
+          <para>Παραλλαγές: <function>arccsch</function></para>
+          <para>Η συνάρτηση τόξου υπερβολικής συντέμνουσας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asec"/>asec</term>
+         <listitem>
+          <synopsis>asec (x)</synopsis>
+          <para>Παραλλαγές: <function>arcsec</function></para>
+          <para>Η συνάρτηση τόξου τέμνουσας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asech"/>asech</term>
+         <listitem>
+          <synopsis>asech (x)</synopsis>
+          <para>Παραλλαγές: <function>arcsech</function></para>
+          <para>Η συνάρτηση τόξου υπερβολικής τέμνουσας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asin"/>asin</term>
+         <listitem>
+          <synopsis>asin (x)</synopsis>
+          <para>Παραλλαγές: <function>arcsin</function></para>
+          <para>Η συνάρτηση arcsin (τόξο ημιτόνου).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asinh"/>asinh</term>
+         <listitem>
+          <synopsis>asinh (x)</synopsis>
+          <para>Παραλλαγές: <function>arcsinh</function></para>
+          <para>Η συνάρτηση arcsinh (τόξο υπερβολικού ημιτόνου).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan"/>atan</term>
+         <listitem>
+          <synopsis>atan (x)</synopsis>
+          <para>Παραλλαγές: <function>arctan</function></para>
+          <para>Υπολογίζει τη συνάρτηση arctan (τόξο εφαπτομένης).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Arctangent";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atanh"/>atanh</term>
+         <listitem>
+          <synopsis>atanh (x)</synopsis>
+          <para>Παραλλαγές: <function>arctanh</function></para>
+          <para>Η συνάρτηση arctanh (τόξο υπερβολικής εφαπτομένης).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan2"/>atan2</term>
+         <listitem>
+          <synopsis>atan2 (y, x)</synopsis>
+          <para>Παραλλαγές: <function>arctan2</function></para>
+          <para>Calculates the arctan2 function.  If
+         <userinput>x&gt;0</userinput> then it returns
+         <userinput>atan(y/x)</userinput>.  If <userinput>x&lt;0</userinput>
+         then it returns <userinput>sign(y) * (pi - atan(|y/x|)</userinput>.
+         When <userinput>x=0</userinput> it returns <userinput>sign(y) *
+         pi/2</userinput>.  <userinput>atan2(0,0)</userinput> returns 0
+         rather than failing.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Atan2";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cos"/>cos</term>
+         <listitem>
+          <synopsis>cos (x)</synopsis>
+          <para>Υπολογίζει τη συνάρτηση του συνημιτόνου.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cosh"/>cosh</term>
+         <listitem>
+          <synopsis>cosh (x)</synopsis>
+          <para>Υπολογίζει την συνάρτηση υπερβολικού συνημιτόνου.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cot"/>cot</term>
+         <listitem>
+          <synopsis>cot (x)</synopsis>
+          <para>Η συνάρτηση συνεφαπτομένης.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-coth"/>coth</term>
+         <listitem>
+          <synopsis>coth (x)</synopsis>
+          <para>Η συνάρτηση υπερβολικής συνεφαπτομένης.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csc"/>csc</term>
+         <listitem>
+          <synopsis>csc (x)</synopsis>
+          <para>Η συνάρτηση συντέμνουσας.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csch"/>csch</term>
+         <listitem>
+          <synopsis>csch (x)</synopsis>
+          <para>Η συνάρτηση υπερβολικής συντέμνουσας.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sec"/>sec</term>
+         <listitem>
+          <synopsis>sec (x)</synopsis>
+          <para>Η συνάρτηση τέμνουσας.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sech"/>sech</term>
+         <listitem>
+          <synopsis>sech (x)</synopsis>
+          <para>Η συνάρτηση υπερβολικής τέμνουσας.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sin"/>sin</term>
+         <listitem>
+          <synopsis>sin (x)</synopsis>
+          <para>Υπολογίζει τη συνάρτηση του ημιτόνου.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinh"/>sinh</term>
+         <listitem>
+          <synopsis>sinh (x)</synopsis>
+          <para>Υπολογίζει την συνάρτηση υπερβολικού ημιτόνου.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tan"/>tan</term>
+         <listitem>
+          <synopsis>tan (x)</synopsis>
+          <para>Υπολογίζει τη συνάρτηση της εφαπτομένης.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tanh"/>tanh</term>
+         <listitem>
+          <synopsis>tanh (x)</synopsis>
+          <para>Η συνάρτηση υπερβολικής εφαπτομένης.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-number-theory">
+      <title>Θεωρία αριθμών</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
+         <listitem>
+          <synopsis>AreRelativelyPrime (a,b)</synopsis>
+          <para>Είναι οι πραγματικοί ακέραιοι <varname>a</varname> και <varname>b</varname> σχετικοί πρώτοι; 
Επιστρέφει <constant>αληθές</constant> ή <constant>ψευδές</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coprime_integers";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RelativelyPrime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/RelativelyPrime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
+         <listitem>
+          <synopsis>BernoulliNumber (n)</synopsis>
+          <para>Επιστρέφει τον <varname>n</varname>στό αριθμό Bernoulli.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bernoulli_number";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/BernoulliNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
+         <listitem>
+          <synopsis>ChineseRemainder (a,m)</synopsis>
+          <para>Παραλλαγές: <function>CRT</function></para>
+         <para>Εύρεση του <varname>x</varname> που επιλύει το δοσμένο σύστημα με το διάνυσμα 
<varname>a</varname> και modulo τα στοιχεία του <varname>m</varname>, χρησιμοποιώντας το θεώρημα υπολοίπου 
του Κινέζου.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Chinese_remainder_theorem";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ChineseRemainderTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
+         <listitem>
+          <synopsis>CombineFactorizations (a,b)</synopsis>
+         <para>Με δεδομένες δύο παραγοντοποιήσεις, δίνει την παραγοντοποίηση του γινομένου.</para>
+         <para>Δείτε <link linkend="gel-function-Factorize">παραγοντοποίηση</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
+         <listitem>
+          <synopsis>ConvertFromBase (v,b)</synopsis>
+          <para>Μετατρέπει ένα διάνυσμα τιμών που δείχνει δυνάμεις του b στον αριθμό a.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
+         <listitem>
+          <synopsis>ConvertToBase (n,b)</synopsis>
+          <para>Μετατρέπει έναν αριθμό σε ένα διάνυσμα δυνάμεων για στοιχεία στη βάση 
<varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
+         <listitem>
+          <synopsis>DiscreteLog (n,b,q)</synopsis>
+          <para>Βρίσκει τον διακριτό λογάριθμο της <varname>n</varname> με βάση <varname>b</varname> στην 
F<subscript>q</subscript>, το πεπερασμένο πεδίο τάξης <varname>q</varname>, όπου η <varname>q</varname> είναι 
ένας πρώτος, χρησιμοποιώντας τον αλγόριθμο Silver-Pohlig-Hellman.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Discrete_logarithm";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/DiscreteLogarithm";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/DiscreteLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Divides"/>Divides</term>
+         <listitem>
+          <synopsis>Divides (m,n)</synopsis>
+          <para>Ελέγχει τη διαιρετότητα (αν η <varname>m</varname> διαιρεί την <varname>n</varname>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
+         <listitem>
+          <synopsis>EulerPhi (n)</synopsis>
+          <para>Υπολογίζει τη συνάρτηση φι του Όιλερ για την <varname>n</varname>, δηλαδή τον αριθμό των 
ακεραίων μεταξύ 1 και <varname>n</varname> που είναι σχετικά πρώτοι με την <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler_phi";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/EulerPhifunction";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/TotientFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
+         <listitem>
+          <synopsis>ExactDivision (n,d)</synopsis>
+          <para>Επιστρέφει <userinput>n/d</userinput>, αλλά μόνο αν η <varname>d</varname> διαιρεί την 
<varname>n</varname>. Αν η <varname>d</varname> δεν διαιρεί την <varname>n</varname>, τότε αυτή η συνάρτηση 
επιστρέφει σκουπίδια. Αυτή είναι πολύ πιο γρήγορη για πολύ μεγάλους αριθμούς από την πράξη 
<userinput>n/d</userinput>, αλλά φυσικά χρήσιμη μόνο αν ξέρετε ότι η διαίρεση είναι ακριβής.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorize"/>Factorize</term>
+         <listitem>
+          <synopsis>Factorize (n)</synopsis>
+          <para>Επιστρέφει την παραγοντοποίηση ενός αριθμού ως πίνακα. Η πρώτη γραμμή είναι οι πρώτοι στην 
παραγοντοποίηση (συμπεριλαμβάνοντας το 1) και η δεύτερη γραμμή είναι οι δυνάμεις. Έτσι για παράδειγμα: 
<screen><prompt>genius&gt;</prompt> <userinput>Factorize(11*11*13)</userinput>
+=
+[1      11      13
+ 1      2       1]</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Factorization";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factors"/>Factors</term>
+         <listitem>
+          <synopsis>Factors (n)</synopsis>
+          <para>Επιστρέφει όλους τους παράγοντες της <varname>n</varname> σε ένα διάνυσμα. Αυτή περιλαμβάνει 
όλους τους μη πρώτους παράγοντες επίσης. Περιλαμβάνει το 1 και τον ίδιο τον αριθμό. Έτσι για παράδειγμα για 
να εμφανίσετε όλους τους τέλειους αριθμούς (αυτούς που είναι αθροίσματα των παραγόντων τους) μέχρι τον αριθμό 
1000 μπορείτε να κάνετε (αυτό φυσικά είναι πολύ ανεπαρκές) <programlisting>for n=1 to 1000 do (
+    if MatrixSum (Factors(n)) == 2*n then
+        print(n)
+)
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
+         <listitem>
+          <synopsis>FermatFactorization (n,tries)</synopsis>
+          <para>Δοκιμάζει την παραγοντοποίηση Φερμά της <varname>n</varname> στο 
<userinput>(t-s)*(t+s)</userinput>, επιστρέφει τις <varname>t</varname> και <varname>s</varname> ως ένα 
διάνυσμα αν είναι δυνατό, αλλιώς <constant>null</constant>. Η <varname>tries</varname> καθορίζει τον αριθμό 
των προσπαθειών πριν να σταματήσει.</para>
+          <para>Αυτή είναι μια αρκετά καλή παραγοντοποίηση, αν ο αριθμός σας είναι το γινόμενο δύο 
παραγόντων που είναι πολύ κοντά μεταξύ τους.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fermat_factorization";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindPrimitiveElementMod (q)</synopsis>
+          <para>Βρίσκει το πρώτο βασικό στοιχείο στην F<subscript>q</subscript>, την πεπερασμένη ομάδα της 
τάξης <varname>q</varname>. Φυσικά η <varname>q</varname> πρέπει να είναι πρώτος.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
+          <para>Βρίσκει ένα τυχαίο βασικό στοιχείο στην F<subscript>q</subscript>, την πεπερασμένη ομάδα της 
τάξης <varname>q</varname> (το q πρέπει να είναι πρώτος).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
+         <listitem>
+          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
+          <para>Υπολογίζει τη διακριτή λογαριθμική βάση <varname>b</varname> του n στο 
F<subscript>q</subscript>, την πεπερασμένη ομάδα της τάξης <varname>q</varname> (<varname>q</varname> είναι 
ένας πρώτος), χρησιμοποιώντας τη βάση του συντελεστή <varname>S</varname>. Η <varname>S</varname> πρέπει να 
είναι μια στήλη πρώτων πιθανόν με μια δεύτερη στήλη προϋπολογισμένη από την <link 
linkend="gel-function-IndexCalculusPrecalculation"><function>IndexCalculusPrecalculation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
+         <listitem>
+          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
+         <para>Εκτελεί το βήμα προϋπολογισμού του <link 
linkend="gel-function-IndexCalculus"><function>IndexCalculus</function></link> για λογαρίθμους με βάση 
<varname>b</varname> στο F<subscript>q</subscript>, την πεπερασμένη ομάδα της τάξης <varname>q</varname> 
(<varname>q</varname> είναι ένας πρώτος), για τη βάση συντελεστή <varname>S</varname> (όπου 
<varname>S</varname> είναι ένα διάνυσμα στήλης πρώτων). Οι λογάριθμοι θα προϋπολογιστούν και θα επιστραφούν 
στη δεύτερη στήλη.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsEven"/>IsEven</term>
+         <listitem>
+          <synopsis>IsEven (n)</synopsis>
+          <para>Ελέγχει αν ο ακέραιος είναι άρτιος.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
+         <listitem>
+          <synopsis>IsMersennePrimeExponent (p)</synopsis>
+          <para>Ελέγχει αν ο θετικός ακέραιος <varname>p</varname> είναι ένας εκθέτης πρώτου Μερσέν. Δηλαδή, 
αν 2<superscript>p</superscript>-1 είναι ένας πρώτος. Το κάνει αναζητώντας τον σε έναν πίνακα γνωστών τιμών 
που είναι σχετικά σύντομος. Δείτε επίσης <link 
linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> και <link 
linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
+         <listitem>
+          <synopsis>IsNthPower (m,n)</synopsis>
+          <para>Ελέγχει αν ένας ρητός αριθμός <varname>m</varname> είναι μια τέλεια <varname>n</varname>στή 
δύναμη. Δείτε επίσης <link linkend="gel-function-IsPerfectPower">IsPerfectPower</link> και <link 
linkend="gel-function-IsPerfectSquare">IsPerfectSquare</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
+         <listitem>
+          <synopsis>IsOdd (n)</synopsis>
+          <para>Έλεγχος αν ο ακέραιος είναι περιττός.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
+         <listitem>
+          <synopsis>IsPerfectPower (n)</synopsis>
+          <para>Check an integer for being any perfect power, a<superscript>b</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
+         <listitem>
+          <synopsis>IsPerfectSquare (n)</synopsis>
+          <para>
+           Check an integer for being a perfect square of an integer.  The number must
+           be an integer.  Negative integers are of course never perfect
+           squares of integers.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
+         <listitem>
+          <synopsis>IsPrime (n)</synopsis>
+          <para>Ελέγχει τους πρώτους αριθμούς ακεραίων, για αριθμούς μικρότερους από 2.5e10 η απάντηση είναι 
προσδιοριστική (αν η υπόθεση Ρίμαν είναι αληθής). Για αριθμούς μεγαλύτερους, η πιθανότητα ψευδών θετικών 
εξαρτάται από την <link 
linkend="gel-function-IsPrimeMillerRabinReps"><function>IsPrimeMillerRabinReps</function></link>. Δηλαδή, η 
πιθανότητα ψευδούς θετικού είναι 1/4 στη δύναμη <function>IsPrimeMillerRabinReps</function>. Η προεπιλεγμένη 
τιμή του 22 δίνει μια πιθανότητα περίπου 5.7e-14.</para>
+          <para>Αν η <constant>ψευδής</constant> επιστρέφεται, μπορείτε να είστε σίγουροι ότι ο αριθμός 
είναι σύνθετος. Αν θέλετε να είσαστε ολότελα βέβαιοι ότι έχετε έναν πρώτο μπορείτε να χρησιμοποιήσετε την 
<link linkend="gel-function-MillerRabinTestSure"><function>MillerRabinTestSure</function></link>, αλλά μπορεί 
να πάρει πολύ περισσότερο.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
+         <listitem>
+          <synopsis>IsPrimitiveMod (g,q)</synopsis>
+          <para>Ελέγχει αν το <varname>g</varname> είναι βασικό στην F<subscript>q</subscript>, η 
πεπερασμένη ομάδα της τάξης <varname>q</varname>, όπου <varname>q</varname> είναι ένας πρώτος. Αν το 
<varname>q</varname> δεν είναι πρώτος τα αποτελέσματα είναι ψευδή.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
+         <listitem>
+          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
+          <para>Ελέγχει αν το <varname>g</varname> είναι βασικό στην F<subscript>q</subscript>, την 
πεπερασμένη ομάδα της τάξης <varname>q</varname>, όπου <varname>q</varname> είναι ένας πρώτος και το 
<varname>f</varname> είναι ένα διάνυσμα πρώτων παραγόντων του <varname>q</varname>-1. Αν το 
<varname>q</varname> δεν είναι πρώτος τα αποτελέσματα είναι ψευδή.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
+         <listitem>
+          <synopsis>IsPseudoprime (n,b)</synopsis>
+          <para>Αν το <varname>n</varname> είναι ένας ψευδοπρώτος με βάση <varname>b</varname> αλλά όχι ένας 
πρώτος, δηλαδή αν <userinput>b^(n-1) == 1 mod n</userinput>. Αυτό καλεί την <link 
linkend="gel-function-PseudoprimeTest"><function>PseudoprimeTest</function></link></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
+         <listitem>
+          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
+          <para>Ελέγχει αν το <varname>n</varname> είναι ένας ισχυρός ψευδοπρώτος με βάση 
<varname>b</varname>, αλλά όχι πρώτος.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
+         <listitem>
+          <synopsis>Jacobi (a,b)</synopsis>
+          <para>Παραλλαγές: <function>JacobiSymbol</function></para>
+          <para>Υπολογίζει το σύμβολο Τζακόμπι (a/b) (το b πρέπει να είναι περιττός).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
+         <listitem>
+          <synopsis>JacobiKronecker (a,b)</synopsis>
+          <para>Παραλλαγές: <function>JacobiKroneckerSymbol</function></para>
+          <para>Υπολογίζει το σύμβολο Τζακόμπι (a/b) με την επέκταση Κρόνεκερ (a/2)=(2/a) όταν είναι 
περιττός, ή (a/2)=0 όταν είναι άρτιος.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
+         <listitem>
+          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
+          <para>Επιστρέφει το υπόλοιπο του <varname>a</varname> mod <varname>n</varname>, με την ελάχιστη 
απόλυτη τιμή (στο διάστημα -n/2 έως n/2).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Legendre"/>Legendre</term>
+         <listitem>
+          <synopsis>Legendre (a,p)</synopsis>
+          <para>Παραλλαγές: <function>LegendreSymbol</function></para>
+          <para>Υπολογίζει το σύμβολο Λεζάντρ (a/p).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/LegendreSymbol";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LegendreSymbol.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
+         <listitem>
+          <synopsis>LucasLehmer (p)</synopsis>
+          <para>Ελέγχει αν 2<superscript>p</superscript>-1 είναι ένας πρώτος Μερσέν χρησιμοποιώντας τη 
δοκιμή Lucas-Lehmer. Δείτε επίσης <link 
linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> και <link 
linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasLhemer";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Lucas-LehmerTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
+         <listitem>
+          <synopsis>LucasNumber (n)</synopsis>
+          <para>Επιστρέφει τον <varname>n</varname>στο αριθμό Lucas.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas_number";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasNumbers";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LucasNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
+         <listitem>
+          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
+          <para>Επιστρέφει όλους τους μέγιστους πρώτους παράγοντες δύναμης ενός αριθμού.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
+         <listitem>
+          <synopsis>MersennePrimeExponents</synopsis>
+          <para>Ένα διάνυσμα με γνωστούς πρώτους εκθέτες Μερσέν, δηλαδή ένας κατάλογος θετικών ακεραίων 
<varname>p</varname> έτσι ώστε το 2<superscript>p</superscript>-1 να είναι πρώτος. Δείτε επίσης <link 
linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link> και <link 
linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
+         <listitem>
+          <synopsis>MillerRabinTest (n,reps)</synopsis>
+          <para>Χρησιμοποιεί τη δοκιμή πρώτων αριθμών Miller-Rabin στο <varname>n</varname>, 
<varname>reps</varname> είναι ο αριθμός των φορών. Η πιθανότητα ενός ψευδούς θετικού είναι 
<userinput>(1/4)^reps</userinput>. Είναι προφανώς συνήθως καλύτερο να χρησιμοποιήσετε <link 
linkend="gel-function-IsPrime"><function>IsPrime</function></link> αφού είναι γρηγορότερο και καλύτερο σε 
μικρότερους ακέραιους.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink> 
or
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
+         <listitem>
+          <synopsis>MillerRabinTestSure (n)</synopsis>
+          <para>
+           Use the Miller-Rabin primality test on <varname>n</varname> with
+           enough bases that assuming the Generalized Riemann Hypothesis the
+           result is deterministic.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink>, or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
+         <listitem>
+          <synopsis>ModInvert (n,m)</synopsis>
+          <para>Επιστρέφει τον αντίστροφο του n mod m.</para>
+          <para>Δείτε <ulink url="http://mathworld.wolfram.com/ModularInverse.html";>Mathworld</ulink> για 
περισσότερες πληροφορίες.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
+         <listitem>
+          <synopsis>MoebiusMu (n)</synopsis>
+          <para>Επιστρέφει την συνάρτηση mu του Moebius υπολογισμένη στο <varname>n</varname>. Δηλαδή, 
επιστρέφει 0 αν το <varname>n</varname> δεν είναι γινόμενο διακριτών πρώτων και <userinput>(-1)^k</userinput> 
αν είναι γινόμενο των <varname>k</varname> διακριτών πρώτων.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/MoebiusFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/MoebiusFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
+         <listitem>
+          <synopsis>NextPrime (n)</synopsis>
+          <para>Επιστρέφει τον ελάχιστο πρώτο που είναι μεγαλύτερος από τον <varname>n</varname>. Οι 
αρνητικοί των πρώτων θεωρούνται πρώτοι και έτσι για να πάρετε τον προηγούμενο πρώτο μπορείτε να 
χρησιμοποιήσετε <userinput>-NextPrime(-n)</userinput>.</para>
+          <para>Αυτή η συνάρτηση χρησιμοποιεί τη <function>mpz_nextprime</function> του GMP που με τη σειρά 
της χρησιμοποιεί την πιθανοθεωρητική δοκιμή Μίλερ-Ράμπιν (Δείτε επίσης <link 
linkend="gel-function-MillerRabinTest"><function>MillerRabinTest</function></link>). Η πιθανότητα ψευδούς 
θετικού δεν ρυθμίζεται, αλλά είναι αρκετά χαμηλή για όλους τους πρακτικούς σκοπούς.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
+         <listitem>
+          <synopsis>PadicValuation (n,p)</synopsis>
+          <para>Επιστρέφει τον υπολογισμό p-adic (αριθμός των τελικών μηδενικών στη βάση 
<varname>p</varname>).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/P-adic_order";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/PAdicValuation";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
+         <listitem>
+          <synopsis>PowerMod (a,b,m)</synopsis>
+          <para>
+           Compute <userinput>a^b mod m</userinput>.  The
+           <varname>b</varname>'s power of <varname>a</varname> modulo
+           <varname>m</varname>.  It is not necessary to use this function
+           as it is automatically used in modulo mode.  Hence
+           <userinput>a^b mod m</userinput> is just as fast.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Prime"/>Prime</term>
+         <listitem>
+          <synopsis>Prime (n)</synopsis>
+          <para>Παραλλαγές: <function>prime</function></para>
+          <para>Επιστρέφει τον <varname>n</varname>στό πρώτο (μέχρι ένα όριο).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
+         <listitem>
+          <synopsis>PrimeFactors (n)</synopsis>
+          <para>Επιστρέφει όλους τους πρώτους παράγοντες ενός αριθμού ως διάνυσμα.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Prime_factor";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeFactor.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
+         <listitem>
+          <synopsis>PseudoprimeTest (n,b)</synopsis>
+         <para>Δοκιμή ψευδοπρώτου, επιστρέφει <constant>αληθές</constant> αν και μόνο αν <userinput>b^(n-1) 
== 1  mod n</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Pseudoprime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pseudoprime.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
+         <listitem>
+          <synopsis>RemoveFactor (n,m)</synopsis>
+          <para>Αφαιρεί όλα τα στιγμιότυπα του παράγοντα <varname>m</varname> από τον αριθμό 
<varname>n</varname>. Δηλαδή, διαιρεί με τη μέγιστη δύναμη του <varname>m</varname>, που διαιρεί το 
<varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Divisibility";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Factor.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
+         <listitem>
+          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
+          <para>Βρίσκει τους διακριτούς λογάριθμους του <varname>n</varname> με βάση το <varname>b</varname> 
στο F<subscript>q</subscript>, την πεπερασμένη ομάδα της τάξης <varname>q</varname>, όπου 
<varname>q</varname> είναι ένας πρώτος που χρησιμοποιεί τον αλγόριθμο Silver-Pohlig-Hellman, με δεδομένο το 
<varname>f</varname> είναι η παραγοντοποίηση του <varname>q</varname>-1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
+         <listitem>
+          <synopsis>SqrtModPrime (n,p)</synopsis>
+          <para>Βρίσκει την τετραγωνική ρίζα του <varname>n</varname> modulo <varname>p</varname> (όπου το 
<varname>p</varname> είναι πρώτος). Null επιστρέφεται αν δεν είναι ένα υπόλοιπο δευτεροβάθμιας.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticResidue";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QuadraticResidue.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
+         <listitem>
+          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
+          <para>Εκτελεί τη δοκιμή ισχυρού ψευδοπρώτου με βάση <varname>b</varname> στο 
<varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Strong_pseudoprime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/StrongPseudoprime";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/StrongPseudoprime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-gcd"/>gcd</term>
+         <listitem>
+          <synopsis>gcd (a,args...)</synopsis>
+          <para>Παραλλαγές: <function>GCD</function></para>
+          <para>
+           Greatest common divisor of integers.  You can enter as many
+           integers as you want in the argument list, or you can give
+           a vector or a matrix of integers.  If you give more than
+           one matrix of the same size then GCD is done element by
+           element.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greatest_common_divisor";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/GreatestCommonDivisor";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/GreatestCommonDivisor.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-lcm"/>lcm</term>
+         <listitem>
+          <synopsis>lcm (a,args...)</synopsis>
+          <para>Παραλλαγές: <function>LCM</function></para>
+          <para>
+           Least common multiplier of integers.  You can enter as many
+           integers as you want in the argument list, or you can give a 
+           vector or a matrix of integers.  If you give more than one
+           matrix of the same size then LCM is done element by element.    
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Least_common_multiple";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LeastCommonMultiple";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LeastCommonMultiple.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-matrix">
+      <title>Διαχείριση πινάκων</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix (a,func)</synopsis>
+          <para>Εφαρμόζει μια συνάρτηση σε όλες τις καταχωρίσεις ενός πίνακα και επιστρέφει έναν πίνακα των 
αποτελεσμάτων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix2 (a,b,func)</synopsis>
+          <para>Εφαρμόζει μια συνάρτηση σε όλες τις καταχωρίσεις των 2 πινάκων (ή 1 τιμή και 1 πίνακα) και 
επιστρέφει έναν πίνακα των αποτελεσμάτων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
+         <listitem>
+          <synopsis>ColumnsOf (M)</synopsis>
+          <para>Παίρνει τις στήλες ενός πίνακα ως οριζόντιο διάνυσμα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
+         <listitem>
+          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
+          <para>Αφαιρεί στήλες και γραμμές από έναν πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
+         <listitem>
+          <synopsis>CompoundMatrix (k,A)</synopsis>
+          <para>Υπολογίζει τον kστό σύνθετο πίνακα του Α.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
+         <listitem>
+          <synopsis>CountZeroColumns (M)</synopsis>
+          <para>
+          Count the number of zero columns in a matrix.  For example,
+          once you column-reduce a matrix, you can use this to find
+          the nullity.  See <link linkend="gel-function-cref"><function>cref</function></link>
+          and <link linkend="gel-function-Nullity"><function>Nullity</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
+         <listitem>
+          <synopsis>DeleteColumn (M,col)</synopsis>
+          <para>Διαγράφει μια στήλη ενός πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
+         <listitem>
+          <synopsis>DeleteRow (M,row)</synopsis>
+          <para>Διαγράφει μια γραμμή ενός πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
+         <listitem>
+          <synopsis>DiagonalOf (M)</synopsis>
+          <para>Δίνει τις διαγώνιες καταχωρίσεις ενός πίνακα ως διάνυσμα στήλης.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_of_a_matrix#Matrices";>Wikipedia</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
+         <listitem>
+          <synopsis>DotProduct (u,v)</synopsis>
+         <para>Get the dot product of two vectors.  The vectors must be of the
+                 same size.  No conjugates are taken so this is a bilinear form even if working over the 
complex numbers; This is the bilinear scalar product not the sesquilinear scalar product.  See <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link> for the standard sesquilinear inner 
product.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Dot_product";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DotProduct";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
+         <listitem>
+          <synopsis>ExpandMatrix (M)</synopsis>
+          <para>Επεκτείνει έναν πίνακα ακριβώς όπως κάνουμε με εισόδους πίνακα χωρίς κλείσιμο εισαγωγικών. 
Δηλαδή, επεκτείνουμε οποιουσδήποτε εσωτερικούς πίνακες ως ομάδες. Αυτός είναι ένας τρόπος για να 
κατασκευάσετε πίνακες από μικρότερους και αυτό γίνεται κανονικά αυτόματα σε εισόδους εκτός και ο πίνακας 
είναι με εισαγωγικά.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
+         <listitem>
+          <synopsis>HermitianProduct (u,v)</synopsis>
+          <para>Παραλλαγές: <function>InnerProduct</function></para>
+          <para>Δίνει το ερμιτιανό γινόμενο δύο διανυσμάτων. Τα διανύσματα πρέπει να είναι του ίδιου 
μεγέθους. Αυτό είναι μια γραμμικο-ημιγραμμική μορφή χρησιμοποιώντας τον ταυτοτικό πίνακα.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sesquilinear_form";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/HermitianInnerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-I"/>I</term>
+         <listitem>
+          <synopsis>I (n)</synopsis>
+          <para>Παραλλαγές: <function>eye</function></para>
+         <para>Επιστρέφει έναν ταυτοτικό πίνακα δοσμένου μεγέθους, δηλαδή <varname>n</varname> επί 
<varname>n</varname>. Αν το <varname>n</varname> είναι μηδέν, επιστρέφει <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Identity_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/IdentityMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
+         <listitem>
+          <synopsis>IndexComplement (vec,msize)</synopsis>
+          <para>Επιστρέφει το συμπλήρωμα δείκτη ενός διανύσματος δεικτών. Ο πρώτος δείκτης είναι ένα. Για 
παράδειγμα για διάνυσμα <userinput>[2,3]</userinput> και μέγεθος <userinput>5</userinput>, επιστρέφει 
<userinput>[1,4,5]</userinput>. Αν <varname>msize</varname> είναι 0, επιστρέφει πάντα 
<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
+         <listitem>
+          <synopsis>IsDiagonal (M)</synopsis>
+          <para>Αν είναι ένας διαγώνιος πίνακας.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
+         <listitem>
+          <synopsis>IsIdentity (x)</synopsis>
+          <para>Ελέγχει αν ένας πίνακας είναι ο ταυτοτικός πίνακας. Επιστρέφει αυτόματα 
<constant>ψευδές</constant> αν ο πίνακας δεν είναι τετραγωνικός. Δουλεύει επίσης με αριθμούς και σε αυτήν την 
περίπτωση είναι ισοδύναμος με <userinput>x==1</userinput>. Όταν <varname>x</varname> είναι 
<constant>null</constant> (μπορούμε να τον θεωρήσουμε ως έναν πίνακα 0 επί 0), δεν δημιουργείται κανένα 
σφάλμα και επιστρέφεται <constant>ψευδές</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
+         <listitem>
+          <synopsis>IsLowerTriangular (M)</synopsis>
+          <para>Αν είναι ένας κάτω τριγωνικός πίνακας. Δηλαδή, αν είναι όλες οι καταχωρίσεις πάνω από τη 
διαγώνιο είναι μηδέν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
+         <listitem>
+          <synopsis>IsMatrixInteger (M)</synopsis>
+          <para>Check if a matrix is a matrix of integers (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
+         <listitem>
+          <synopsis>IsMatrixNonnegative (M)</synopsis>
+          <para>Ελέγχει αν ο πίνακας είναι μη αρνητικός, δηλαδή, αν κάθε στοιχείο είναι μη αρνητικός. Μην 
μπερδεύετε θετικά πίνακες με θετικούς ημιορισμένους πίνακες.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
+         <listitem>
+          <synopsis>IsMatrixPositive (M)</synopsis>
+         <para>Ελέγχει αν ένας πίνακας είναι θετικός, δηλαδή, αν κάθε στοιχείο είναι θετικό (και συνεπώς 
πραγματικό). Ειδικά, κανένα στοιχείο δεν είναι 0. Μην μπερδεύετε θετικούς πίνακες με θετικά ορισμένους 
πίνακες.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
+         <listitem>
+          <synopsis>IsMatrixRational (M)</synopsis>
+          <para>Ελέγχει αν ένας πίνακας είναι ένας πίνακας ρητών αριθμών (μη μιγαδικός).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
+         <listitem>
+          <synopsis>IsMatrixReal (M)</synopsis>
+          <para>Ελέγχει αν ένας πίνακας είναι ένας πίνακας πραγματικών αριθμών (μη μιγαδικός).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
+         <listitem>
+          <synopsis>IsMatrixSquare (M)</synopsis>
+          <para>Ελέγχει αν ένας πίνακας είναι τετράγωνος, δηλαδή, αν το πλάτος του είναι ίσο με το ύψος 
του.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
+         <listitem>
+          <synopsis>IsUpperTriangular (M)</synopsis>
+          <para>Είναι ένας άνω τριγωνικός πίνακας; Δηλαδή, ένας πίνακας είναι άνω τριγωνικός αν όλες οι 
καταχωρίσεις κάτω από τη διαγώνιο είναι μηδέν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
+         <listitem>
+          <synopsis>IsValueOnly (M)</synopsis>
+          <para>Ελέγχει αν ο πίνακας είναι ένας πίνακας μόνο αριθμών. Πολλές εσωτερικές συναρτήσεις κάνουν 
αυτόν τον έλεγχο. Οι τιμές μπορεί να είναι οποιοιδήποτε αριθμοί συμπεριλαμβανομένων μιγαδικών αριθμών.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsVector"/>IsVector</term>
+         <listitem>
+          <synopsis>IsVector (v)</synopsis>
+          <para>Αν είναι το όρισμα οριζόντιο ή κάθετο διάνυσμα. Η Genius δεν ξεχωρίζει μεταξύ πίνακα και 
διανύσματος και ένα διάνυσμα είναι απλά ένας πίνακας 1 επί <varname>n</varname> ή <varname>n</varname> επί 
1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsZero"/>IsZero</term>
+         <listitem>
+          <synopsis>IsZero (x)</synopsis>
+          <para>Ελέγχει αν ένας πίνακας αποτελείται όλος από μηδενικά. Δουλεύει επίσης και σε αριθμούς, 
οπότε είναι ισοδύναμος με <userinput>x==0</userinput>. Όταν η <varname>x</varname> είναι 
<constant>null</constant> (μπορούμε να σκεφτούμε ως έναν πίνακα 0 επί 0), δεν δημιουργείται κανένα σφάλμα και 
επιστρέφεται η <constant>true</constant> επειδή η συνθήκη είναι κενή.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
+         <listitem>
+          <synopsis>LowerTriangular (M)</synopsis>
+          <para>Επιστρέφει ένα αντίγραφο του πίνακα <varname>M</varname> με όλες τις καταχωρίσεις πάνω από 
τη διαγώνιο ορισμένες σε μηδέν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
+         <listitem>
+          <synopsis>MakeDiagonal (v,arg...)</synopsis>
+          <para>Παραλλαγές: <function>diag</function></para>
+         <para>Δημιουργεί έναν διαγώνιο πίνακα από ένα διάνυσμα. Εναλλακτικά μπορείτε να περάσετε στις τιμές 
για να βάλετε τη διαγώνιο ως ορίσματα. Έτσι <userinput>MakeDiagonal([1,2,3])</userinput> είναι το ίδιο με 
<userinput>MakeDiagonal(1,2,3)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
+         <listitem>
+          <synopsis>MakeVector (A)</synopsis>
+          <para>Δημιουργεί ένα διάνυσμα στήλης από έναν πίνακα βάζοντας στήλες τις μεν πάνω από τις άλλες. 
Επιστρέφει <constant>null</constant> όταν δίνεται <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
+         <listitem>
+          <synopsis>MatrixProduct (A)</synopsis>
+          <para>Υπολογίζει το γινόμενο όλων των στοιχείων σε ένα πίνακα ή διάνυσμα. Δηλαδή, πολλαπλασιάζουμε 
όλα τα στοιχεία και επιστρέφει έναν αριθμό που είναι το γινόμενο όλων των στοιχείων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
+         <listitem>
+          <synopsis>MatrixSum (A)</synopsis>
+          <para>Υπολογίζει το άθροισμα όλων των στοιχείων σε ένα πίνακα ή διάνυσμα. Δηλαδή, προσθέτουμε όλα 
τα στοιχεία και επιστρέφει έναν αριθμό που είναι το άθροισμα όλων των στοιχείων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
+         <listitem>
+          <synopsis>MatrixSumSquares (A)</synopsis>
+          <para>Υπολογίζει το άθροισμα των τετραγώνων όλων των στοιχείων σε έναν πίνακα ή διάνυσμα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroColumns"/>NonzeroColumns</term>
+         <listitem>
+          <synopsis>NonzeroColumns (M)</synopsis>
+          <para>Επιστρέφει ένα διάνυσμα γραμμής των δεικτών των μη μηδενικών στηλών στον πίνακα 
<varname>M</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroElements"/>NonzeroElements</term>
+         <listitem>
+          <synopsis>NonzeroElements (v)</synopsis>
+          <para>Επιστρέφει ένα διάνυσμα γραμμής των δεικτών των μη μηδενικών στοιχείων του διανύσματος 
<varname>v</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
+         <listitem>
+          <synopsis>OuterProduct (u,v)</synopsis>
+          <para>Δίνει το εξωτερικό γινόμενο δύο διανυσμάτων. Δηλαδή, ας υποθέσουμε ότι <varname>u</varname> 
και <varname>v</varname> είναι κάθετα διανύσματα, τότε το εξωτερικό γινόμενο είναι <userinput>v * 
u.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
+         <listitem>
+          <synopsis>ReverseVector (v)</synopsis>
+         <para>Αντίστροφα στοιχεία σε ένα διάνυσμα. Επιστρέφει <constant>null</constant> αν δίνεται 
<constant>null</constant></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSum"/>RowSum</term>
+         <listitem>
+          <synopsis>RowSum (m)</synopsis>
+          <para>Υπολογίζει το άθροισμα κάθε γραμμής σε έναν πίνακα και επιστρέφει ένα κάθετο διάνυσμα με το 
αποτέλεσμα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
+         <listitem>
+          <synopsis>RowSumSquares (m)</synopsis>
+          <para>Υπολογίζει το άθροισμα των τετραγώνων κάθε γραμμής σε έναν πίνακα και επιστρέφει ένα κάθετο 
διάνυσμα με τα αποτελέσματα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
+         <listitem>
+          <synopsis>RowsOf (M)</synopsis>
+         <para>Δίνει τις γραμμές ενός πίνακα ως κάθετο διάνυσμα. Κάθε στοιχείο του διανύσματος είναι ένα 
οριζόντιο διάνυσμα που είναι η αντίστοιχη γραμμή του <varname>M</varname>. Αυτή η συνάρτηση είναι χρήσιμη, αν 
θέλετε να κάνετε βρόχο στις γραμμές ενός πίνακα. Για παράδειγμα, ως <userinput>for r in RowsOf(M) do
+something(r)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
+         <listitem>
+          <synopsis>SetMatrixSize (M,rows,columns)</synopsis>
+          <para>Δημιουργεί νέο πίνακα δεδομένου μεγέθους από τον παλιό. Δηλαδή, θα επιστραφεί ένας νέος 
πίνακας στον οποίον ο παλιός αντιγράφηκε. Οι καταχωρίσεις που δεν ταιριάζουν περικόπτονται και ο πρόσθετος 
χώρος συμπληρώνεται με μηδενικά. Αν <varname>rows</varname> ή <varname>columns</varname> είναι μηδέν, τότε 
επιστρέφεται <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
+         <listitem>
+          <synopsis>ShuffleVector (v)</synopsis>
+         <para>Shuffle elements in a vector.  Return <constant>null</constant> if given 
<constant>null</constant>.</para>
+         <para>Version 1.0.13 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SortVector"/>SortVector</term>
+         <listitem>
+          <synopsis>SortVector (v)</synopsis>
+          <para>Ταξινόμηση στοιχείων διανύσματος με αύξουσα διάταξη.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
+         <listitem>
+          <synopsis>StripZeroColumns (M)</synopsis>
+          <para>Αφαιρεί όλες τις ολότελα μηδενικές στήλες του <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
+         <listitem>
+          <synopsis>StripZeroRows (M)</synopsis>
+          <para>Αφαιρεί όλες τις ολότελα μηδενικές γραμμές του <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
+         <listitem>
+          <synopsis>Submatrix (m,r,c)</synopsis>
+          <para>Επιστρέφει στήλες και γραμμές από έναν πίνακα. Αυτό είναι ακριβώς ισοδύναμο με το 
<userinput>m@(r,c)</userinput>. Τα <varname>r</varname> και <varname>c</varname> πρέπει να είναι διανύσματα 
γραμμών και στηλών (ή μεμονωμένοι αριθμοί αν χρειάζεται μόνο μια γραμμή ή στήλη).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
+         <listitem>
+          <synopsis>SwapRows (m,row1,row2)</synopsis>
+          <para>Εναλλάσσει δύο γραμμές σε έναν πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
+         <listitem>
+          <synopsis>UpperTriangular (M)</synopsis>
+          <para>Επιστρέφει ένα αντίγραφο του πίνακα <varname>M</varname> με όλες τις καταχωρίσεις κάτω από 
τη διαγώνιο ορισμένες σε μηδέν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-columns"/>columns</term>
+         <listitem>
+          <synopsis>columns (M)</synopsis>
+          <para>Δίνει τον αριθμό των στηλών ενός πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-elements"/>elements</term>
+         <listitem>
+          <synopsis>elements (M)</synopsis>
+          <para>Δίνει τον συνολικό αριθμό των στοιχείων ενός πίνακα. Αυτός είναι ο αριθμός των στηλών επί 
τον αριθμό των γραμμών.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ones"/>ones</term>
+         <listitem>
+          <synopsis>ones (rows,columns...)</synopsis>
+         <para>Δημιουργεί έναν πίνακα από όλους (ή ένα διάνυσμα γραμμής αν δίνεται μόνο ένα όρισμα). 
Επιστρέφει <constant>null</constant> αν οποιαδήποτε σειρά ή στήλη είναι μηδέν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rows"/>rows</term>
+         <listitem>
+          <synopsis>rows (M)</synopsis>
+          <para>Δίνει τον αριθμό των γραμμών ενός πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-zeros"/>zeros</term>
+         <listitem>
+          <synopsis>zeros (rows,columns...)</synopsis>
+         <para>Δημιουργεί έναν πίνακα όλων των μηδενικών (ή ένα διάνυσμα γραμμής αν δίνεται μόνο ένα 
όρισμα). Επιστρέφει <constant>null</constant> αν οποιαδήποτε σειρά ή στήλη είναι μηδέν.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-linear-algebra">
+      <title>Γραμμική Άλγεβρα</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
+         <listitem>
+          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
+          <para>Δίνει τον βοηθητικό μοναδιαίο πίνακα μεγέθους <varname>n</varname>. Αυτός είναι ένας 
τετραγωνικός πίνακας με όλα μηδέν εκτός από την υπερδιαγώνιο που είναι όλα 1. Είναι ο σύνθετος πίνακας Jordan 
με ιδιοτιμή ενός μηδενικού.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information 
on Jordan Canonical Form.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
+         <listitem>
+          <synopsis>BilinearForm (v,A,w)</synopsis>
+          <para>Υπολογίζει (v,w) ως προς τη διγραμμική μορφή που δίνεται από τον πίνακα Α.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
+         <listitem>
+          <synopsis>BilinearFormFunction (A)</synopsis>
+          <para>Επιστρέφει μια συνάρτηση που υπολογίζει δύο διανύσματα ως προς τη διγραμμική μορφή που 
δίνεται από το Α.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomial (M)</synopsis>
+          <para>Παραλλαγές: <function>CharPoly</function></para>
+         <para>Δίνει το χαρακτηριστικό πολυώνυμο ως διάνυσμα. Δηλαδή, επιστρέφει τους συντελεστές του 
πολυωνύμου ξεκινώντας με τον σταθερό όρο. Αυτό είναι το πολυώνυμο που ορίστηκε από 
<userinput>det(M-xI)</userinput>. Οι ρίζες αυτού του πολυωνύμου είναι οι ιδιοτιμές του <varname>M</varname>. 
Δείτε επίσης <link 
linkend="gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
+         <para>Δίνει το χαρακτηριστικό πολυώνυμο ως συνάρτηση. Αυτό είναι το πολυώνυμο που ορίστηκε από το 
<userinput>det(M-xI)</userinput>. Οι ρίζες αυτού του πολυωνύμου είναι οι ιδιοτιμές του <varname>M</varname>. 
Δείτε επίσης <link linkend="gel-function-CharacteristicPolynomial">CharacteristicPolynomial</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
+         <listitem>
+          <synopsis>ColumnSpace (M)</synopsis>
+         <para>Δίνει έναν πίνακα βάσης για τον χώρο στηλών ενός πίνακα. Δηλαδή, επιστρέφει έναν πίνακα του 
οποίου οι στήλες είναι η βάση για τον χώρο στηλών του <varname>M</varname>. Αυτός είναι ο χώρος που 
καλύπτεται από τις στήλες του <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
+         <listitem>
+          <synopsis>CommutationMatrix (m, n)</synopsis>
+         <para>Επιστρέφει τον αντιμεταθετικό πίνακα <userinput>K(m,n)</userinput> που είναι ο μοναδικός 
πίνακας <userinput>m*n</userinput> επί <userinput>m*n</userinput> τέτοιος ώστε <userinput>K(m,n) * 
MakeVector(A) = MakeVector(A.')</userinput> για όλους τους πίνακες <varname>Α</varname> <varname>m</varname> 
επί <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
+         <listitem>
+          <synopsis>CompanionMatrix (p)</synopsis>
+          <para>Συνοδός πίνακας ενός πολυωνύμου (ως διανύσματος).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
+         <listitem>
+          <synopsis>ConjugateTranspose (M)</synopsis>
+          <para>Συζυγής ανάστροφος πίνακας (συζυγής). Αυτός είναι ο ίδιος με τον τελεστή 
<userinput>'</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Conjugate_transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ConjugateTranspose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Convolution"/>Convolution</term>
+         <listitem>
+          <synopsis>Convolution (a,b)</synopsis>
+          <para>Παραλλαγές: <function>convol</function></para>
+          <para>Υπολογίζει τη συνέλιξη των δύο οριζόντιων διανυσμάτων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
+         <listitem>
+          <synopsis>ConvolutionVector (a,b)</synopsis>
+          <para>Υπολογίζει τη συνέλιξη των δύο οριζόντιων διανυσμάτων. Επιστρέφει αποτέλεσμα ως διάνυσμα του 
οποίου τα στοιχεία δεν προστίθεται μαζί.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
+         <listitem>
+          <synopsis>CrossProduct (v,w)</synopsis>
+         <para>Διανυσματικό γινόμενο δύο διανυσμάτων στο R<superscript>3</superscript> ως διάνυσμα 
στήλης.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Cross_product";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
+         <listitem>
+          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
+          <para>Get the determinantal divisors of an integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
+         <listitem>
+          <synopsis>DirectSum (M,N...)</synopsis>
+          <para>Ευθύ άθροισμα των πινάκων.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
+         <listitem>
+          <synopsis>DirectSumMatrixVector (v)</synopsis>
+          <para>Ευθύ άθροισμα ενός διανύσματος πινάκων.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
+         <listitem>
+          <synopsis>Eigenvalues (M)</synopsis>
+          <para>Παραλλαγές: <function>eig</function></para>
+          <para>Δίνει τις ιδιοτιμές ενός τετραγωνικού πίνακα. Προς το παρόν δουλεύει μόνο για πίνακες 
μεγέθους μέχρι 4 επί 4, ή για τριγωνικούς πίνακες (για τους οποίους οι ιδιοτιμές είναι στη διαγώνιο).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvalue";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvalue";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvalue.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
+         <listitem>
+          <synopsis>Eigenvectors (M)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues, &amp;multiplicities)</synopsis>
+         <para>Δίνει τα ιδιοδιανύσματα ενός τετραγωνικού πίνακα. Προαιρετικά παίρνετε επίσης τις ιδιοτιμές 
και τις αλγεβρικές πολλαπλότητες. Προς το παρόν δουλεύει μόνο για πίνακες μεγέθους μέχρι 2 επί 2.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvector";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvector";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvector.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
+         <listitem>
+          <synopsis>GramSchmidt (v,B...)</synopsis>
+         <para>Εφαρμόζει τη διεργασία Gram-Schmidt (στις στήλες) ως προς το εσωτερικό γινόμενο που δίνεται 
από το <varname>B</varname>. Αν το <varname>B</varname> δεν δίνεται, τότε χρησιμοποιείται το τυπικό ερμιτιανό 
γινόμενο. Το <varname>B</varname> μπορεί να είναι ή γραμμικο-ημιγραμμική συνάρτηση δύο ορισμάτων ή μπορεί να 
είναι ένας πίνακας που δίνει μια γραμμικο-ημιγραμμική μορφή. Τα διανύσματα θα γίνονται ορθοκανονικά ως προς 
το <varname>B</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GramSchmidtOrthogonalization";>Planetmath</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
+         <listitem>
+          <synopsis>HankelMatrix (c,r)</synopsis>
+         <para>Hankel matrix, a matrix whose skew-diagonals are constant.  <varname>c</varname> is the first 
row and <varname>r</varname> is the
+                 last column.  It is assumed that both arguments are vectors and the last element of 
<varname>c</varname> is the same
+                 as the first element of <varname>r</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hankel_matrix";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
+         <listitem>
+          <synopsis>HilbertMatrix (n)</synopsis>
+          <para>Πίνακας Χίλμπερτ τάξης <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Image"/>Image</term>
+         <listitem>
+          <synopsis>Image (T)</synopsis>
+          <para>Δίνει την εικόνα (διάστημα στήλης) ενός γραμμικού μετασχηματισμού.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
+         <listitem>
+          <synopsis>InfNorm (v)</synopsis>
+          <para>Δίνει την απειρονόρμα ενός διανύσματος, μερικές φορές λέγεται νόρμα ελάχιστου άνω φράγματος 
ή νόρμα μεγίστου.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
+         <listitem>
+          <synopsis>InvariantFactorsInteger (M)</synopsis>
+          <para>Get the invariant factors of a square integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
+         <listitem>
+          <synopsis>InverseHilbertMatrix (n)</synopsis>
+          <para>Αντίστροφος πίνακας Χίλμπερτ τάξης <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
+         <listitem>
+          <synopsis>IsHermitian (M)</synopsis>
+          <para>Αν είναι ένας ερμιτιανός πίνακας. Δηλαδή, αν είναι ίσος με τον ανάστροφο συζυγή.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hermitian_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HermitianMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
+         <listitem>
+          <synopsis>IsInSubspace (v,W)</synopsis>
+          <para>Ελέγχει αν ένα διάνυσμα είναι σε έναν υπόχωρο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
+         <listitem>
+          <synopsis>IsInvertible (n)</synopsis>
+          <para>Αν είναι ένας πίνακας (ή αριθμός) αντιστρέψιμος (ένας ακέραιος πίνακας είναι αντιστρέψιμος 
αν και μόνο αν είναι αντιστρέψιμος στους ακέραιους).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
+         <listitem>
+          <synopsis>IsInvertibleField (n)</synopsis>
+          <para>Αν είναι ένας πίνακας (ή αριθμός) αντιστρέψιμος σε ένα πεδίο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
+         <listitem>
+          <synopsis>IsNormal (M)</synopsis>
+          <para>Αν είναι ο <varname>M</varname> ένας κανονικός πίνακας. Δηλαδή, κάνει <userinput>M*M' == 
M'*M</userinput>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/NormalMatrix";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
+         <listitem>
+          <synopsis>IsPositiveDefinite (M)</synopsis>
+          <para>Αν είναι το <varname>M</varname> ένας ερμιτιανός θετικά ορισμένος πίνακας. Δηλαδή, αν το 
<userinput>HermitianProduct(M*v,v)</userinput> είναι πάντα αυστηρά θετικό για κάθε διάνυσμα 
<varname>v</varname>. Ο <varname>M</varname> πρέπει να είναι τετραγωνικός και ερμιτιανός για να είναι θετικά 
ορισμένος. Ο έλεγχος που εκτελείται είναι ότι κάθε βασικός υποπίνακας έχει μία μη αρνητική ορίζουσα. (Δείτε 
<link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>Σημειώστε ότι κάποιοι συγγραφείς (για παράδειγμα Mathworld) δεν απαιτούν ο 
<varname>M</varname> να είναι ερμιτιανός και τότε η συνθήκη είναι στο πραγματικό μέρος του εσωτερικού 
γινομένου, αλλά δεν παίρνουμε αυτήν την πλευρά. Αν θέλετε να εκτελέσετε αυτόν τον έλεγχο, ελέγξτε απλά το 
ερμητιανό μέρος του πίνακα <varname>M</varname> ως εξής: 
<userinput>IsPositiveDefinite(M+M')</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive-definite_matrix";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/PositiveDefinite";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
+         <listitem>
+          <synopsis>IsPositiveSemidefinite (M)</synopsis>
+          <para>Αν είναι ο <varname>M</varname> ένας ερμιτιανός θετικά ημιορισμένος πίνακας. Δηλαδή, αν το 
<userinput>HermitianProduct(M*v,v)</userinput> είναι πάντα μη αρνητικό για κάθε διάνυσμα 
<varname>v</varname>. Το <varname>M</varname> πρέπει να είναι τετραγωνικός και ερμιτιανός για να είναι θετικά 
ημιορισμένος. Ο έλεγχος που εκτελείται είναι ότι κάθε βασικός υποπίνακας έχει μια μη αρνητική ορίζουσα. 
(Δείτε <link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>Σημειώστε ότι κάποιοι συγγραφείς δεν απαιτούν ο <varname>M</varname> να είναι ερμιτιανός και 
τότε η συνθήκη είναι στο πραγματικό μέρος του εσωτερικού γινομένου, αλλά δεν παίρνουμε αυτήν την πλευρά. Αν 
θέλετε να εκτελέσετε αυτόν τον έλεγχο, ελέγξτε απλά το ερμιτιανό μέρος του πίνακα <varname>M</varname> ως 
εξής: <userinput>IsPositiveSemidefinite(M+M')</userinput>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PositiveSemidefinite";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html";>Mathworld</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
+         <listitem>
+          <synopsis>IsSkewHermitian (M)</synopsis>
+          <para>Αν είναι ο πίνακας λοξός ερμιτιανός. Δηάδή, αν είναι ο συζυγής ανάστροφος ίσος με τον 
αρνητικό του πίνακα.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SkewHermitianMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
+         <listitem>
+          <synopsis>IsUnitary (M)</synopsis>
+          <para>Είναι ένας πίνακας μοναδιαίος; Δηλαδή, αν είναι οι <userinput>M'*M</userinput> and 
<userinput>M*M'</userinput> ίσοι στην ταυτότητα.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/UnitaryTransformation";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/UnitaryMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
+         <listitem>
+          <synopsis>JordanBlock (n,lambda)</synopsis>
+          <para>Παραλλαγές: <function>J</function></para>
+          <para>Δίνει το μπλοκ Jordan που αντιστοιχεί στην ιδιοτιμή <varname>lambda</varname> με 
πολλαπλότητα <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Kernel"/>Kernel</term>
+         <listitem>
+          <synopsis>Kernel (T)</synopsis>
+          <para>Δίνει τον πυρήνα (διάστημα κενού) ενός γραμμικού μετασχηματισμού.</para>
+         <para>(Δείτε <link linkend="gel-function-NullSpace">NullSpace</link>)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerProduct"/>KroneckerProduct</term>
+         <listitem>
+          <synopsis>KroneckerProduct (M, N)</synopsis>
+          <para>Παραλλαγές: <function>TensorProduct</function></para>
+         <para>Υπολογίζει το γινόμενο Κρόνεκερ (γινόμενο τανυστή σε τυπική βάση) δύο πινάκων.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Kronecker_product";>Wikipedia</ulink>, 
+           <ulink url="http://planetmath.org/KroneckerProduct";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/KroneckerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
+         <listitem>
+          <synopsis>LUDecomposition (A, L, U)</synopsis>
+          <para>
+                 Get the LU decomposition of <varname>A</varname>, that is
+                 find a lower triangular matrix and upper triangular
+                 matrix whose product is <varname>A</varname>.
+           Store the result in the <varname>L</varname> and
+           <varname>U</varname>, which should be references.  It returns <constant>true</constant>
+           if successful.
+           For example suppose that A is a square matrix, then after running:
+           <screen><prompt>genius&gt;</prompt> <userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
+</screen>
+           You will have the lower matrix stored in a variable called
+           <varname>L</varname> and the upper matrix in a variable called
+           <varname>U</varname>.
+         </para>
+         <para>Αυτή είναι η ανάλυση LU ενός πίνακα γνωστό και ως Crout και/ή αναγωγή Σολεσκί. (ISBN 
0-201-11577-8 pp.99-103) Ο άνω τριγωνικός πίνακας χαρακτηρίζει μια διαγώνιο τιμών 1 (ένα). Αυτή δεν είναι η 
μέθοδος του Doolittle που χαρακτηρίζει τη διαγώνιο του 1 στον κάτω πίνακα.</para>
+         <para>Δεν έχουν όλοι οι πίνακες αναλύσεις LU, για παράδειγμα το <userinput>[0,1;1,0]</userinput> 
δεν έχει και αυτή η συνάρτηση επιστρέφει <constant>false</constant> σε αυτήν την περίπτωση και ορίζει 
<varname>L</varname> και<varname>U</varname> σε <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/LU_decomposition";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LUDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LUDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Minor"/>Minor</term>
+         <listitem>
+          <synopsis>Minor (M,i,j)</synopsis>
+          <para>Δίνει τον ελάσσονα <varname>i</varname>-<varname>j</varname> ενός πίνακα.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Minor";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
+         <listitem>
+          <synopsis>NonPivotColumns (M)</synopsis>
+          <para>Επιστρέφει τις στήλες που δεν είναι οδηγούσες στήλες ενός πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Norm"/>Norm</term>
+         <listitem>
+          <synopsis>Norm (v,p...)</synopsis>
+          <para>Παραλλαγές: <function>norm</function></para>
+          <para>Δίνει τη νόρμα p (ή νόρμα 2 αν κανένα p δεν δίνεται) ενός διανύσματος.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
+         <listitem>
+          <synopsis>NullSpace (T)</synopsis>
+          <para>Δίνει τον μηδενικό χώρο ενός πίνακα. Δηλαδή, τον πυρήνα της γραμμικής απεικόνισης που 
απεικονίζει ο πίνακας. Αυτός επιστρέφεται ως ένας πίνακας του οποίου ο χώρος στηλών είναι ο μηδενικός χώρος 
του <varname>T</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullspace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Nullity"/>Nullity</term>
+         <listitem>
+          <synopsis>Nullity (M)</synopsis>
+          <para>Παραλλαγές: <function>nullity</function></para>
+          <para>Δίνει την μηδενικότητα ενός πίνακα. Δηλαδή, επιστρέφει τη διάσταση του μηδενικού χώρου· η 
διάσταση του πυρήνα του <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullity";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
+         <listitem>
+          <synopsis>OrthogonalComplement (M)</synopsis>
+          <para>Δίνει του ορθογωνίου συμπληρώματος του χώρου στήλης.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
+         <listitem>
+          <synopsis>PivotColumns (M)</synopsis>
+          <para>Επιστρέφει τις οδηγούσες στήλες ενός πίνακα, δηλαδή τις στήλες που έχουν ένα αρχικό 1 σε 
ανηγμένη μορφή κατά γραμμές. Επίσης επιστρέφει τη γραμμή που αυτό συμβαίνει.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Projection"/>Projection</term>
+         <listitem>
+          <synopsis>Projection (v,W,B...)</synopsis>
+         <para>Προβολή του διανύσματος <varname>v</varname> στον υπόχωρο <varname>W</varname> ως προς το 
δοσμένο εσωτερικό γινόμενο από το <varname>B</varname>. Αν το <varname>B</varname> δεν δίνεται, τότε το 
τυπικό ερμιτιανό γινόμενο χρησιμοποιείται. Το <varname>B</varname> μπορεί ή να είναι γραμμικο-ημιγραμμική 
συνάρτηση των δύο ορισμάτων ή μπορεί να είναι ένας πίνακας που δίνει μια γραμμικο-ημιγραμμική μορφή.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
+         <listitem>
+          <synopsis>QRDecomposition (A, Q)</synopsis>
+          <para>Δίνει την ανάλυση QR ενός τετραγωνικού πίνακα <varname>A</varname>, επιστρέφει τον άνω 
τριγωνικό πίνακα <varname>R</varname> και ορίζει το <varname>Q</varname> στον ορθογώνιο (μοναδιαίο) πίνακα. 
Το <varname>Q</varname> πρέπει να είναι μια αναφορά ή <constant>null</constant>, αν δεν θέλετε καμιά 
επιστροφή. Για παράδειγμα: <screen><prompt>genius&gt;</prompt> <userinput>R = 
QRDecomposition(A,&amp;Q)</userinput>
+</screen> Θα έχετε τον άνω τριγωνικό πίνακα αποθηκευμένο σε μια μεταβλητή που λέγεται <varname>R</varname> 
και τον ορθογώνιο (μοναδιαίο) πίνακα αποθηκευμένο στο <varname>Q</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/QR_decomposition";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/QRDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QRDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
+         <listitem>
+          <synopsis>RayleighQuotient (A,x)</synopsis>
+          <para>Επιστρέφει το πηλίκο Ρέιλι (λέγεται επίσης πηλίκο ή λόγος Ρέιλι-Ρίτζ) ενός πίνακα και ενός 
διανύσματος.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
+         <listitem>
+          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</synopsis>
+          <para>Βρίσκει τις ιδιοτιμές του <varname>A</varname> χρησιμοποιώντας τη μέθοδο επανάληψης πηλίκου 
Ρέιλι. Το <varname>x</varname> είναι μια πρόβλεψη στο ιδιοδιάνυσμα και μπορεί να είναι τυχαία. Πρέπει να έχει 
μη μηδενικό φανταστικό μέρος, αν θα έχει κάποια πιθανότητα στην εύρεση μιγαδικών ιδιοτιμών. Ο κώδικας θα 
εκτελεστεί στις περισσότερες επαναλήψεις <varname>maxiter</varname> και θα επιστρέψει 
<constant>null</constant> αν δε μπορούμε να πάρουμε ένα σφάλμα του <varname>epsilon</varname>. Το 
<varname>vecref</varname> πρέπει να είναι <constant>null</constant> ή μια αναφορά σε μεταβλητή όπου το 
ιδιοδιάνυσμα πρ�
 �πει να αποθηκευτεί.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information on 
Rayleigh quotient.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rank"/>Rank</term>
+         <listitem>
+          <synopsis>Rank (M)</synopsis>
+          <para>Παραλλαγές: <function>rank</function></para>
+          <para>Δίνει την τάξη ενός πίνακα.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SylvestersLaw";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
+         <listitem>
+          <synopsis>RosserMatrix ()</synopsis>
+          <para>Επιστρέφει τον πίνακα Ρόσερ, που είναι ένα κλασικό συμμετρικό πρόβλημα δοκιμής 
ιδιοτιμής.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
+         <listitem>
+          <synopsis>Rotation2D (angle)</synopsis>
+          <para>Aliases: <function>RotationMatrix</function></para>
+          <para>Επιστρέφει τον πίνακα που αντιστοιχεί στην περιστροφή γύρω από το αρχικό στο 
R<superscript>2</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
+         <listitem>
+          <synopsis>Rotation3DX (angle)</synopsis>
+          <para>Επιστρέφει τον πίνακα που αντιστοιχεί στην περιστροφή γύρω από τον αρχικό στο 
R<superscript>3</superscript> γύρω από τον άξονα x.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
+         <listitem>
+          <synopsis>Rotation3DY (angle)</synopsis>
+          <para>Επιστρέφει τον πίνακα που αντιστοιχεί στην περιστροφή γύρω από τον αρχικό στο 
R<superscript>3</superscript> γύρω από τον άξονα y.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
+         <listitem>
+          <synopsis>Rotation3DZ (angle)</synopsis>
+          <para>Επιστρέφει τον πίνακα που αντιστοιχεί στην περιστροφή γύρω από τον αρχικό στο 
R<superscript>3</superscript> γύρω από τον άξονα z.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
+         <listitem>
+          <synopsis>RowSpace (M)</synopsis>
+          <para>Δίνει έναν πίνακα βάσης για χώρο γραμμών ενός πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
+         <listitem>
+          <synopsis>SesquilinearForm (v,A,w)</synopsis>
+          <para>Υπολογίζει το (v,w) ως προς τη γραμμικο-ημιγραμμική μορφή που δίνεται από τον πίνακα 
Α.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
+         <listitem>
+          <synopsis>SesquilinearFormFunction (A)</synopsis>
+          <para>Επιστρέφει μια συνάρτηση που υπολογίζει δύο διανύσματα ως προς τη γραμμικο-ημιγραμμική μορφή 
που δίνεται από το Α.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
+         <listitem>
+          <synopsis>SmithNormalFormField (A)</synopsis>
+          <para>Επιστρέφει την κανονική μορφή Σμιθ ενός πίνακα για πεδία (θα τελειώνει με 1 στη 
διαγώνιο).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
+         <listitem>
+          <synopsis>SmithNormalFormInteger (M)</synopsis>
+          <para>Return the Smith normal form for square integer matrices over integers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
+         <listitem>
+          <synopsis>SolveLinearSystem (M,V,args...)</synopsis>
+         <para>Επιλύει το γραμμικό σύστημα Mx=V, επιστρέφει τη λύση V αν υπάρχει μια μοναδική λύση, αλλιώς 
<constant>null</constant>. Δύο πρόσθετες παράμετροι αναφοράς μπορούν να χρησιμοποιηθούν προαιρετικά για να 
δώσουν τα ανηγμένα M και V.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
+         <listitem>
+          <synopsis>ToeplitzMatrix (c, r...)</synopsis>
+         <para>Επιστρέφει τον πίνακα Toeplitz που κατασκευάστηκε με δεδομένη την πρώτη στήλη c και 
(προαιρετικά) την πρώτη γραμμή r. Αν δίνεται μόνο η στήλη c, τότε είναι συζυγής και η μη συζυγής έκδοση 
χρησιμοποιείται για να δώσει η πρώτη γραμμή τον ερμιτιανό πίνακα (αν το πρώτο στοιχείο είναι πραγματικός 
φυσικά).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Toeplitz_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ToeplitzMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Trace"/>Trace</term>
+         <listitem>
+          <synopsis>Trace (M)</synopsis>
+          <para>Παραλλαγές: <function>trace</function></para>
+          <para>Υπολογίζει το ίχνος ενός πίνακα. Δηλαδή, το άθροισμα των διαγώνιων στοιχείων.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trace_(linear_algebra)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Trace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Transpose"/>Transpose</term>
+         <listitem>
+          <synopsis>Transpose (M)</synopsis>
+          <para>Ανάστροφος ενός πίνακα. Αυτός είναι ο ίδιος με τον τελεστή <userinput>.'</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Transpose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
+         <listitem>
+          <synopsis>VandermondeMatrix (v)</synopsis>
+          <para>Παραλλαγές: <function>vander</function></para>
+          <para>Επιστρέφει τον πίνακα Vandermonde.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Vandermonde_matrix";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
+         <listitem>
+          <synopsis>VectorAngle (v,w,B...)</synopsis>
+          <para>Η γωνία των δύο διανυσμάτων ως προς το εσωτερικό γινόμενο που δίνει ο <varname>B</varname>. 
Αν ο <varname>B</varname> δεν δίνεται, τότε το τυπικό ερμιτιανό γινόμενο χρησιμοποιείται. Ο 
<varname>B</varname> μπορεί είτε να είναι γραμμικο-ημιγραμμική συνάρτηση δύο ορισμάτων ή μπορεί να είναι ένας 
πίνακας που δίνει μια γραμμικο-ημιγραμμική μορφή.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
+         <listitem>
+          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
+          <para>Το ευθύ άθροισμα των διαστημάτων διανύσματος Μ και Ν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
+         <listitem>
+          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
+          <para>Τομή των υποχώρων που δίνονται από Μ και Ν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
+         <listitem>
+          <synopsis>VectorSubspaceSum (M,N)</synopsis>
+          <para>Το άθροισμα των διανυσματικών χώρων M και N, δηλαδή {w | w=m+n, m στο M, n στο N}.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-adj"/>adj</term>
+         <listitem>
+          <synopsis>adj (m)</synopsis>
+          <para>Παραλλαγές: <function>Adjugate</function></para>
+          <para>Δίνει τον κλασικό συζυγή ενός πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cref"/>cref</term>
+         <listitem>
+          <synopsis>cref (M)</synopsis>
+          <para>Παραλλαγές: <function>CREF</function><function>ColumnReducedEchelonForm</function></para>
+          <para>Υπολογίζει την ανηγμένη κλιμακωτή μορφή κατά στήλες.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-det"/>det</term>
+         <listitem>
+          <synopsis>det (M)</synopsis>
+          <para>Παραλλαγές: <function>Determinant</function></para>
+          <para>Δίνει την ορίζουσα ενός πίνακα.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Determinant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Determinant2";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ref"/>ref</term>
+         <listitem>
+          <synopsis>ref (M)</synopsis>
+          <para>Παραλλαγές: <function>REF</function><function>RowEchelonForm</function></para>
+         <para>Δίνει την μορφή κλιμακωτής γραμμής ενός πίνακα. Δηλαδή, εφαρμόζει την απαλοιφή Γκάους, αλλά 
όχι την πίσω πρόσθεση στο <varname>M</varname>. Οι οδηγούσες γραμμές διαιρούνται για να κάνουν όλους τους 
οδηγούς 1.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rref"/>rref</term>
+         <listitem>
+          <synopsis>rref (M)</synopsis>
+          <para>Παραλλαγές: <function>RREF</function><function>ReducedRowEchelonForm</function></para>
+          <para>Δίνει τη ανηγμένη κλιμακωτή μορφή κατά γραμμές ενός πίνακα. Δηλαδή, εφαρμόζει την απαλοιφή 
Γκάους μαζί με την πίσω πρόσθεση στο <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Reduced_row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ReducedRowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-combinatorics">
+      <title>Συνδυαστική Ανάλυση</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Catalan"/>Catalan</term>
+         <listitem>
+          <synopsis>Catalan (n)</synopsis>
+          <para>Δίνει τον <varname>n</varname>στό αριθμό Catalan.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CatalanNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Combinations"/>Combinations</term>
+         <listitem>
+          <synopsis>Combinations (k,n)</synopsis>
+          <para>Δίνει όλους τους συνδυασμούς των k αριθμών από 1 μέχρι n ως ένα διάνυσμα διανυσμάτων. (Δείτε 
επίσης <link linkend="gel-function-NextCombination">NextCombination</link>)</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
+         <listitem>
+          <synopsis>DoubleFactorial (n)</synopsis>
+          <para>Διπλό παραγοντικό: <userinput>n(n-2)(n-4)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/DoubleFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorial"/>Factorial</term>
+         <listitem>
+          <synopsis>Factorial (n)</synopsis>
+          <para>Παραγοντικό: <userinput>n(n-1)(n-2)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Factorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
+         <listitem>
+          <synopsis>FallingFactorial (n,k)</synopsis>
+          <para>Μειούμενο παραγοντικό: <userinput>(n)_k = n(n-1)...(n-(k-1))</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FallingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
+         <listitem>
+          <synopsis>Fibonacci (x)</synopsis>
+          <para>Παραλλαγές: <function>fib</function></para>
+          <para>Υπολογίζει τον <varname>n</varname>στό αριθμό Φιμπονάτσι. Δηλαδή, τον αριθμό που ορίζεται 
αναδρομικά από <userinput>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</userinput> και 
<userinput>Fibonacci(1) = Fibonacci(2) = 1</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fibonacci_number";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/FibonacciSequence";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FibonacciNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
+         <listitem>
+          <synopsis>FrobeniusNumber (v,arg...)</synopsis>
+          <para>
+           Calculate the Frobenius number.  That is calculate largest
+           number that cannot be given as a non-negative integer linear
+           combination of a given vector of non-negative integers.
+           The vector can be given as separate numbers or a single vector.
+           All the numbers given should have GCD of 1.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coin_problem";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FrobeniusNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
+         <listitem>
+          <synopsis>GaloisMatrix (combining_rule)</synopsis>
+          <para>Galois matrix given a linear combining rule (a_1*x_1+...+a_n*x_n=x_(n+1)).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
+         <listitem>
+          <synopsis>GreedyAlgorithm (n,v)</synopsis>
+          <para>Βρίσκει το διάνυσμα <varname>c</varname> μη αρνητικών ακεραίων έτσι ώστε να παίρνει το 
εσωτερικό γινόμενο με το <varname>v</varname> να είναι ίσο με n. Αν δεν είναι δυνατό, επιστρέφει 
<constant>null</constant>. Το <varname>v</varname> πρέπει να δίνεται ταξινομημένο με αύξουσα διάταξη και 
πρέπει να αποτελείται από μη αρνητικούς ακέραιους.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greedy_algorithm";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GreedyAlgorithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
+         <listitem>
+          <synopsis>HarmonicNumber (n,r)</synopsis>
+          <para>Παραλλαγές: <function>HarmonicH</function></para>
+         <para>Harmonic Number, the <varname>n</varname>th harmonic number of order <varname>r</varname>.
+               That is, it is the sum of <userinput>1/k^r</userinput> for <varname>k</varname>
+               from 1 to n.  Equivalent to <userinput>sum k = 1 to n do 1/k^r</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Harmonic_number";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
+         <listitem>
+          <synopsis>Hofstadter (n)</synopsis>
+          <para>Η συνάρτηση Χόφσταντερ q(n) ορίζεται από q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2)).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hofstadter_sequence";>Wikipedia</ulink> for more 
information.
+           The sequence is <ulink url="https://oeis.org/A005185";>A005185 in OEIS</ulink>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
+         <listitem>
+          <synopsis>LinearRecursiveSequence (seed_values,combining_rule,n)</synopsis>
+          <para>Υπολογίζει τη γραμμική κυκλική ακολουθία χρησιμοποιώντας το βηματισμό Γκαλουά.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
+         <listitem>
+          <synopsis>Multinomial (v,arg...)</synopsis>
+          <para>Υπολογίζει τους πολυωνυμικούς συντελεστές. Παίρνει ένα διάνυσμα από <varname>k</varname> μη 
αρνητικούς ακέραιους και υπολογίζει τον πολυωνυμικό συντελεστή. Αυτός αντιστοιχεί με τον συντελεστή στο 
ομογενές πολυώνυμο σε <varname>k</varname> μεταβλητές με τις αντίστοιχες δυνάμεις.</para>
+         <para>Ο τύπος για <userinput>Multinomial(a,b,c)</userinput> μπορεί να γραφτεί ως: 
<programlisting>(a+b+c)! / (a!b!c!)
+</programlisting> Με άλλα λόγια, αν μπορούμε να έχουμε δύο μόνο στοιχεία, τότε το 
<userinput>Multinomial(a,b)</userinput> είναι το ίδιο με το <userinput>Binomial(a+b,a)</userinput> ή 
<userinput>Binomial(a+b,b)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Multinomial_theorem";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MultinomialTheorem";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/MultinomialCoefficient.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
+         <listitem>
+          <synopsis>NextCombination (v,n)</synopsis>
+         <para>Δίνει τον συνδυασμό που μπορεί να έρθει μετά το v στην κλήση στους συνδυασμούς της 
συνάρτησης, ο πρώτος συνδυασμός πρέπει να είναι <userinput>[1:k]</userinput>. Αυτή η συνάρτηση είναι χρήσιμη, 
αν έχετε πολλούς συνδυασμούς να περάσετε και δεν θέλετε να σπαταλήσετε μνήμη για να τους αποθηκεύσετε 
όλους.</para>
+         <para>
+           For example with Combinations you would normally write a loop like:
+          <screen><userinput>for n in Combinations (4,6) do (
+  SomeFunction (n)
+);</userinput>
+</screen>
+           But with NextCombination you would write something like:
+          <screen><userinput>n:=[1:4];
+do (
+  SomeFunction (n)
+) while not IsNull(n:=NextCombination(n,6));</userinput>
+</screen>
+         See also <link linkend="gel-function-Combinations">Combinations</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Pascal"/>Pascal</term>
+         <listitem>
+          <synopsis>Pascal (i)</synopsis>
+          <para>Δίνει το τρίγωνο του Πασκάλ ως πίνακα. Αυτό θα επιστρέψει έναν <varname>i</varname>+1 επί 
<varname>i</varname>+1 κάτω διαγώνιο πίνακα που είναι το τρίγωνο Πασκάλ μετά από <varname>i</varname> 
επαναλήψεις.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PascalsTriangle";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Permutations"/>Permutations</term>
+         <listitem>
+          <synopsis>Permutations (k,n)</synopsis>
+          <para>Δίνει όλες τις μεταθέσεις των <varname>k</varname> αριθμών από 1 μέχρι <varname>n</varname> 
ως ένα διάνυσμα διανυσμάτων.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
+         <listitem>
+          <synopsis>RisingFactorial (n,k)</synopsis>
+          <para>Παραλλαγές: <function>Pochhammer</function></para>
+          <para>(Pochhammer) Rising factorial: (n)_k = n(n+1)...(n+(k-1)).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RisingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
+         <listitem>
+          <synopsis>StirlingNumberFirst (n,m)</synopsis>
+          <para>Παραλλαγές: <function>StirlingS1</function></para>
+          <para>Ο αριθμός Στέρλινγκ πρώτου είδους.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersOfTheFirstKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
+         <listitem>
+          <synopsis>StirlingNumberSecond (n,m)</synopsis>
+          <para>Παραλλαγές: <function>StirlingS2</function></para>
+          <para>Ο αριθμός Στέρλινγκ δεύτερου είδους.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersSecondKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html";>Mathworld</ulink> 
for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
+         <listitem>
+          <synopsis>Subfactorial (n)</synopsis>
+          <para>Subfactorial: n! times sum_{k=0}^n (-1)^k/k!.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Triangular"/>Triangular</term>
+         <listitem>
+          <synopsis>Triangular (nth)</synopsis>
+          <para>Υπολογίζει τον <varname>n</varname>στό τριγωνικό αριθμό.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/TriangularNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nCr"/>nCr</term>
+         <listitem>
+          <synopsis>nCr (n,r)</synopsis>
+          <para>Παραλλαγές: <function>Binomial</function></para>
+          <para>Υπολογίζει συνδυασμούς, δηλαδή, τον συντελεστή διωνύμου. Το <varname>n</varname> μπορεί να 
είναι οποιοσδήποτε πραγματικός αριθμός.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Choose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nPr"/>nPr</term>
+         <listitem>
+          <synopsis>nPr (n,r)</synopsis>
+          <para>Calculate the number of permutations of size
+          <varname>r</varname> of numbers from 1 to <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-calculus">
+      <title>Μαθηματική Ανάλυση</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
+          <para>Ολοκλήρωση του f από τον σύνθετο κανόνα του Σίμπσον στο διάστημα [a,b] με n υποδιαστήματα με 
σφάλμα του max(f'''')*h^4*(b-a)/180, σημειώστε ότι το n πρέπει να είναι άρτιος.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,FourthDerivativeBound,Tolerance)</synopsis>
+          <para>Ολοκλήρωση της f από τον σύνθετο κανόνα Σίμπσον του διαστήματος [a,b] με τον αριθμό των 
υπολογιζόμενων βημάτων από το τέταρτο φράγμα παραγώγου και την επιθυμητή ανοχή.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Derivative"/>Derivative</term>
+         <listitem>
+          <synopsis>Derivative (f,x0)</synopsis>
+          <para>Προσπαθεί να υπολογίσει την παράγωγου δοκιμάζοντας πρώτα συμβολικά και έπειτα 
αριθμητικά.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
+         <listitem>
+          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
+         <para>Επιστρέφει μια συνάρτηση που είναι άρτια περιοδική επέκταση της <function>f</function> με 
ημιπερίοδο <varname>L</varname>. Δηλαδή μια συνάρτηση που ορίστηκε στο διάστημα <userinput>[0,L]</userinput> 
επεκτάθηκε για να είναι άρτια στο <userinput>[-L,L]</userinput> και έπειτα επεκτάθηκε να είναι περιοδική με 
περίοδο <userinput>2*L</userinput>.</para>
+         <para>Δείτε επίσης <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> 
και <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
+         <listitem>
+          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
+         <para>Επιστρέφει μια συνάρτηση που είναι μια σειρά Φουριέ με τους συντελεστές δοσμένους από τα 
διανύσματα <varname>a</varname> (ημίτονα) and <varname>b</varname> (συνημίτονα). Σημειώστε ότι, το 
<userinput>a@(1)</userinput> είναι συντελεστής σταθεράς! Δηλαδή, το <userinput>a@(n)</userinput> αναφέρεται 
στον όρο <userinput>cos(x*(n-1)*pi/L)</userinput>, ενώ το <userinput>b@(n)</userinput> αναφέρεται στον όρο 
<userinput>sin(x*n*pi/L)</userinput>. Είτε το <varname>a</varname> είτε το <varname>b</varname> μπορεί να 
είναι <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
+         <listitem>
+          <synopsis>InfiniteProduct (func,start,inc)</synopsis>
+          <para>Προσπαθεί να υπολογίσει ένα άπειρο γινόμενο για μια συνάρτηση απλής παραμέτρου.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
+         <listitem>
+          <synopsis>InfiniteProduct2 (func,arg,start,inc)</synopsis>
+          <para>Προσπαθεί να υπολογίσει ένα άπειρο γινόμενο για μια συνάρτηση διπλής παραμέτρου με 
func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
+         <listitem>
+          <synopsis>InfiniteSum (func,start,inc)</synopsis>
+          <para>Προσπαθεί να υπολογίσει ένα άπειρο άθροισμα για μια συνάρτηση απλής παραμέτρου.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
+         <listitem>
+          <synopsis>InfiniteSum2 (func,arg,start,inc)</synopsis>
+          <para>Προσπαθεί να υπολογίσει ένα άπειρο άθροισμα για μια συνάρτηση διπλής παραμέτρου με 
func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
+         <listitem>
+          <synopsis>IsContinuous (f,x0)</synopsis>
+          <para>Δοκιμάστε για να δείτε αν μια συνάρτηση πραγματικών τιμών είναι συνεχής στο x0 υπολογίζοντας 
το όριο εκεί.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
+         <listitem>
+          <synopsis>IsDifferentiable (f,x0)</synopsis>
+          <para>Δοκιμή διαφορισιμότητας προσεγγίζοντας το αριστερό και δεξιό όριο και συγκρίνοντας.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
+         <listitem>
+          <synopsis>LeftLimit (f,x0)</synopsis>
+          <para>Υπολογίζει το αριστερό όριο μιας συνάρτησης πραγματικών στο x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Limit"/>Limit</term>
+         <listitem>
+          <synopsis>Limit (f,x0)</synopsis>
+          <para>Υπολογίζει το όριο μιας συνάρτησης πραγματικών στο x0. Προσπαθεί να υπολογίσει και το 
αριστερό και το δεξιό όριο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
+         <listitem>
+          <synopsis>MidpointRule (f,a,b,n)</synopsis>
+          <para>Ολοκλήρωση με τον κανόνα μέσου.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
+         <listitem>
+          <synopsis>NumericalDerivative (f,x0)</synopsis>
+          <para>Παραλλαγές: <function>NDerivative</function></para>
+          <para>Προσπάθεια υπολογισμού αριθμητικής παραγώγου.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
+         <para>Επιστρέφει ένα διάνυσμα διανυσμάτων <userinput>[a,b]</userinput> όπου το <varname>a</varname> 
είναι οι συντελεστές συνημιτόνου και το <varname>b</varname> είναι οι συντελεστές ημιτόνου της σειράς Φουριέ 
του <function>f</function> με ημιπερίοδο <varname>L</varname> (που ορίζεται στο <userinput>[-L,L]</userinput> 
και επεκτείνεται περιοδικά) με συντελεστές μέχρι τον <varname>N</varname>στό αρμονικό που υπολογίζεται 
αριθμητικά. Οι συντελεστές υπολογίζονται με αριθμητική ολοκλήρωση χρησιμοποιώντας το <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
+         <para>Επιστρέφει μια συνάρτηση που είναι η σειρά Φουριέ του <function>f</function> με ημιπερίοδο 
<varname>L</varname> (που ορίζεται στο <userinput>[-L,L]</userinput> και επεκτείνεται περιοδικά) με 
συντελεστές μέχρι τον <varname>N</varname>στό αρμονικό που υπολογίζεται αριθμητικά. Αυτή είναι η 
τριγωνομετρική πραγματική σειρά που αποτελείται από ημίτονα και συνημίτονα. Οι συντελεστές υπολογίζονται με 
αριθμητική ολοκλήρωση χρησιμοποιώντας το <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Επιστρέφει ένα διάνυσμα συντελεστών της σειράς Φουριέ συνημιτόνου του <function>f</function> 
με ημιπερίοδο <varname>L</varname>. Δηλαδή, η <function>f</function> ορισμένη στο 
<userinput>[0,L]</userinput> παίρνει την άρτια περιοδική επέκταση και υπολογίζει τη σειρά Φουριέ, η οποία 
έχει μόνο όρους συνημιτόνου. Η σειρά υπολογίζεται μέχρι τον <varname>N</varname>στό αρμονικό. Οι συντελεστές 
υπολογίζονται με αριθμητική ολοκλήρωση χρησιμοποιώντας την <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>. Σημειώστε ότι το 
<userinput>a@(1)</userinput> είναι ο συντελεστής σταθεράς! Δηλαδή, <userinput>a@(n)</userinpu
 t> αναφέρεται στον όρο <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
+         <para>Επιστρέφει μια συνάρτηση που είναι η σειρά Φουριέ συνημιτόνου του <function>f</function> με 
ημιπερίοδο <varname>L</varname>. Δηλαδή, παίρνουμε την <function>f</function> ορισμένη στο 
<userinput>[0,L]</userinput>, παίρνει την άρτια περιοδική επέκταση και υπολογίζει τη σειρά Φουριέ, η οποία 
έχει μόνο όρους συνημιτόνου. Η σειρά υπολογίζεται μέχρι τον <varname>N</varname>στό αρμονικό. Οι συντελεστές 
υπολογίζονται με αριθμητική ολοκλήρωση χρησιμοποιώντας την <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Επιστρέφει ένα διάνυσμα συντελεστών της σειράς Φουριέ ημιτόνου του <function>f</function> με 
ημιπερίοδο <varname>L</varname>. Δηλαδή, η <function>f</function> ορισμένη στο <userinput>[0,L]</userinput> 
παίρνει την περιττή περιοδική επέκταση και υπολογίζει τη σειρά Φουριέ, η οποία έχει μόνο όρους ημιτόνου. Η 
σειρά υπολογίζεται μέχρι τον <varname>N</varname>στό αρμονικό. Οι συντελεστές υπολογίζονται με αριθμητική 
ολοκλήρωση χρησιμοποιώντας την <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
+         <para>Επιστρέφει μια συνάρτηση που είναι η σειρά Φουριέ ημιτόνου του <function>f</function> με 
ημιπερίοδο <varname>L</varname>. Δηλαδή, παίρνουμε τη <function>f</function> ορισμένη στο 
<userinput>[0,L]</userinput>, παίρνει την άρτια περιοδική επέκταση και υπολογίζει τη σειρά Φουριέ, η οποία 
έχει μόνο όρους ημιτόνου. Η σειρά υπολογίζεται μέχρι τον <varname>N</varname>στό αρμονικό. Οι συντελεστές 
υπολογίζονται με αριθμητική ολοκλήρωση χρησιμοποιώντας την <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
+         <listitem>
+          <synopsis>NumericalIntegral (f,a,b)</synopsis>
+          <para>Ολοκλήρωση με τον κανόνα που ορίστηκε στο NumericalIntegralFunction του f από το a μέχρι το 
b χρησιμοποιώντας βήματα NumericalIntegralSteps.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
+         <listitem>
+          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
+          <para>Προσπαθεί να υπολογίσει την αριθμητική αριστερή παράγωγο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
+         <listitem>
+          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerance,successive_for_success,N)</synopsis>
+          <para>Προσπαθεί να υπολογίσει το όριο του f(step_fun(i)) καθώς το i πηγαίνει από 1 έως N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
+         <listitem>
+          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
+          <para>Προσπαθεί να υπολογίσει την αριθμητική δεξιά παράγωγο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
+         <listitem>
+          <synopsis>OddPeriodicExtension (f,L)</synopsis>
+         <para>Επιστρέφει μια συνάρτηση που είναι περιττή περιοδική επέκταση της <function>f</function> με 
ημιπερίοδο <varname>L</varname>. Δηλαδή μια συνάρτηση που ορίστηκε στο διάστημα <userinput>[0,L]</userinput> 
επεκτάθηκε για να είναι περιττή στο <userinput>[-L,L]</userinput> και έπειτα επεκτάθηκε να είναι περιοδική με 
περίοδο <userinput>2*L</userinput>.</para>
+         <para>Δείτε επίσης <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link> 
και <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Υπολογίζει τη μονόπλευρη παράγωγο χρησιμοποιώντας τον τύπο πέντε σημείων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Υπολογίζει τη μονόπλευρη παράγωγο χρησιμοποιώντας τον τύπο τριών σημείων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
+         <listitem>
+          <synopsis>PeriodicExtension (f,a,b)</synopsis>
+         <para>Επιστρέφει μια συνάρτηση που είναι η περιοδική επέκταση της <function>f</function> ορισμένη 
στο διάστημα <userinput>[a,b]</userinput> και έχει περίοδο <userinput>b-a</userinput>.</para>
+         <para>Δείτε επίσης <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> 
και <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
+         <listitem>
+          <synopsis>RightLimit (f,x0)</synopsis>
+          <para>Υπολογίζει το δεξιό όριο μιας συνάρτησης πραγματικών στο x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Υπολογίζει τη δίπλευρη παράγωγο χρησιμοποιώντας τον τύπο πέντε σημείων.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Υπολογίζει τη δίπλευρη παράγωγο χρησιμοποιώντας τον τύπο τριών σημείων.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-functions">
+      <title>Συναρτήσεις</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Argument"/>Argument</term>
+         <listitem>
+          <synopsis>Argument (z)</synopsis>
+          <para>Παραλλαγές: <function>Arg</function><function>arg</function></para>
+          <para>όρισμα (γωνία) μιγαδικού αριθμού.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
+         <listitem>
+          <synopsis>BesselJ0 (x)</synopsis>
+          <para>Η συνάρτηση Μπεσέλ πρώτου είδους τάξης 0. Εφαρμόζεται μόνο για πραγματικούς αριθμούς.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
+         <listitem>
+          <synopsis>BesselJ1 (x)</synopsis>
+          <para>Η συνάρτηση Μπεσέλ πρώτου είδους τάξης 1. Εφαρμόζεται μόνο για πραγματικούς αριθμούς.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
+         <listitem>
+          <synopsis>BesselJn (n,x)</synopsis>
+         <para>Η συνάρτηση Μπεσέλ πρώτου είδους τάξης <varname>n</varname>. Εφαρμόζεται μόνο για 
πραγματικούς αριθμούς.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
+         <listitem>
+          <synopsis>BesselY0 (x)</synopsis>
+          <para>Η συνάρτηση Μπεσέλ δεύτερου είδους τάξης 0. Εφαρμόζεται μόνο για πραγματικούς 
αριθμούς.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
+         <listitem>
+          <synopsis>BesselY1 (x)</synopsis>
+          <para>Η συνάρτηση Μπεσέλ δεύτερου είδους τάξης 1. Εφαρμόζεται μόνο για πραγματικούς 
αριθμούς.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
+         <listitem>
+          <synopsis>BesselYn (n,x)</synopsis>
+         <para>Η συνάρτηση Μπεσέλ δεύτερου είδους τάξης <varname>n</varname>. Εφαρμόζεται μόνο για 
πραγματικούς αριθμούς.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
+         <listitem>
+          <synopsis>DirichletKernel (n,t)</synopsis>
+         <para>Dirichlet kernel of order <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
+         <listitem>
+          <synopsis>DiscreteDelta (v)</synopsis>
+          <para>Returns 1 if and only if all elements are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
+         <listitem>
+          <synopsis>ErrorFunction (x)</synopsis>
+          <para>Παραλλαγές: <function>erf</function></para>
+          <para>Η συνάρτηση σφάλματος, 2/sqrt(pi) * int_0^x e^(-t^2) dt.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Error_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ErrorFunction";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
+         <listitem>
+          <synopsis>FejerKernel (n,t)</synopsis>
+          <para>Ο πυρήνας Fejer τάξης <varname>n</varname> που υπολογίστηκε στο <varname>t</varname></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FejerKernel";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
+         <listitem>
+          <synopsis>GammaFunction (x)</synopsis>
+          <para>Παραλλαγές: <function>Gamma</function></para>
+          <para>Η συνάρτηση γάμα. Προς το παρόν υλοποιείται μόνο για πραγματικούς.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/GammaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Gamma_function";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
+         <listitem>
+          <synopsis>KroneckerDelta (v)</synopsis>
+          <para>Επιστρέφει 1 αν και μόνο αν όλα τα στοιχεία είναι ίσα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertW"/>LambertW</term>
+         <listitem>
+          <synopsis>LambertW (x)</synopsis>
+         <para>Ο βασικός κλάδος της συνάρτησης W Λαμπέρ υπολογίζεται μόνο για πραγματικές τιμές μεγαλύτερες 
ή ίσες από <userinput>-1/e</userinput>. Δηλαδή, <function>LambertW</function> είναι το αντίστροφο της 
παράστασης <userinput>x*e^x</userinput>. Ακόμα για πραγματικούς <varname>x</varname> αυτή η παράσταση δεν 
είναι ένα προς ένα και συνεπώς έχει δύο κλάδους στο <userinput>[-1/e,0)</userinput>. Δείτε <link 
linkend="gel-function-LambertWm1"><function>LambertWm1</function></link> για τον άλλο πραγματικό κλάδο.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertWm1"/>LambertWm1</term>
+         <listitem>
+          <synopsis>LambertWm1 (x)</synopsis>
+         <para>Ο κλάδος μείον-ένα της συνάρτησης W Λαμπέρ υπολογίζεται μόνο για πραγματικές τιμές 
μεγαλύτερες ή ίσες με <userinput>-1/e</userinput> και μικρότερες από 0. Δηλαδή, το 
<function>LambertWm1</function> είναι ο δεύτερος κλάδος του αντίστροφου <userinput>x*e^x</userinput>. Δείτε 
<link linkend="gel-function-LambertW"><function>LambertW</function></link> για τον βασικό κλάδο.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
+         <listitem>
+          <synopsis>MinimizeFunction (func,x,incr)</synopsis>
+          <para>Βρίσκει την πρώτη τιμή όπου f(x)=0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
+         <listitem>
+          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
+          <para>Μετασχηματισμός Μέμπιους του δίσκου στον εαυτόν του, απεικονίζοντας το a στο 0.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
+         <listitem>
+          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
+          <para>Μετασχηματισμός Μέμπιους χρησιμοποιώντας τον διπλό λόγο παίρνοντας z2,z3,z4 στο 1,0, και 
άπειρο αντίστοιχα.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
+          <para>Απεικόνιση Μέμπιους χρησιμοποιώντας τον διπλό λόγο παίρνοντας άπειρο στο άπειρο και z2,z3 
στο 1 και 0 αντίστοιχα.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
+          <para>Μετασχηματισμός Μέμπιους χρησιμοποιώντας τον διπλό λόγο παίρνοντας άπειρο στο 1 και z3,z4 
στο 0 και άπειρο αντίστοιχα.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
+          <para>Μετασχηματισμός Μέμπιους χρησιμοποιώντας τον διπλό λόγο παίρνοντας άπειρο στο 0 και z2,z4 
στο 1 και άπειρο αντίστοιχα.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
+         <listitem>
+          <synopsis>PoissonKernel (r,sigma)</synopsis>
+          <para>Πυρήνας Πουασόν στο D(0,1) (μη κανονικοποιημένο στο 1, δηλαδή το ολοκλήρωμα αυτού είναι 
2pi).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
+         <listitem>
+          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
+          <para>Πυρήνας Πουασόν στο D(0,R) (μη κανονικοποιημένο στο 1).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
+         <listitem>
+          <synopsis>RiemannZeta (x)</synopsis>
+          <para>Παραλλαγές: <function>zeta</function></para>
+          <para>Η συνάρτηση ζήτα Ρίμαν. Προς το παρόν υλοποιείται μόνο για πραγματικούς.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RiemannZetaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Riemann_zeta_function";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
+         <listitem>
+          <synopsis>UnitStep (x)</synopsis>
+          <para>Το μοναδιαίο βήμα συνάρτησης είναι 0 για x&lt;0, 1 αλλιώς. Αυτό είναι το ολοκλήρωμα της 
συνάρτησης δέλτα Ντιράκ. Λέγεται επίσης συνάρτηση Χέβισαϊντ.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Unit_step";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cis"/>cis</term>
+         <listitem>
+          <synopsis>cis (x)</synopsis>
+          <para>Η συνάρτηση <function>cis</function>, δηλαδή είναι η ίδια με τη 
<userinput>cos(x)+1i*sin(x)</userinput></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
+         <listitem>
+          <synopsis>deg2rad (x)</synopsis>
+          <para>Μετατρέπει βαθμούς σε ακτίνια.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
+         <listitem>
+          <synopsis>rad2deg (x)</synopsis>
+          <para>Μετατρέπει ακτίνια σε μοίρες.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinc"/>sinc</term>
+         <listitem>
+          <synopsis>sinc (x)</synopsis>
+         <para>Υπολογίζει τη μη κανονικοποιημένη συνάρτηση sinc, δηλαδή την <userinput>sin(x)/x</userinput>. 
Αν θέλετε την κανονικοποιημένη συνάρτηση καλέστε <userinput>sinc(pi*x)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sinc";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-equation-solving">
+      <title>Επίλυση εξίσωσης</title>
+      <variablelist>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
+         <listitem>
+          <synopsis>CubicFormula (p)</synopsis>
+          <para>Υπολογίζει τις ρίζες ενός κυβικού (βαθμού 3) πολυωνύμου χρησιμοποιώντας τον κυβικό τύπο. Το 
πολυώνυμο πρέπει να δίνεται ως ένα διάνυσμα συντελεστών. Δηλαδή <userinput>4*x^3 + 2*x + 1</userinput> 
αντιστοιχεί στο διάνυσμα <userinput>[1,2,0,4]</userinput>. Επιστρέφει ένα διάνυσμα στήλης των τριών λύσεων. Η 
πρώτη λύση είναι πάντα η πραγματική καθώς μια κυβική έχει πάντα μια πραγματική λύση.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CubicFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/CubicFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Cubic_equation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
+         <listitem>
+          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns <varname>y</varname> at <varname>x1</varname>.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKutta">RungeKutta</link>
+           for solving ODE.
+         </para>
+         <para>Τα συστήματα μπορούν να επιλυθούν έχοντας απλά το <varname>y</varname> να είναι ένα διάνυσμα 
(στήλης) παντού. Δηλαδή, το <varname>y0</varname> μπορεί να είναι ένα διάνυσμα, οπότε το <varname>f</varname> 
πρέπει να πάρει έναν αριθμό <varname>x</varname> και ένα διάνυσμα του ίδιου μεγέθους για το δεύτερο όρισμα 
και πρέπει να επιστρέψει ένα διάνυσμα του ίδιου μεγέθους.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
+         <listitem>
+          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKuttaFull">RungeKuttaFull</link>
+           for solving ODE.
+           Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <para>Τα συστήματα μπορούν να επιλυθούν έχοντας απλά το <varname>y</varname> να είναι ένα διάνυσμα 
(στήλης) παντού. Δηλαδή, το <varname>y0</varname> μπορεί να είναι ένα διάνυσμα, οπότε το <varname>f</varname> 
πρέπει να πάρει έναν αριθμό <varname>x</varname> και ένα διάνυσμα του ίδιου μεγέθους για το δεύτερο όρισμα 
και πρέπει να επιστρέψει ένα διάνυσμα του ίδιου μεγέθους.</para>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
+         <listitem>
+          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
+          <para>Βρίσκει τις ρίζες μιας συνάρτησης χρησιμοποιώντας τη μέθοδο διχοτόμησης. Τα 
<varname>a</varname> και <varname>b</varname> είναι το αρχικό διάστημα πρόβλεψης, τα 
<userinput>f(a)</userinput> και <userinput>f(b)</userinput> πρέπει να έχουν αντίθετα πρόσημα. Το 
<varname>TOL</varname> είναι η επιθυμητή ανοχή και <varname>N</varname> είναι το όριο στον αριθμό των 
επαναλήψεων εκτέλεσης, 0 σημαίνει χωρίς όριο. Η συνάρτηση επιστρέφει ένα διάνυσμα 
<userinput>[success,value,iteration]</userinput>, όπου <varname>success</varname> είναι μια λογική τιμή που 
δείχνει επιτυχία, <varname>value</varname> είναι η τελευταία υπολογισμένη τιμή και <varname>iteration
 </varname> είναι ο αριθμός των επαναλήψεων που έγιναν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
+         <listitem>
+          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
+          <para>Βρίσκει τις ρίζες μιας συνάρτησης χρησιμοποιώντας τη μέθοδο ψευδούς θέσης. Τα 
<varname>a</varname> και <varname>b</varname> είναι το αρχικό διάστημα πρόβλεψης, τα 
<userinput>f(a)</userinput> και <userinput>f(b)</userinput> πρέπει να έχουν αντίθετα πρόσημα. Το 
<varname>TOL</varname> είναι η επιθυμητή ανοχή και <varname>N</varname> είναι το όριο στον αριθμό των 
επαναλήψεων εκτέλεσης, 0 σημαίνει χωρίς όριο. Η συνάρτηση επιστρέφει ένα διάνυσμα 
<userinput>[success,value,iteration]</userinput>, όπου <varname>success</varname> είναι μια λογική τιμή που 
δείχνει επιτυχία, <varname>value</varname> είναι η τελευταία υπολογισμένη τιμή και <varname>iterat
 ion</varname> είναι ο αριθμός των επαναλήψεων που έγιναν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
+         <listitem>
+          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
+          <para>Βρίσκει τις ρίζες μιας συνάρτησης χρησιμοποιώντας τη μέθοδο Μίλερ. Το <varname>TOL</varname> 
είναι η επιθυμητή ανοχή και <varname>N</varname> είναι το όριο στον αριθμό των επαναλήψεων εκτέλεσης, 0 
σημαίνει χωρίς όριο. Η συνάρτηση επιστρέφει ένα διάνυσμα <userinput>[success,value,iteration]</userinput>, 
όπου <varname>success</varname> είναι μια λογική τιμή που δείχνει επιτυχία, <varname>value</varname> είναι η 
τελευταία υπολογισμένη τιμή και <varname>iteration</varname> είναι ο αριθμός των επαναλήψεων που 
έγιναν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
+         <listitem>
+          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
+          <para>Βρίσκει τις ρίζες μιας συνάρτησης χρησιμοποιώντας τη μέθοδο τέμνουσας. Τα 
<varname>a</varname> και <varname>b</varname> είναι το αρχικό διάστημα πρόβλεψης, τα 
<userinput>f(a)</userinput> και <userinput>f(b)</userinput> πρέπει να έχουν αντίθετα πρόσημα. Το 
<varname>TOL</varname> είναι η επιθυμητή ανοχή και <varname>N</varname> είναι το όριο στον αριθμό των 
επαναλήψεων εκτέλεσης, 0 σημαίνει χωρίς όριο. Η συνάρτηση επιστρέφει ένα διάνυσμα 
<userinput>[success,value,iteration]</userinput>, όπου <varname>success</varname> είναι μια λογική τιμή που 
δείχνει επιτυχία, <varname>value</varname> είναι η τελευταία υπολογισμένη τιμή και <varname>iteration</va
 rname> είναι ο αριθμός των επαναλήψεων που έγιναν.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
+         <listitem>
+          <synopsis>HalleysMethod (f,df,ddf,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Halley's method.  <varname>f</varname> is
+                 the function, <varname>df</varname> is the derivative of
+                 <varname>f</varname>, and <varname>ddf</varname> is the second derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>Δείτε επίσης <link 
linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link> και <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.</para>
+         <para>Παράδειγμα εύρεσης της τετραγωνικής ρίζας του 10: <screen><prompt>genius&gt;</prompt> 
<userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Halley%27s_method";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethod"/>NewtonsMethod</term>
+         <listitem>
+          <synopsis>NewtonsMethod (f,df,guess,epsilon,maxn)</synopsis>
+         <para>Βρίσκει μηδενικά χρησιμοποιώντας τη μέθοδο Νεύτωνα. Το <varname>f</varname> είναι η συνάρτηση 
και <varname>df</varname> είναι η παράγωγος του <varname>f</varname>. Η <varname>guess</varname> είναι η 
αρχική πρόβλεψη. Η συνάρτηση επιστρέφει μετά από δύο διαδοχικές τιμές που είναι μέσα στο 
<varname>epsilon</varname> μεταξύ τους, ή μετά από <varname>maxn</varname> προσπάθειες, οπότε η συνάρτηση 
επιστρέφει <constant>null</constant> που δείχνει αποτυχία.</para>
+         <para>Δείτε επίσης <link 
linkend="gel-function-NewtonsMethodPoly"><function>NewtonsMethodPoly</function></link> and <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.</para>
+         <para>Παράδειγμα εύρεσης της τετραγωνικής ρίζας του 10: <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
+         <listitem>
+          <synopsis>PolynomialRoots (p)</synopsis>
+          <para>Υπολογίζει ρίζες ενός πολυωνύμου (βαθμών από 1 μέχρι 4) χρησιμοποιώντας τους τύπους για 
τέτοια πολυώνυμα. Το πολυώνυμο πρέπει να δίνεται ως ένα διάνυσμα συντελεστών. Δηλαδή το <userinput>4*x^3 + 
2*x + 1</userinput> αντιστοιχεί στο διάνυσμα <userinput>[1,2,0,4]</userinput>. Επιστρέφει ένα διάνυσμα στήλης 
των λύσεων.</para>
+         <para>Η συνάρτηση καλεί <link linkend="gel-function-QuadraticFormula">QuadraticFormula</link>, 
<link linkend="gel-function-CubicFormula">CubicFormula</link> και <link 
linkend="gel-function-QuarticFormula">QuarticFormula</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
+         <listitem>
+          <synopsis>QuadraticFormula (p)</synopsis>
+          <para>Υπολογίζει ρίζες ενός δευτεροβάθμιου πολυωνύμου (βαθμού 2) χρησιμοποιώντας τον τύπο 
δευτεροβάθμιας. Το πολυώνυμο πρέπει να δίνεται ως ένα διάνυσμα συντελεστών. Δηλαδή το <userinput>3*x^2 + 2*x 
+ 1</userinput> αντιστοιχεί στο διάνυσμα <userinput>[1,2,3]</userinput>. Επιστρέφει ένα διάνυσμα στήλης των 
δύο λύσεων.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticFormula";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/QuadraticFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quadratic_formula";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
+         <listitem>
+          <synopsis>QuarticFormula (p)</synopsis>
+          <para>Υπολογίζει ρίζες ενός τεταρτοβάθμιου πολυωνύμου (βαθμού 4) χρησιμοποιώντας τον τύπο 
τεταρτοβάθμιας. Το πολυώνυμο πρέπει να δίνεται ως ένα διάνυσμα συντελεστών. Δηλαδή το <userinput>5*x^4 + 2*x 
+ 1</userinput> αντιστοιχεί στο διάνυσμα <userinput>[1,2,0,0,5]</userinput>. Επιστρέφει ένα διάνυσμα στήλης 
τεσσάρων λύσεων.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuarticFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/QuarticEquation.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quartic_equation";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
+         <listitem>
+          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
+          <para>Χρησιμοποιεί την κλασική μη αναπροσαρμοστική μέθοδο τέταρτης τάξης Runge-Kutta για 
αριθμητική επίλυση της y'=f(x,y) με αρχικά <varname>x0</varname>, <varname>y0</varname> πηγαίνει στο 
<varname>x1</varname> με βήματα <varname>n</varname>, επιστρέφει <varname>y</varname> στο 
<varname>x1</varname>.</para>
+         <para>Τα συστήματα μπορούν να επιλυθούν έχοντας απλά το <varname>y</varname> να είναι ένα διάνυσμα 
(στήλης) παντού. Δηλαδή, το <varname>y0</varname> μπορεί να είναι ένα διάνυσμα, οπότε το <varname>f</varname> 
πρέπει να πάρει έναν αριθμό <varname>x</varname> και ένα διάνυσμα του ίδιου μεγέθους για το δεύτερο όρισμα 
και πρέπει να επιστρέψει ένα διάνυσμα του ίδιου μεγέθους.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
+         <listitem>
+          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.  Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <para>Τα συστήματα μπορούν να επιλυθούν έχοντας απλά το <varname>y</varname> να είναι ένα διάνυσμα 
(στήλης) παντού. Δηλαδή, το <varname>y0</varname> μπορεί να είναι ένα διάνυσμα, οπότε το <varname>f</varname> 
πρέπει να πάρει έναν αριθμό <varname>x</varname> και ένα διάνυσμα του ίδιου μεγέθους για το δεύτερο όρισμα 
και πρέπει να επιστρέψει ένα διάνυσμα του ίδιου μεγέθους.</para>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-statistics">
+      <title>Στατιστική</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Average"/>Average</term>
+         <listitem>
+          <synopsis>Average (m)</synopsis>
+          <para>Παραλλαγές: 
<function>average</function><function>Mean</function><function>mean</function></para>
+          <para>Calculate average (the arithmetic mean) of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
+         <listitem>
+          <synopsis>GaussDistribution (x,sigma)</synopsis>
+         <para>Ολοκλήρωμα της GaussFunction από 0 μέχρι <varname>x</varname> (περιοχή κάτω από την κανονική 
καμπύλη).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
+         <listitem>
+          <synopsis>GaussFunction (x,sigma)</synopsis>
+          <para>Η συνάρτηση κανονικοποιημένης κατανομής Γκάους (η κανονική καμπύλη).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Median"/>Median</term>
+         <listitem>
+          <synopsis>Median (m)</synopsis>
+          <para>Παραλλαγές: <function>median</function></para>
+          <para>Υπολογίζει τον μέσο ενός ολόκληρου πίνακα.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>PopulationStandardDeviation (m)</synopsis>
+          <para>Παραλλαγές: <function>stdevp</function></para>
+          <para>Υπολογίζει την τυπική απόκλιση πληθυσμού ενός ολόκληρου πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
+         <listitem>
+          <synopsis>RowAverage (m)</synopsis>
+          <para>Παραλλαγές: <function>RowMean</function></para>
+         <para>Calculate average of each row in a matrix.  That is, compute the
+         arithmetic mean.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
+         <listitem>
+          <synopsis>RowMedian (m)</synopsis>
+          <para>Υπολογίζει τον διάμεσο κάθε γραμμής σε έναν πίνακα και επιστρέφει ένα διάνυσμα στήλης με 
τους διάμεσους.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
+          <para>Παραλλαγές: <function>rowstdevp</function></para>
+          <para>Υπολογίζει τις τυπικές αποκλίσεις πληθυσμού γραμμών ενός πίνακα και επιστρέφει ένα κάθετο 
διάνυσμα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
+         <listitem>
+          <synopsis>RowStandardDeviation (m)</synopsis>
+          <para>Παραλλαγές: <function>rowstdev</function></para>
+          <para>Υπολογίζει τις τυπικές αποκλίσεις γραμμών ενός πίνακα και επιστρέφει ένα κάθετο 
διάνυσμα.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+        <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
+         <listitem>
+          <synopsis>StandardDeviation (m)</synopsis>
+          <para>Παραλλαγές: <function>stdev</function></para>
+          <para>Υπολογίζει την τυπική απόκλιση ενός ολόκληρου πίνακα.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-polynomials">
+      <title>Πολυώνυμα</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
+         <listitem>
+          <synopsis>AddPoly (p1,p2)</synopsis>
+          <para>Προσθήκη δύο πολυωνύμων (διανύσματα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
+         <listitem>
+          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
+          <para>Διαιρεί δύο πολυώνυμα (ως διανύσματα) χρησιμοποιώντας τη μακριά διαίρεση. Επιστρέφει το 
πηλίκο των δύο πολυωνύμων. Το προαιρετικό όρισμα <varname>r</varname> χρησιμοποιείται για να επιστρέψει το 
υπόλοιπο. Το υπόλοιπο θα έχει μικρότερο βαθμό από το <varname>q</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PolynomialLongDivision";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
+         <listitem>
+          <synopsis>IsPoly (p)</synopsis>
+          <para>Ελέγχει αν ένα διάνυσμα μπορεί να χρησιμοποιηθεί ως πολυώνυμο.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
+         <listitem>
+          <synopsis>MultiplyPoly (p1,p2)</synopsis>
+          <para>Πολλαπλασιάζει δύο πολυώνυμα (ως διανύσματα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
+         <listitem>
+          <synopsis>NewtonsMethodPoly (poly,guess,epsilon,maxn)</synopsis>
+         <para>Βρίσκει μια ρίζα ενός πολυωνύμου χρησιμοποιώντας τη μέθοδο Νεύτωνα. Το 
<varname>poly</varname> είναι ένα πολυώνυμο ως διάνυσμα και <varname>guess</varname> είναι η αρχική πρόβλεψη. 
Η συνάρτηση επιστρέφει μετά από δύο διαδοχικές τιμές που είναι μέσα στο <varname>epsilon</varname> μεταξύ 
τους, ή μετά από <varname>maxn</varname> προσπάθειες, οπότε η συνάρτηση επιστρέφει <constant>null</constant> 
που δείχνει αποτυχία.</para>
+         <para>Δείτε επίσης <link 
linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link>.</para>
+         <para>Παράδειγμα εύρεσης της τετραγωνικής ρίζας του 10: <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
+         <listitem>
+          <synopsis>Poly2ndDerivative (p)</synopsis>
+          <para>Δίνει τη δεύτερη πολυωνυμική παράγωγο (ως διάνυσμα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
+         <listitem>
+          <synopsis>PolyDerivative (p)</synopsis>
+          <para>Δίνει την πολυωνυμική παράγωγο (ως διάνυσμα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
+         <listitem>
+          <synopsis>PolyToFunction (p)</synopsis>
+          <para>Δημιουργεί συνάρτηση από ένα πολυώνυμο (ως διάνυσμα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
+         <listitem>
+          <synopsis>PolyToString (p,var...)</synopsis>
+          <para>Δημιουργεί συμβολοσειρά από ένα πολυώνυμο (ως διάνυσμα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
+         <listitem>
+          <synopsis>SubtractPoly (p1,p2)</synopsis>
+          <para>Αφαιρεί δύο πολυώνυμα (ως διανύσματα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
+         <listitem>
+          <synopsis>TrimPoly (p)</synopsis>
+          <para>Περικόπτει μηδενικά από ένα πολυώνυμο (ως διάνυσμα).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-set-theory">
+      <title>Θεωρία συνόλων</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Intersection"/>Intersection</term>
+         <listitem>
+          <synopsis>Intersection (X,Y)</synopsis>
+          <para>Επιστρέφει τη θεωρητική τομή συνόλων των Χ και Υ (Χ και Υ είναι διανύσματα που προσποιούνται 
ότι είναι σύνολα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIn"/>IsIn</term>
+         <listitem>
+          <synopsis>IsIn (x,X)</synopsis>
+         <para>Επιστρέφει <constant>true</constant> αν το στοιχείο x είναι στο σύνολο Χ (όπου Χ είναι ένα 
διάνυσμα που προσποιείται ότι είναι σύνολο).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
+         <listitem>
+          <synopsis>IsSubset (X, Y)</synopsis>
+         <para>Επιστρέφει <constant>true</constant> αν το Χ είναι ένα υποσύνολο του Υ (Χ και Υ είναι 
διανύσματα που προσποιούνται ότι είναι σύνολα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
+         <listitem>
+          <synopsis>MakeSet (X)</synopsis>
+          <para>Επιστρέφει ένα διάνυσμα όπου κάθε στοιχείο του Χ εμφανίζεται μόνο μια φορά.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
+         <listitem>
+          <synopsis>SetMinus (X,Y)</synopsis>
+          <para>Επιστρέφει τη θεωρητική διαφορά συνόλων των Χ-Υ (Χ και Υ είναι διανύσματα που προσποιούνται 
ότι είναι σύνολα).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Union"/>Union</term>
+         <listitem>
+          <synopsis>Union (X,Y)</synopsis>
+          <para>Επιστρέφει ένα μια θεωρητική ένωση συνόλου των Χ και Υ (Χ και Υ είναι διανύσματα που 
προσποιούνται ότι είναι σύνολα).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-commutative-algebra">
+      <title>Αντιμεταθετική άλγεβρα</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
+         <listitem>
+          <synopsis>MacaulayBound (c,d)</synopsis>
+          <para>Για μια συνάρτηση Χίλμπερτ που είναι c για βαθμό d, με δεδομένο το πέρας Μακόλεϊ για τη 
συνάρτηση Χίλμπερτ βαθμού d+1 (Ο τελεστής c^&lt;d&gt; από την απόδειξη Γκριν).</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+       
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
+         <listitem>
+          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
+          <para>Ο τελεστής c_&lt;d&gt; από την απόδειξη Γκριν του θεωρήματος Μακόλεϊ.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
+         <listitem>
+          <synopsis>MacaulayRep (c,d)</synopsis>
+          <para>Επιστρέφει την dστή αναπαράσταση Μακόλεϊ ενός θετικού ακεραίου c.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-miscellaneous">
+      <title>Διάφορα</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
+         <listitem>
+          <synopsis>ASCIIToString (vec)</synopsis>
+          <para>Convert a vector of ASCII values to a string.
+                 See also
+                 <link linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
+= "abc"
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
+         <listitem>
+          <synopsis>AlphabetToString (vec,alphabet)</synopsis>
+         <para>Convert a vector of 0-based alphabet values (positions in the alphabet string) to a string.  
A <constant>null</constant> vector results in an empty string.
+                 See also
+                 <link linkend="gel-function-StringToAlphabet"><function>StringToAlphabet</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>AlphabetToString([1,2,3,0,0],"abcd")</userinput>
+= "bcdaa"
+<prompt>genius&gt;</prompt> <userinput>AlphabetToString(null,"abcd")</userinput>
+= ""
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
+         <listitem>
+          <synopsis>StringToASCII (str)</synopsis>
+         <para>Convert a string to a (row) vector of ASCII values.
+                 See also
+                 <link linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
+= [97, 98, 99]
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
+         <listitem>
+          <synopsis>StringToAlphabet (str,alphabet)</synopsis>
+         <para>Convert a string to a (row) vector of 0-based alphabet values
+                 (positions in the alphabet string), -1's for unknown letters.
+                 An empty string results in a <constant>null</constant>.
+                 See also
+                 <link linkend="gel-function-AlphabetToString"><function>AlphabetToString</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToAlphabet("cca","abcd")</userinput>
+= [2, 2, 0]
+<prompt>genius&gt;</prompt> <userinput>StringToAlphabet("ccag","abcd")</userinput>
+= [2, 2, 0, -1]
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-symbolic">
+      <title>Συμβολικές πράξεις</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
+         <listitem>
+          <synopsis>SymbolicDerivative (f)</synopsis>
+          <para>Προσπαθεί για συμβολική παραγώγιση της συνάρτησης f, όπου f είναι μια συνάρτηση μιας 
μεταβλητής.</para>
+          <para>Παραδείγματα: <screen><prompt>genius&gt;</prompt> 
<userinput>SymbolicDerivative(sin)</userinput>
+= (`(x)=cos(x))
+<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
+= (`(x)=(7*(2*x)))
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicDerivativeTry (f)</synopsis>
+         <para>Προσπαθεί να παραγωγίσει συμβολικά τη συνάρτηση f, όπου f είναι μια συνάρτηση μιας 
μεταβλητής, επιστρέφει <constant>null</constant> αν είναι ανεπιτυχής, αλλά είναι σιωπηλό. (Δείτε <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
+          <para>Προσπαθεί να παραγωγίσει συμβολικά μια συνάρτηση n φορές. (Δείτε <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
+         <para>Προσπαθεί να παραγωγίσει συμβολικά μια συνάρτηση n φορές σιωπηρά και επιστρέφει 
<constant>null</constant> στην αποτυχία (Δείτε <link 
linkend="gel-function-SymbolicNthDerivative"><function>SymbolicNthDerivative</function></link>)</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
+         <listitem>
+          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
+         <para>Προσπαθεί να κατασκευάσει τη συνάρτηση προσέγγισης Τέιλορ γύρω από το x0 στον nστο βαθμό. 
(Δείτε <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-plotting">
+      <title>Γραφική παράσταση</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
+         <listitem>
+          <synopsis>ExportPlot (file,type)</synopsis>
+          <synopsis>ExportPlot (file)</synopsis>
+          <para>Εξάγει τα περιεχόμενα του παραθύρου γραφικής παράστασης σε αρχείο. Ο τύπος είναι μια 
συμβολοσειρά που καθορίζει τον τύπο αρχείου για χρήση, "png", "eps", ή "ps". Αν ο τύπος δεν ορίζεται, τότε 
παίρνεται η επέκταση, οπότε η επέκταση πρέπει να είναι ".png", ".eps", ή ".ps".</para>
+         <para>Σημειώστε ότι τα αρχεία αντικαθίστανται χωρίς ερώτηση.</para>
+         <para>Σε πετυχημένη εξαγωγή, επιστρέφεται αληθές. Αλλιώς, εκτυπώνεται σφάλμα και εγείρεται 
εξαίρεση.</para>
+          <para>Παραδείγματα: <screen><prompt>genius&gt;</prompt> 
<userinput>ExportPlot("file.png")</userinput>
+<prompt>genius&gt;</prompt> <userinput>ExportPlot("/directory/file","eps")</userinput>
+</screen></para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
+         <listitem>
+          <synopsis>LinePlot (func1,func2,func3,...)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2])</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2,y1,y2])</synopsis>
+          <para>Σχεδιάστε μια συνάρτηση (ή αρκετές συναρτήσεις) με μια γραμμή. Πρώτα (μέχρι 10) ορίσματα 
είναι συναρτήσεις, έπειτα μπορείτε προαιρετικά να ορίσετε τα όρια του παραθύρου σχεδίασης ως 
<varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Αν τα όρια δεν 
ορίζονται, τότε εφαρμόζονται τα τρέχοντα ορισμένα όρια (Δείτε <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>) Αν τα όρια y δεν ορίζονται, 
τότε οι συναρτήσεις υπολογίζονται και έπειτα χρησιμοποιούνται τα μέγιστα και ελάχιστα.</para>
+          <para>Η παράμετρος <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ελέγχει τη 
σχεδίαση του υπομνήματος.</para>
+          <para>Παραδείγματα: <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
+         <listitem>
+          <synopsis>LinePlotClear ()</synopsis>
+          <para>Εμφανίζει το παράθυρο σχεδίασης γραμμής και καθαρίζει τις συναρτήσεις και οποιαδήποτε άλλη 
γραμμή σχεδιάστηκε.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
+         <listitem>
+          <synopsis>LinePlotCParametric (func,...)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <para>Σχεδιάζει μια παραμετρική μιγαδική συνάρτηση με μια γραμμή. Πρώτα έρχεται η συνάρτηση που 
επιστρέφει <computeroutput>x+iy</computeroutput>, έπειτα προαιρετικά τα όρια <varname>t</varname> ως 
<userinput>t1,t2,tinc</userinput>, στη συνέχεια προαιρετικά τα όρια ως 
<userinput>x1,x2,y1,y2</userinput>.</para>
+         <para>Αν τα όρια δεν καθορίζονται, τότε εφαρμόζονται τα τρέχοντα όρια (Δείτε <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Αν δίνεται η συμβολοσειρά 
"fit" για τα όρια x και y, τότε τα όρια είναι η μέγιστη έκταση του γραφήματος.</para>
+          <para>Η παράμετρος <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ελέγχει τη 
σχεδίαση του υπομνήματος.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
+         <listitem>
+          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
+          <synopsis>LinePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,
+           <varname>x2</varname>,<varname>y2</varname> can be replaced by an
+           <varname>n</varname> by 2 matrix for a longer polyline.
+           Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+           that is an <varname>n</varname> by 1 matrix and each complex number is then
+           considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           arrows, the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           <userinput>"arrow"</userinput>, or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, type of arrow, or the legend.  (Arrow and window are from version 1.0.6 onwards.)
+         </para>
+         <para>
+           If the line is to be treated as a filled polygon, filled with the given color, you
+           can specify the argument <userinput>"filled"</userinput>.  Since version 1.0.22 onwards.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>Το παράθυρο πρέπει να δίνεται ως συνήθως σαν <userinput>[x1,x2,y1,y2]</userinput>, ή 
εναλλακτικά μπορεί να δοθεί ως μια συμβολοσειρά <userinput>"fit"</userinput> οπότε, η περιοχή x θα οριστεί 
ακριβώς και η περιοχή y θα οριστεί με περιγράμματα πέντε τοις εκατό γύρω από τη γραμμή.</para>
+         <para>Η προδιαγραφή του βέλους πρέπει να είναι <userinput>"origin"</userinput>, 
<userinput>"end"</userinput>, <userinput>"both"</userinput>, ή <userinput>"none"</userinput>.</para>
+         <para>Στο τέλος, το υπόμνημα πρέπει να είναι μια συμβολοσειρά που μπορεί να χρησιμοποιηθεί ως 
υπόμνημα στο γράφημα. Δηλαδή, αν εκτυπωθούν τα υπομνήματα.</para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.
+         </para>
+         <para>
+                 Specifying <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
+         <listitem>
+          <synopsis>LinePlotDrawPoints (x,y,...)</synopsis>
+          <synopsis>LinePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>.
+                 The input can be an <varname>n</varname> by 2 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>.
+                 Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+                 that is an <varname>n</varname> by 1 matrix and each complex number is then
+                 considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>Το παράθυρο πρέπει να δίνεται ως συνήθως σαν <userinput>[x1,x2,y1,y2]</userinput>, ή 
εναλλακτικά μπορεί να δοθεί ως μια συμβολοσειρά <userinput>"fit"</userinput> οπότε, η περιοχή x θα οριστεί 
ακριβώς και η περιοχή y θα οριστεί με περιγράμματα πέντε τοις εκατό γύρω από τη γραμμή.</para>
+         <para>Στο τέλος, το υπόμνημα πρέπει να είναι μια συμβολοσειρά που μπορεί να χρησιμοποιηθεί ως 
υπόμνημα στο γράφημα. Δηλαδή, αν εκτυπωθούν τα υπομνήματα.</para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The 7th 
roots of unity")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.  Therefore, notice in the
+                 last example the transpose of the vector <userinput>0:6</userinput>
+                 to make it into a column vector.
+         </para>
+         <para>
+                 Available from version 1.0.18 onwards.  Specifying
+                 <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
+         <listitem>
+          <synopsis>LinePlotMouseLocation ()</synopsis>
+          <para>
+           Returns a row vector of a point on the line plot corresponding to
+           the current mouse location.  If the line plot is not visible,
+           then prints an error and returns <constant>null</constant>.
+           In this case you should run
+           <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> or
+           <link linkend="gel-function-LinePlotClear"><function>LinePlotClear</function></link>
+           to put the graphing window into the line plot mode.
+           See also
+           <link 
linkend="gel-function-LinePlotWaitForClick"><function>LinePlotWaitForClick</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
+         <listitem>
+          <synopsis>LinePlotParametric (xfunc,yfunc,...)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")</synopsis>
+          <para>Σχεδιάζει μια παραμετρική συνάρτηση με μια γραμμή. Πρώτα έρχονται οι συναρτήσεις για 
<varname>x</varname> και <varname>y</varname>, έπειτα προαιρετικά τα όρια του <varname>t</varname> ως 
<userinput>t1,t2,tinc</userinput>, έπειτα προαιρετικά τα όρια ως <userinput>x1,x2,y1,y2</userinput>.</para>
+         <para>Αν δεν ορίζονται τα όρια x και y, τότε εφαρμόζονται τα τρέχοντα όρια (Δείτε <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Αν δίνεται η συμβολοσειρά 
"fit" για τα όρια x και y, τότε τα όρια είναι η μέγιστη έκταση του γραφήματος.</para>
+          <para>Η παράμετρος <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ελέγχει τη 
σχεδίαση του υπομνήματος.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
+         <listitem>
+          <synopsis>LinePlotWaitForClick ()</synopsis>
+          <para>
+           If in line plot mode, waits for a click on the line plot window
+           and returns the location of the click as a row vector.
+           If the window is closed
+           the function returns immediately with <constant>null</constant>.
+           If the window is not in line plot mode, it is put in it and shown
+           if not shown.
+           See also
+           <link 
linkend="gel-function-LinePlotMouseLocation"><function>LinePlotMouseLocation</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasFreeze"/>PlotCanvasFreeze</term>
+         <listitem>
+          <synopsis>PlotCanvasFreeze ()</synopsis>
+          <para>Προσωρινό πάγωμα σχεδίασης του καμβά. Χρήσιμο αν χρειάζεστε να σχεδιάσετε μια ομάδα 
στοιχείων και θέλετε να καθυστερήσετε τη σχεδίαση όλων για να αποφύγετε τρεμόσβησμα σε μια κίνηση. Αφού έχουν 
σχεδιαστεί όλα θα πρέπει να καλέσετε <link 
linkend="gel-function-PlotCanvasThaw"><function>PlotCanvasThaw</function></link>.</para>
+          <para>Ο καμβάς ξεπαγώνει πάντα μετά το τέλος οποιασδήποτε εκτέλεσης, έτσι δεν θα παραμείνει ποτέ 
παγωμένος. Τη στιγμή που μια νέα γραμμή εντολών εμφανίζεται για παράδειγμα, ο καμβάς σχεδίασης ξεπαγώνει 
αυτόματα. Σημειώστε επίσης ότι οι κλήσεις για πάγωμα και ξεπάγωμα μπορούν με ασφάλεια να εντεθούν.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
+         <listitem>
+          <synopsis>PlotCanvasThaw ()</synopsis>
+          <para>
+                 Thaw the plot canvas frozen by
+                 <link linkend="gel-function-PlotCanvasFreeze"><function>PlotCanvasFreeze</function></link>
+                 and redraw the canvas immediately.  The canvas is also always thawed after end of execution
+                 of any program.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
+         <listitem>
+          <synopsis>PlotWindowPresent ()</synopsis>
+          <para>
+                 Show and raise the plot window, creating it if necessary.
+                 Normally the window is created when one of the plotting
+                 functions is called, but it is not always raised if it
+                 happens to be below other windows.  So this function is
+                 good to call in scripts where the plot window might have 
+                 been created before, and by now is hidden behind the
+                 console or other windows.
+          </para>
+         <para>Version 1.0.19 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
+         <listitem>
+          <synopsis>SlopefieldClearSolutions ()</synopsis>
+          <para>Καθαρίζει τις σχεδιασμένες λύσεις από τη συνάρτηση <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
+         <listitem>
+          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
+          <para>Όταν μια γραφική παράσταση πεδίου κλίσης είναι ενεργή, σχεδιάστε μια λύση με την καθορισμένη 
αρχική συνθήκη. Η τυπική μέθοδος Ρούνγκε-Κούτα χρησιμοποιείται με αύξηση <varname>dx</varname>. Οι λύσεις 
μένουν στο γράφημα μέχρι να εμφανιστεί μια διαφορετική γραφική παράσταση ή μέχρι να καλέσετε <link 
linkend="gel-function-SlopefieldClearSolutions"><function>SlopefieldClearSolutions</function></link>. 
Μπορείτε επίσης να χρησιμοποιήσετε τη γραφική διεπαφή για να σχεδιάσετε λύσεις και να ορίσετε αρχικές 
συνθήκες με το ποντίκι.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
+         <listitem>
+          <synopsis>SlopefieldPlot (func)</synopsis>
+          <synopsis>SlopefieldPlot (func,x1,x2,y1,y2)</synopsis>
+          <para>Σχεδιάστε ένα πεδίο κλίσης. Η συνάρτηση <varname>func</varname> πρέπει να πάρει δύο 
πραγματικούς αριθμούς <varname>x</varname> και <varname>y</varname>, ή έναν απλό μιγαδικό αριθμό. 
Προαιρετικά, μπορείτε να ορίσετε τα όρια του παραθύρου σχεδίασης ως <varname>x1</varname>, 
<varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Αν τα όρια δεν καθορίζονται, τότε τα 
τρέχοντα ορισμένα όρια εφαρμόζονται (Δείτε <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
+          <para>Η παράμετρος <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ελέγχει τη 
σχεδίαση του υπομνήματος.</para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+       <varlistentry>
+        <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
+         <listitem>
+          <synopsis>SurfacePlot (func)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2)</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2])</synopsis>
+          <para>Σχεδιάστε μια συνάρτηση επιφάνειας που παίρνει είτε δύο ορίσματα ή έναν μιγαδικό αριθμό. 
Πρώτα έρχεται η συνάρτηση, έπειτα προαιρετικά τα όρια ως <varname>x1</varname>, <varname>x2</varname>, 
<varname>y1</varname>, <varname>y2</varname>, <varname>z1</varname>, <varname>z2</varname>. Αν τα όρια δεν 
καθορίζονται, τότε εφαρμόζονται τα τρέχοντα ορισμένα όρια (Δείτε <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>). Η Genius μπορεί να 
σχεδιάσει μόνο μια μοναδική συνάρτηση επιφάνειας τη φορά.</para>
+          <para>Αν τα όρια Z δεν καθορίζονται, τότε χρησιμοποιούνται τα μέγιστα και ελάχιστα της 
συνάρτησης.</para>
+          <para>Παραδείγματα: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
+         <listitem>
+          <synopsis>SurfacePlotClear ()</synopsis>
+          <para>
+            Show the surface plot window and clear out functions and any other
+            lines that were drawn.
+          </para>
+          <para>
+           Available in version 1.0.19 and onwards.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
+         <listitem>
+          <synopsis>SurfacePlotData (data)</synopsis>
+          <synopsis>SurfacePlotData (data,label)</synopsis>
+          <synopsis>SurfacePlotData (data,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,label,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotData (data,label,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <para>
+                 Plot a surface from data.  The data is an n by 3 matrix whose
+                 rows are the x, y and z coordinates.  The data can also be
+                 simply a vector whose length is a multiple of 3 and so
+                 contains the triples of x, y, z.  The data should contain at
+                 least 3 points.
+         </para>
+          <para>Προαιρετικά μπορούμε να δώσουμε την ετικέτα και επίσης τα όρια. Αν δεν δίνονται τα όρια, 
υπολογίζονται από τα δεδομένα, το <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link> δεν χρησιμοποιείται, 
αν θέλετε να το χρησιμοποιήσετε, περάστε το ρητά. Αν δεν δίνεται η ετικέτα, τότε χρησιμοποιείται η κενή 
ετικέτα.</para>
+          <para>Παραδείγματα: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,-1,1,-1,1,0,10)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,SurfacePlotWindow)</userinput>
+</screen></para>
+         <para>Ιδού ένα παράδειγμα πώς να σχεδιάσετε σε πολικές συντεταγμένες, ιδιαίτερα πώς να σχεδιάσετε 
τη συνάρτηση <userinput>-r^2 * theta</userinput>: <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>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
+</screen></para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
+         <listitem>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2],label)</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],label)</synopsis>
+          <para>Σχεδιάστε μια επιφάνεια από κανονικά δεδομένα ορθογωνίου. Τα δεδομένα δίνεται σε έναν πίνακα 
n επί m, όπου οι γραμμές είναι η συντεταγμένη x και οι στήλες είναι η συντεταγμένη y. Η συντεταγμένη x 
διαιρείται σε ίσα n-1 υποδιαστήματα και η συντεταγμένη y διαιρείται σε ίσα m-1 υποδιαστήματα. Τα όρια 
<varname>x1</varname> και <varname>x2</varname> δίνουν το διάστημα στον άξονα x που χρησιμοποιούμε, ενώ τα 
όρια <varname>y1</varname> και <varname>y2</varname> δίνουν το διάστημα στον άξονα y που χρησιμοποιούμε. Αν 
τα όρια <varname>z1</varname> και <varname>z2</varname> δεν δίνονται, υπολογίζονται από τ
 α δεδομένα (για να είναι οι ακραίες τιμές από τα δεδομένα).</para>
+          <para>Προαιρετικά, μπορούμε να δώσουμε την ετικέτα. Αν η ετικέτα δεν δίνεται, τότε χρησιμοποιείται 
η κενή ετικέτα.</para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = 
(0.1*i-1)^2-(0.1*j)^2;</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"half a saddle")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
+          <synopsis>SurfacePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname>,
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname> can be replaced by an
+           <varname>n</varname> by 3 matrix for a longer polyline.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>,
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>Στο τέλος, το υπόμνημα πρέπει να είναι μια συμβολοσειρά που μπορεί να χρησιμοποιηθεί ως 
υπόμνημα στο γράφημα. Δηλαδή, αν εκτυπωθούν τα υπομνήματα.</para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawPoints (x,y,z,...)</synopsis>
+          <synopsis>SurfacePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>,<varname>z</varname>.
+                 The input can be an <varname>n</varname> by 3 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-SurfacePlotDrawLine">SurfacePlotDrawLine</link>.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>Στο τέλος, το υπόμνημα πρέπει να είναι μια συμβολοσειρά που μπορεί να χρησιμοποιηθεί ως 
υπόμνημα στο γράφημα. Δηλαδή, αν εκτυπωθούν τα υπομνήματα.</para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
+         <listitem>
+          <synopsis>VectorfieldClearSolutions ()</synopsis>
+          <para>Καθαρίζει τις σχεδιασμένες λύσεις από τη συνάρτηση <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>.</para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
+         <listitem>
+          <synopsis>VectorfieldDrawSolution (x, y, dt, tlen)</synopsis>
+          <para>Όταν ένα πεδίο διανύσματος είναι ενεργό, σχεδιάστε μια λύση με την καθορισμένη αρχική 
συνθήκη. Η τυπική μέθοδος Ρούνγκε-Κούτα χρησιμοποιείται με αύξηση <varname>dt</varname> για ένα διάστημα 
μήκους <varname>tlen</varname>.. Οι λύσεις μένουν στο γράφημα μέχρι να εμφανιστεί μια διαφορετική γραφική 
παράσταση ή μέχρι να καλέσετε <link 
linkend="gel-function-VectorfieldClearSolutions"><function>VectorfieldClearSolutions</function></link>. 
Μπορείτε επίσης να χρησιμοποιήσετε τη γραφική διεπαφή για να σχεδιάσετε λύσεις και να ορίσετε αρχικές 
συνθήκες με το ποντίκι.</para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
+         <listitem>
+          <synopsis>VectorfieldPlot (funcx, funcy)</synopsis>
+          <synopsis>VectorfieldPlot (funcx, funcy, x1, x2, y1, y2)</synopsis>
+          <para>Σχεδιάστε ένα δισδιάστατο διανυσματικό πεδίο. Η συνάρτηση <varname>funcx</varname> πρέπει να 
είναι η dx/dt του διανυσματικού πεδίου και η συνάρτηση <varname>funcy</varname> πρέπει να είναι η dy/dt του 
διανυσματικού πεδίου. Οι συναρτήσεις πρέπει να παίρνουν δύο πραγματικούς αριθμούς <varname>x</varname> και 
<varname>y</varname>, ή έναν μοναδικό μιγαδικό αριθμό. Όταν η παράμετρος <link 
linkend="gel-function-VectorfieldNormalized"><function>VectorfieldNormalized</function></link> είναι 
<constant>true</constant>, τότε το μέγεθος των διανυσμάτων είναι κανονικοποιημένο. Δηλαδή, εμφανίζεται μόνο η 
κατεύθυνση και όχι το μέγεθος.</para>
+         <para>Προαιρετικά, μπορείτε να ορίσετε τα όρια του παραθύρου σχεδίασης ως <varname>x1</varname>, 
<varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Αν δεν καθορίζονται τα όρια, τότε 
εφαρμόζονται τα τρέχοντα όρια (Δείτε <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
+          <para>Η παράμετρος <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> ελέγχει τη 
σχεδίαση του υπομνήματος.</para>
+          <para>Παραδείγματα: <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, 
`(x,y)=y^2-x, -1, 1, -1, 1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL examples ============================= -->
+  <chapter id="genius-gel-example-programs">
+    <title>Παράδειγμα προγραμμάτων στην GEL</title>
+
+    <para>Ιδού μια συνάρτηση που υπολογίζει παραγοντικά: <programlisting><![CDATA[function f(x) = if x <= 1 
then 1 else (f(x-1)*x)
+]]></programlisting></para>
+    <para>Με παραγραφοποίηση γίνεται: <programlisting><![CDATA[function f(x) = (
+  if x <= 1 then
+    1
+  else
+    (f(x-1)*x)
+)
+]]></programlisting></para>
+    <para>Αυτή είναι η άμεση θύρα της παραγοντικής συνάρτησης από τη σελίδα εγχειριδίου 
<application>bc</application>. Η σύνταξη φαίνεται παρόμοια με την <application>bc</application>, αλλά 
διαφέρει στο ότι στην GEL η τελευταία παράσταση είναι αυτή που επιστρέφεται. Χρησιμοποιώντας τη συνάρτηση 
<literal>return</literal>, θα πρέπει να είναι: <programlisting><![CDATA[function f(x) = (
+  if (x <= 1) then return (1);
+  return (f(x-1) * x)
+)
+]]></programlisting></para>
+
+    <para>Ο ευκολότερος τρόπος να οριστεί μια παραγοντική συνάρτηση είναι χρησιμοποιώντας τον βρόχο 
γινομένου όπως ακολουθεί. Αυτό δεν είναι μόνο ο πιο σύντομη και ο γρήγορη, αλλά επίσης η πιο αναγνώσιμη 
έκδοση. <programlisting>function f(x) = prod k=1 to x do k
+</programlisting></para>
+
+    <para>Ιδού ένα μεγαλύτερο παράδειγμα, αυτό βασικά ξαναορίζει την εσωτερική συνάρτηση <link 
linkend="gel-function-ref"><function>ref</function></link> για να υπολογίσει τη μορφή κλιμακωτής γραμμής ενός 
πίνακα. Η συνάρτηση <function>ref</function> είναι ενσωματωμένη και πολύ γρηγορότερη, αλλά αυτό το παράδειγμα 
δείχνει μερικά πιο σύνθετα γνωρίσματα της GEL. <programlisting><![CDATA[# Calculate the row-echelon form of a 
matrix
+function MyOwnREF(m) = (
+  if not IsMatrix(m) or not IsValueOnly(m) then
+    (error("MyOwnREF: argument not a value only matrix");bailout);
+  s := min(rows(m), columns(m));
+  i := 1;
+  d := 1;
+  while d <= s and i <= columns(m) do (
+
+    # This just makes the anchor element non-zero if at
+    # all possible
+    if m@(d,i) == 0 then (
+      j := d+1;
+      while j <= rows(m) do (
+        if m@(j,i) == 0 then
+          (j=j+1;continue);
+        a := m@(j,);
+        m@(j,) := m@(d,);
+        m@(d,) := a;
+        j := j+1;
+        break
+      )
+    );
+    if m@(d,i) == 0 then
+      (i:=i+1;continue);
+    
+    # Here comes the actual zeroing of all but the anchor
+    # element rows
+    j := d+1;
+    while j <= rows(m)) do (
+      if m@(j,i) != 0 then (
+        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
+      );
+      j := j+1
+    );
+    m@(d,) := m@(d,) * (1/m@(d,i));
+    d := d+1;
+    i := i+1
+  );
+  m
+)
+]]></programlisting></para>
+
+  </chapter>
+
+  <!-- ============= Customization ============================ -->
+  <chapter id="genius-prefs"> 
+    <title>Ρυθμίσεις</title> 
+
+    <para>Για να ρυθμίσετε το <application>Εργαλείο μαθηματικών Genius</application>, επιλέξτε 
<menuchoice><guimenu>Ρυθμίσεις</guimenu><guimenuitem>Προτιμήσεις</guimenuitem></menuchoice>. Υπάρχουν αρκετές 
βασικές παράμετροι που παρέχονται από την αριθμομηχανή πέρα από αυτές που δίνονται από την τυπική βιβλιοθήκη. 
Αυτές ελέγχουν τη συμπεριφορά της αριθμομηχανής.</para>
+
+    <note>
+      <title>Αλλαγή ρυθμίσεων με την GEL</title>
+      <para>Πολλές από τις ρυθμίσεις στη Genius είναι απλά καθολικές μεταβλητές και μπορούν να υπολογιστούν 
και να εκχωρηθούν με τον ίδιο τρόπο όπως οι κανονικές μεταβλητές. Δείτε <xref 
linkend="genius-gel-variables"/> για τον υπολογισμό και την εκχώρηση σε μεταβλητές και <xref 
linkend="genius-gel-function-parameters"/> για έναν κατάλογο ρυθμίσεων που μπορούν να τροποποιηθούν με αυτόν 
τον τρόπο.</para>
+      <para>Ως παράδειγμα, μπορείτε να ορίσετε τον μέγιστο αριθμό ψηφίων σε ένα αποτέλεσμα σε 12 
πληκτρολογώντας: <programlisting>MaxDigits = 12
+</programlisting></para>
+    </note>
+
+    <sect1 id="genius-prefs-output"> 
+      <title>Έξοδος</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Μέγιστος αριθμός ψηφίων στην έξοδο</guilabel>
+      </term> 
+         <listitem>
+                 <para>Ο μέγιστος αριθμός ψηφίων σε ένα αποτέλεσμα (<link 
linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Αποτελέσματα ως αριθμοί κινητής υποδιαστολής</guilabel>
+      </term> 
+         <listitem>
+                 <para>Αν τα αποτελέσματα πρέπει να εμφανίζονται πάντα ως αριθμοί κινητής υποδιαστολής 
(<link linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Αριθμοί κινητής υποδιαστολής σε επιστημονική σημειογραφία</guilabel>
+      </term> 
+         <listitem>
+                 <para>Αν οι αριθμοί κινητής υποδιαστολής πρέπει να είναι σε επιστημονική σημειογραφία 
(<link linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Να εμφανίζονται πάντα πλήρεις παραστάσεις</guilabel>
+      </term> 
+         <listitem>
+                 <para>Αν πρέπει να εμφανίζονται πλήρεις παραστάσεις για μη αριθμητικές τιμές επιστροφής 
(μεγαλύτερες από μια γραμμή) (<link 
linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Χρήση μικτών κλασμάτων</guilabel>
+      </term> 
+         <listitem>
+                 <para>Αν τα κλάσματα πρέπει να εμφανίζονται ως μικτά κλάσματα όπως "1 1/3" αντί για "4/3". 
(<link linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Να εμφανίζεται 0.0 όταν ο αριθμός κινητής υποδιαστολής είναι μικρότερος από 10^-x (το 
0=να μην περικόπτεται ποτέ)</guilabel>
+      </term> 
+         <listitem>
+         <para>How to chop output.  But only when other numbers nearby are large.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+            <guilabel>Να περικόπτονται οι αριθμοί μόνο όταν ένας άλλος αριθμός είναι μεγαλύτερος από 
10^-x</guilabel>
+      </term> 
+         <listitem>
+                 <para>When to chop output.  This is set by the parameter <link 
linkend="gel-function-OutputChopWhenExponent"><function>OutputChopWhenExponent</function></link>.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Απομνημόνευση ρυθμίσεων εξόδου σε όλες τις συνεδρίες</guilabel>
+      </term> 
+         <listitem>
+        <para>Αν θα πρέπει οι ρυθμίσεις εξόδου στο <guilabel>Επιλογές εξόδου αριθμού/παράστασης</guilabel> 
να απομνημονεύονται για την επόμενη συνεδρία. Δεν εφαρμόζεται στο πλαίσιο <guilabel>Επιλογές εξόδου 
σφάλματος/πληροφοριών</guilabel>.</para>
+             <para>Αν δεν σημειωθεί, είτε η προεπιλογή είτε οποιεσδήποτε προηγουμένως αποθηκευμένες 
ρυθμίσεις χρησιμοποιούνται κάθε φορά που η Genius ξεκινά. Σημειώστε ότι οι ρυθμίσεις αποθηκεύονται στο τέλος 
της συνεδρίας, έτσι αν θέλετε να αλλάξετε τις προεπιλογές, σημειώστε αυτό το πλαίσιο, επανεκκινήστε 
<application>Εργαλείο μαθηματικών Genius</application> και έπειτα αποεπιλέξτε το ξανά.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Να εμφανίζονται τα σφάλματα σε διάλογο</guilabel>
+      </term> 
+         <listitem>
+        <para>Αν οριστεί τα σφάλματα θα εμφανίζονται σε έναν ξεχωριστό διάλογο, αν δεν οριστεί τα σφάλματα 
θα τυπωθούν στην κονσόλα.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Να εμφανίζονται τα μηνύματα πληροφοριών σε έναν διάλογο</guilabel>
+      </term> 
+         <listitem>
+       <para>Αν οριστεί τα μηνύματα πληροφοριών θα εμφανίζονται σε έναν ξεχωριστό διάλογο, αν δεν οριστεί τα 
μηνύματα πληροφοριών θα τυπωθούν στην κονσόλα.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Ο μέγιστος αριθμός σφαλμάτων που θα εμφανίζονται</guilabel>
+      </term> 
+         <listitem>
+        <para>Ο μέγιστος αριθμός σφαλμάτων που θα επιστρέφεται με έναν υπολογισμό (<link 
linkend="gel-function-MaxErrors"><function>MaxErrors</function></link>). Αν το ορίσετε σε 0, τότε όλα τα 
σφάλματα επιστρέφονται πάντα. Συνήθως, αν κάποιος βρόχος προκαλεί πολλά σφάλματα, τότε είναι απίθανο ότι θα 
μπορέσετε να πάρετε νόημα από περισσότερους εκτός από λίγους από αυτούς, έτσι βλέποντας έναν μεγάλο κατάλογο 
σφαλμάτων δεν είναι συνήθως χρήσιμο.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+
+      <para>Πέρα από αυτές τις προτιμήσεις, υπάρχουν κάποιες προτιμήσεις που μπορούν να αλλαχθούν μόνο 
ορίζοντας τες στην κονσόλα χώρου εργασίας. Για άλλες που μπορούν να επηρεάσουν την έξοδο δείτε <xref 
linkend="genius-gel-function-parameters"/>.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <function>IntegerOutputBase</function>
+      </term> 
+         <listitem>
+        <para>Η βάση που θα χρησιμοποιηθεί για την έξοδο ακεραίων</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <function>OutputStyle</function>
+      </term> 
+         <listitem>
+       <para>A string, can be <literal>"normal"</literal>,
+<literal>"latex"</literal>, <literal>"mathml"</literal> or
+<literal>"troff"</literal> and it will affect how matrices (and perhaps other
+stuff) is printed, useful for pasting into documents.  Normal style is the
+default human readable printing style of <application>Genius Mathematics Tool</application>.  The other 
styles are for
+typesetting in LaTeX, MathML (XML), or in Troff.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+   </sect1> 
+
+    <sect1 id="genius-prefs-precision"> 
+      <title>Ακρίβεια</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Ακρίβεια κινητής υποδιαστολής</guilabel>
+      </term> 
+         <listitem>
+        <para>Η ακρίβεια κινητής υποδιαστολής σε δυαδικά ψηφία (<link 
linkend="gel-function-FloatPrecision"><function>FloatPrecision</function></link>). Σημειώστε ότι αλλάζοντας 
αυτό επηρεάζει μόνο τις νέες υπολογιζόμενες ποσότητες. Οι παλιές τιμές που αποθηκεύονται σε μεταβλητές είναι 
προφανώς ακόμα στην παλιά ακρίβεια και αν θέλετε να τις έχετε πιο ακριβείς, θα πρέπει να τις 
επαναϋπολογίσετε. Οι εξαιρέσεις σε αυτό είναι οι σταθερές συστήματος όπως <link 
linkend="gel-function-pi"><function>pi</function></link> ή <link 
linkend="gel-function-e"><function>e</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Να απομνημονεύεται η ρύθμιση ακρίβειας σε όλες τις συνεδρίες</guilabel>
+      </term> 
+         <listitem>
+        <para>Αν θα πρέπει η ακρίβεια να οριστεί για να απομνημονεύεται για την επόμενη συνεδρία. Αν δεν 
σημειωθεί, είτε η προεπιλεγμένη είτε οποιαδήποτε προηγουμένως αποθηκευμένη ρύθμιση θα χρησιμοποιηθεί, κάθε 
φορά που ξεκινά η Genius. Σημειώστε ότι οι ρυθμίσεις αποθηκεύονται στο τέλος της συνεδρίας και έτσι αν θέλετε 
να αλλάξετε την προεπιλογή σημειώστε αυτό το πλαίσιο, επανεκκινήστε τη genius και έπειτα αποεπιλέξτε την 
πάλι.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-terminal"> 
+      <title>Τερματικό</title> 
+
+      <para>Το τερματικό αναφέρεται στην κονσόλα στην περιοχή εργασίας.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Γραμμές οπισθοκύλισης</guilabel>
+      </term> 
+         <listitem>
+        <para>Γραμμές οπισθοκύλισης στο τερματικό.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Γραμματοσειρά</guilabel>
+      </term> 
+         <listitem>
+        <para>Η γραμματοσειρά που θα χρησιμοποιηθεί στο τερματικό.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Μαύρο σε λευκό</guilabel>
+      </term> 
+         <listitem>
+        <para>Αν θα χρησιμοποιήσετε μαύρο σε λευκό στο τερματικό.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Δρομέας που αναβοσβήνει</guilabel>
+      </term> 
+         <listitem>
+        <para>Αν ο δρομέας στο τερματικό πρέπει να αναβοσβήνει, όταν το τερματικό εστιάζει. Αυτό μπορεί 
μερικές φορές να είναι ενοχλητικό και δημιουργεί αδρανή κυκλοφορία αν χρησιμοποιείτε τη Genius 
απομακρυσμένα.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-memory"> 
+      <title>Μνήμη</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Μέγιστος αριθμός κόμβων για κατανομή</guilabel>
+      </term> 
+         <listitem>
+        <para>Εσωτερικά, όλα τα δεδομένα τίθενται σε μικρούς κόμβους στη μνήμη. Αυτό δίνει ένα όριο στον 
μέγιστο αριθμό κόμβων για κατανομή στους υπολογισμούς. Αυτό το όριο αποφεύγει το πρόβλημα έλλειψης μνήμης, αν 
κάνετε κάτι κατά λάθος, που χρησιμοποιεί υπερβολική μνήμη, όπως η αναδρομή χωρίς τέλος. Αυτό μπορεί να 
καθυστερήσει τον υπολογιστή σας και να τον δυσκολέψει ακόμα και να διακόψει το πρόγραμμα.</para>
+        <para>Μόλις φτάσει το όριο, το <application>Εργαλείο μαθηματικών Genius</application> ζητά αν θέλετε 
να διακόψετε τον υπολογισμό ή αν θέλετε να συνεχίσετε. Αν συνεχίσετε, δεν εφαρμόζεται όριο και είναι πιθανό 
στον υπολογιστής σας να λείψει μνήμη. Το όριο θα εφαρμοστεί ξανά την επόμενη φορά που θα εκτελέσετε ένα 
πρόγραμμα ή μια παράσταση στην κονσόλα ανεξάρτητα από το πώς απαντήσατε στην ερώτηση.</para>
+        <para>Ορίζοντας το όριο σε μηδέν σημαίνει ότι δεν υπάρχει όριο στο πόση μνήμη χρησιμοποιεί η 
Genius.</para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist> 
+    </sect1> 
+
+  </chapter>
+
+<!-- ============= About ====================================== -->
+  <chapter id="genius-about"> 
+    <title>Περί του <application>Εργαλείο μαθηματικών Genius</application></title> 
+
+    <para>Το <application>Εργαλείο μαθηματικών Genius</application> γράφτηκε από τον Jiří (George) Lebl 
(<email>jirka 5z com</email>). Το ιστορικό του <application>Εργαλείο μαθηματικών Genius</application> 
πηγαίνει πίσω στο τέλος του 1997. Ήταν το πρώτο πρόγραμμα αριθμομηχανής για GNOME, αλλά έπειτα επεκτάθηκε 
πέρα από μια απλή επιτραπέζια αριθμομηχανή. Για να βρείτε περισσότερες πληροφορίες για το 
<application>Εργαλείο μαθηματικών Genius</application>, παρακαλούμε επισκεφτείτε την <ulink 
url="http://www.jirka.org/genius.html"; type="http">ιστοσελίδα Genius</ulink>.</para>
+    <para>Για να αναφέρετε ένα σφάλμα ή να κάνετε μια πρόταση σχετικά με αυτήν την εφαρμογή ή αυτό το 
εγχειρίδιο, στείλτε ένα μήνυμα σε μένα (τον συγγραφέα) ή στείλτε στην ταχυδρομική λίστα (δείτε την 
ιστοσελίδα).</para>
+
+    <para> This program is distributed under the terms of the GNU
+      General Public license as published by the Free Software
+      Foundation; either version 3 of the License, or (at your option)
+      any later version. A copy of this license can be found at this
+      <ulink url="http://www.gnu.org/copyleft/gpl.html"; type="http">link</ulink>, or in the file
+      COPYING included with the source code of this program. </para>
+
+    <para>Jiří Lebl was during various parts of the development
+      partially supported for the work by NSF grants DMS 0900885, 
+      DMS 1362337,
+      the University of Illinois at Urbana-Champaign,
+      the University of California at San Diego, 
+      the University of Wisconsin-Madison, and
+      Oklahoma State University.  The software has
+      been used for both teaching and research.</para>
+
+  </chapter>
+
+</book>
diff --git a/help/el/html/ch11s02.html b/help/el/html/ch11s02.html
index 6affe30..8e21850 100644
--- a/help/el/html/ch11s02.html
+++ b/help/el/html/ch11s02.html
@@ -8,8 +8,8 @@ is blocked until the user responds.  If <code class="varname">default</code> is
 = 5764801
 </pre></dd><dt><span class="term"><a name="gel-function-Evaluate"></a>Evaluate</span></dt><dd><pre 
class="synopsis">Evaluate (str)</pre><p>Αναλύει και υπολογίζει μια συμβολοσειρά.</p></dd><dt><span 
class="term"><a name="gel-function-GetCurrentModulo"></a>GetCurrentModulo</span></dt><dd><pre 
class="synopsis">GetCurrentModulo</pre><p>Λήψη του τρέχοντος ισοϋπόλοιπου από το περιεχόμενο έξω από τη 
συνάρτηση. Δηλαδή, αν εκτελέστηκε έξω από την συνάρτηση σε modulo (χρησιμοποιώντας <code 
class="literal">mod</code>), τότε αυτό επιστρέφει ποιο ήταν αυτό το modulo. Κανονικά το καλούμενο σώμα της 
συνάρτησης δεν εκτελείται σε αριθμητική υπολοίπων και αυτή η ενσωματωμένη συνάρτηση κάνει δυνατή την �
 �νημέρωση των συναρτήσεων GEL αριθμητικής υπολοίπων.</p></dd><dt><span class="term"><a 
name="gel-function-Identity"></a>Identity</span></dt><dd><pre class="synopsis">Identity (x)</pre><p>Identity 
function, returns its argument.  It is equivalent to <strong class="userinput"><code>function 
Identity(x)=x</code></strong>.</p></dd><dt><span class="term"><a 
name="gel-function-IntegerFromBoolean"></a>IntegerFromBoolean</span></dt><dd><pre 
class="synopsis">IntegerFromBoolean (bval)</pre><p>Κάνει τον ακέραιο (0 για <code 
class="constant">ψευδή</code> ή 1 για <code class="constant">αληθή</code>) από μια λογική τιμή. Η <code 
class="varname">bval</code> μπορεί επίσης να είναι ένας αριθμός οπότε μια μη μηδενική τιμή θα ερμηνευτεί ως 
<code class="constant">αληθής</code> και το μηδέν θα ερμηνευτεί ως <cod
 e class="constant">ψευδής</code>.</p></dd><dt><span class="term"><a 
name="gel-function-IsBoolean"></a>IsBoolean</span></dt><dd><pre class="synopsis">IsBoolean 
(arg)</pre><p>Ελέγχει αν το όρισμα είναι λογική τιμή (και όχι αριθμός).</p></dd><dt><span class="term"><a 
name="gel-function-IsDefined"></a>IsDefined</span></dt><dd><pre class="synopsis">IsDefined 
(id)</pre><p>Ελέγχει αν ένα αναγνωριστικό ορίζεται. Θα πρέπει να περάσετε μια συμβολοσειρά ή και 
αναγνωριστικό. Αν περάσετε έναν πίνακα, κάθε καταχώριση θα υπολογιστεί ξεχωριστά και ο πίνακας πρέπει να 
περιέχει συμβολοσειρές ή αναγνωριστικά.</p></dd><dt><span class="term"><a 
name="gel-function-IsFunction"></a>IsFunction</span></dt><dd><pre class="synopsis">IsFunction 
(arg)</pre><p>Ελ�
 �γχει αν το όρισμα είναι συνάρτηση.</p></dd><dt><span class="term"><a 
name="gel-function-IsFunctionOrIdentifier"></a>IsFunctionOrIdentifier</span></dt><dd><pre 
class="synopsis">IsFunctionOrIdentifier (arg)</pre><p>Ελέγχει αν το όρισμα είναι συνάρτηση ή ένα 
αναγνωριστικό.</p></dd><dt><span class="term"><a 
name="gel-function-IsFunctionRef"></a>IsFunctionRef</span></dt><dd><pre class="synopsis">IsFunctionRef 
(arg)</pre><p>Ελέγχει αν το όρισμα είναι μια συνάρτηση αναφοράς. Αυτό περιλαμβάνει αναφορές 
μεταβλητών.</p></dd><dt><span class="term"><a name="gel-function-IsMatrix"></a>IsMatrix</span></dt><dd><pre 
class="synopsis">IsMatrix (arg)</pre><p>Ελέγχει αν ένα όρισμα είναι ένας πίνακας. Αν και η <code 
class="constant">null</code> θεωρείται μερικές φορές ως κενός �
 �ίνακας, η συνάρτηση <code class="function">IsMatrix</code> δεν θεωρεί την <code 
class="constant">null</code> ως πίνακα.</p></dd><dt><span class="term"><a 
name="gel-function-IsNull"></a>IsNull</span></dt><dd><pre class="synopsis">IsNull (arg)</pre><p>Ελέγχει αν το 
όρισμα είναι μια <code class="constant">null</code>.</p></dd><dt><span class="term"><a 
name="gel-function-IsString"></a>IsString</span></dt><dd><pre class="synopsis">IsString (arg)</pre><p>Ελέγχει 
αν το όρισμα είναι μια συμβολοσειρά κειμένου.</p></dd><dt><span class="term"><a 
name="gel-function-IsValue"></a>IsValue</span></dt><dd><pre class="synopsis">IsValue (arg)</pre><p>Ελέγχει αν 
το όρισμα είναι αριθμός.</p></dd><dt><span class="term"><a 
name="gel-function-Parse"></a>Parse</span></dt><dd><pre class="synopsis">Parse (str)</pre><p>Αναλύει, αλλά 
δεν υπολογίζε
 ι μια συμβολοσειρά. Σημειώστε ότι, συγκεκριμένος προϋπολογισμός γίνεται κατά τη διάρκεια του σταδίου 
ανάλυσης.</p></dd><dt><span class="term"><a 
name="gel-function-SetFunctionFlags"></a>SetFunctionFlags</span></dt><dd><pre 
class="synopsis">SetFunctionFlags (id,flags...)</pre><p>Ορίζει σημαίες για μια συνάρτηση, προς το παρόν <code 
class="literal">"PropagateMod"</code> and <code class="literal">"NoModuloArguments"</code>. Αν η <code 
class="literal">"PropagateMod"</code> οριστεί, τότε το σώμα της συνάρτησης υπολογίζεται σε αριθμητική 
υπολοίπων, όταν η συνάρτηση καλείται μέσα σε μια ομάδα που υπολογίστηκε χρησιμοποιώντας αριθμητική υπολοίπων 
(χρησιμοποιώντας <code class="literal">mod<
 /code>). Αν είναι <code class="literal">"NoModuloArguments"</code>, τότε τα ορίσματα της συνάρτησης δεν 
υπολογίζονται ποτέ χρησιμοποιώντας αριθμητική υπολοίπων.</p></dd><dt><span class="term"><a 
name="gel-function-SetHelp"></a>SetHelp</span></dt><dd><pre class="synopsis">SetHelp 
(id,category,desc)</pre><p>Ορισμός της γραμμής περιγραφής κατηγορίας και βοήθειας για μια 
συνάρτηση.</p></dd><dt><span class="term"><a 
name="gel-function-SetHelpAlias"></a>SetHelpAlias</span></dt><dd><pre class="synopsis">SetHelpAlias 
(id,alias)</pre><p>Εγκαθιστά μια παραλλαγή βοήθειας.</p></dd><dt><span class="term"><a 
name="gel-function-chdir"></a>chdir</span></dt><dd><pre class="synopsis">chdir (dir)</pre><p>Αλλάζει τον 
τρέχοντα κατάλογο, το ίδιο με <span class="command"><strong>cd</stro
 ng></span>.</p></dd><dt><span class="term"><a 
name="gel-function-CurrentTime"></a>CurrentTime</span></dt><dd><pre 
class="synopsis">CurrentTime</pre><p>Επιστρέφει τον τρέχοντα χρόνο UNIX με ακρίβεια μικροδευτερολέπτου ως 
έναν αριθμό κινητής υποδιαστολής. Δηλαδή, επιστρέφει τον αριθμό των δευτερολέπτων από την 1η Ιανουαρίου 
1970.</p><p>Version 1.0.15 onwards.</p></dd><dt><span class="term"><a 
name="gel-function-display"></a>display</span></dt><dd><pre class="synopsis">display 
(str,expr)</pre><p>Εμφανίζει μια συμβολοσειρά και μια έκφραση με άνω-κάτω τελεία για να τις 
διακρίνει.</p></dd><dt><span class="term"><a 
name="gel-function-DisplayVariables"></a>DisplayVariables</span></dt><dd><pre 
class="synopsis">DisplayVariables (var1,var2,...)</pre><p>Εμφάνιση συνό
 λου μεταβλητών. Οι μεταβλητές μπορούν να δοθούν ως συμβολοσειρές ή αναγνωριστικά. Για παράδειγμα: </p><pre 
class="programlisting">DisplayVariables(`x,`y,`z)
            </pre><p>Αν κληθεί χωρίς ορίσματα (πρέπει να παρέχεται άδεια λίστα ορισμάτων), όπως </p><pre 
class="programlisting">DisplayVariables()
-           </pre><p> τότε όλες οι μεταβλητές εκτυπώνονται συμπεριλαμβανομένου ενός ιχνηλάτηση στοίβας 
παρόμιου με την <span class="guilabel">Εμφάνιση μεταβλητών χρήστη</span> στην έκδοση γραφικών.</p><p>Version 
1.0.18 onwards.</p></dd><dt><span class="term"><a name="gel-function-error"></a>error</span></dt><dd><pre 
class="synopsis">error (str)</pre><p>Εμφανίζει μια συμβολοσειρά στη ροή σφάλματος (στην 
κονσόλα).</p></dd><dt><span class="term"><a name="gel-function-exit"></a>exit</span></dt><dd><pre 
class="synopsis">exit</pre><p>Παραλλαγές: <code class="function">quit</code></p><p>Φεύγει από το 
πρόγραμμα.</p></dd><dt><span class="term"><a name="gel-function-false"></a>false</span></dt><dd><pre 
class="synopsis">false</pre><p>Παραλλαγές: <code class="function">False</code
<code class="function">FALSE</code></p><p>Η λογική τιμή <code 
class="constant">ψευδές</code>.</p></dd><dt><span class="term"><a 
name="gel-function-manual"></a>manual</span></dt><dd><pre class="synopsis">manual</pre><p>Προβολή του 
εγχειριδίου χρήστη.</p></dd><dt><span class="term"><a 
name="gel-function-print"></a>print</span></dt><dd><pre class="synopsis">print (str)</pre><p>Εμφανίζει μια 
παράσταση και έπειτα δίνει μια νέα γραμμή. Το όρισμα <code class="varname">str</code> μπορεί να είναι 
οποιαδήποτε παράσταση. Γίνεται συμβολοσειρά πριν την εμφάνιση.</p></dd><dt><span class="term"><a 
name="gel-function-printn"></a>printn</span></dt><dd><pre class="synopsis">printn (str)</pre><p>Εμφανίζει 
μια παράσταση χωρίς μια τελική νέα γραμμή. Το όρισμα <code class="varname"
str</code> μπορεί να είναι οποιαδήποτε παράσταση. Γίνεται συμβολοσειρά πριν την εμφάνιση.</p></dd><dt><span 
class="term"><a name="gel-function-PrintTable"></a>PrintTable</span></dt><dd><pre 
class="synopsis">PrintTable (f,v)</pre><p>Εκτύπωση ενός πίνακα τιμών για μια λειτουργία. Οι τιμές είναι στο 
διάνυσμα <code class="varname">vvarname&gt;. PrintTable (f,[0:10])
-            vvarname&gt; </code></p><p>Version 1.0.18 onwards.</p></dd><dt><span class="term"><a 
name="gel-function-protect"></a>protect</span></dt><dd><pre class="synopsis">protect (id)</pre><p>Προστατεύει 
μια μεταβλητή από τροποποίηση. Αυτό χρησιμοποιείται στις εσωτερικές συναρτήσεις GEL για να αποφευχθεί η 
τυχαία αντικατάστασή τους.</p></dd><dt><span class="term"><a 
name="gel-function-ProtectAll"></a>ProtectAll</span></dt><dd><pre class="synopsis">ProtectAll 
()</pre><p>Προστατεύει όλες τις τρέχουσες ορισμένες μεταβλητές, παραμέτρους και συναρτήσεις από τροποποίηση. 
Αυτό χρησιμοποιείται στις εσωτερικές συναρτήσεις GEL για να αποφευχθεί η τυχαία αντικατάστασή τους. Κανονικά 
το <span clas
 s="application">Εργαλείο μαθηματικών Genius</span> θεωρεί απροστάτευτες τις μεταβλητές που όρισε ο 
χρήστης.</p><p>Version 1.0.7 onwards.</p></dd><dt><span class="term"><a 
name="gel-function-set"></a>set</span></dt><dd><pre class="synopsis">set (id,val)</pre><p>Set a global 
variable.  The <code class="varname">id</code>
+           </pre><p> τότε όλες οι μεταβλητές εκτυπώνονται συμπεριλαμβανομένου ενός ιχνηλάτηση στοίβας 
παρόμιου με την <span class="guilabel">Εμφάνιση μεταβλητών χρήστη</span> στην έκδοση γραφικών.</p><p>Version 
1.0.18 onwards.</p></dd><dt><span class="term"><a name="gel-function-error"></a>error</span></dt><dd><pre 
class="synopsis">error (str)</pre><p>Εμφανίζει μια συμβολοσειρά στη ροή σφάλματος (στην 
κονσόλα).</p></dd><dt><span class="term"><a name="gel-function-exit"></a>exit</span></dt><dd><pre 
class="synopsis">exit</pre><p>Παραλλαγές: <code class="function">quit</code></p><p>Φεύγει από το 
πρόγραμμα.</p></dd><dt><span class="term"><a name="gel-function-false"></a>false</span></dt><dd><pre 
class="synopsis">false</pre><p>Παραλλαγές: <code class="function">False</code
<code class="function">FALSE</code></p><p>Η λογική τιμή <code 
class="constant">ψευδές</code>.</p></dd><dt><span class="term"><a 
name="gel-function-manual"></a>manual</span></dt><dd><pre class="synopsis">manual</pre><p>Προβολή του 
εγχειριδίου χρήστη.</p></dd><dt><span class="term"><a 
name="gel-function-print"></a>print</span></dt><dd><pre class="synopsis">print (str)</pre><p>Εμφανίζει μια 
παράσταση και έπειτα δίνει μια νέα γραμμή. Το όρισμα <code class="varname">str</code> μπορεί να είναι 
οποιαδήποτε παράσταση. Γίνεται συμβολοσειρά πριν την εμφάνιση.</p></dd><dt><span class="term"><a 
name="gel-function-printn"></a>printn</span></dt><dd><pre class="synopsis">printn (str)</pre><p>Εμφανίζει 
μια παράσταση χωρίς μια τελική νέα γραμμή. Το όρισμα <code class="varname"
str</code> μπορεί να είναι οποιαδήποτε παράσταση. Γίνεται συμβολοσειρά πριν την εμφάνιση.</p></dd><dt><span 
class="term"><a name="gel-function-PrintTable"></a>PrintTable</span></dt><dd><pre 
class="synopsis">PrintTable (f,v)</pre><p>Εκτύπωση ενός πίνακα τιμών για μια λειτουργία. Οι τιμές είναι στο 
διάνυσμα <code class="varname">v</code>. Μπορείτε να χρησιμοποιήσετε τη σημειογραφία δόμησης διανύσματος ως 
εξής: </p><pre class="programlisting">PrintTable (f,[0:10])
+           </pre><p> Αν <code class="varname">v</code> είναι ένας θετικός ακέραιος, τότε θα χρησιμοποιηθεί ο 
πίνακας των ακεραίων από το 1 έως και το v.</p><p>Version 1.0.18 onwards.</p></dd><dt><span class="term"><a 
name="gel-function-protect"></a>protect</span></dt><dd><pre class="synopsis">protect (id)</pre><p>Προστατεύει 
μια μεταβλητή από τροποποίηση. Αυτό χρησιμοποιείται στις εσωτερικές συναρτήσεις GEL για να αποφευχθεί η 
τυχαία αντικατάστασή τους.</p></dd><dt><span class="term"><a 
name="gel-function-ProtectAll"></a>ProtectAll</span></dt><dd><pre class="synopsis">ProtectAll 
()</pre><p>Προστατεύει όλες τις τρέχουσες ορισμένες μεταβλητές, παραμέτρους και συναρτήσεις από τροποποίηση. 
Αυτό χρησ
 ιμοποιείται στις εσωτερικές συναρτήσεις GEL για να αποφευχθεί η τυχαία αντικατάστασή τους. Κανονικά το <span 
class="application">Εργαλείο μαθηματικών Genius</span> θεωρεί απροστάτευτες τις μεταβλητές που όρισε ο 
χρήστης.</p><p>Version 1.0.7 onwards.</p></dd><dt><span class="term"><a 
name="gel-function-set"></a>set</span></dt><dd><pre class="synopsis">set (id,val)</pre><p>Set a global 
variable.  The <code class="varname">id</code>
             can be either a string or a quoted identifier.
            For example:
            </p><pre class="programlisting">set(`x,1)
diff --git a/help/el/html/index.html b/help/el/html/index.html
index 4d3e82d..30f92f3 100644
--- a/help/el/html/index.html
+++ b/help/el/html/index.html
@@ -1,5 +1,5 @@
 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Εγχειρίδιο 
Genius</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="description" 
content="Εγχειρίδιο για το εργαλείο μαθηματικών."><link rel="home" href="index.html" title="Εγχειρίδιο 
Genius"><link rel="next" href="ch01.html" title="Κεφάλαιο 1. Εισαγωγή"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Εγχειρίδιο Genius</th></tr><tr><td width="20%" 
align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" 
href="ch01.html">Επόμενο</a></td></tr></table><hr></div><div lang="el" class="book"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a>Εγχειρίδιο Ge
 nius</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span 
class="firstname">Jiří</span> <span class="surname">Lebl</span></h3><div class="affiliation"><span 
class="orgname">Πανεπιστήμιο πολιτείας Οκλαχόμα<br></span><div class="address"><p> <code class="email">&lt;<a 
class="email" href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code> </p></div></div></div><div 
class="author"><h3 class="author"><span class="firstname">Kai</span> <span 
class="surname">Willadsen</span></h3><div class="affiliation"><span class="orgname">Πανεπιστήμιο του 
Κουινσλάντ, Αυστραλία<br></span><div class="address"><p> <code class="email">&lt;<a class="email" 
href="mailto:kaiw itee uq edu au">kaiw itee uq edu au</a>&gt;</code> 
</p></div></div></div></div></div><div><p class="releaseinfo">This manual describes version 1.0.22 of Genius.
-    </p></div><div><p class="copyright">Πνευματικά Δικαιώματα © 1997-2016 Jiří (George) 
Lebl</p></div><div><p class="copyright">Πνευματικά Δικαιώματα © 2004 Kai Willadsen</p></div><div><p 
class="copyright">Πνευματικά Δικαιώματα © 2013 Δημήτρης Σπίγγος (dmtrs32 gmail com)</p></div><div><p 
class="copyright">Πνευματικά Δικαιώματα © 2014 Μαρία Μαυρίδου (mavridou gmail com)</p></div><div><div 
class="legalnotice"><a name="legalnotice"></a><p>Χορηγείται άδεια αντιγραφής, διανομής και/ή τροποποίησης του 
παρόντος εγγράφου υπό τους όρους της έκδοσης 1.1 της Ελεύθερης Άδειας Τεκμηρίωσης GNU (GFDL), ή οποιασδήποτε 
μεταγενέστερης έκδοσής αυτής από το Ίδρυμα Ελεύθερου Λογισμικού (FSF), χωρ
 ίς αμετάβλητες ενότητες, κείμενα εμπροσθοφύλλου και κείμενα οπισθοφύλλου. Αντίγραφο της άδειας GFDL είναι 
διαθέσιμο στον ακόλουθο <a class="ulink" href="ghelp:fdl" target="_top">σύνδεσμο</a>, ή στο αρχείο 
COPYING-DOCS που διανέμεται μαζί με το παρόν εγχειρίδιο.</p><p>Αυτό το εγχειρίδιο αποτελεί μέρος της συλλογής 
εγχειριδίων του GNOME που διανέμονται υπό τους όρους της GFDL. Αν επιθυμείτε να διανείμετε το παρόν 
εγχειρίδιο ξεχωριστά από τη συλλογή, οφείλετε να προσθέσετε στο εγχειρίδιο αντίγραφο της άδειας χρήσης, όπως 
προβλέπεται στην ενότητα 6 της άδειας.</p><p>Πολλές από �
 �ις ονομασίες που χρησιμοποιούνται από εταιρείες για την διαφοροποίηση των προϊόντων και υπηρεσιών τους 
έχουν καταχωρηθεί ως εμπορικά σήματα. Σε όποιο σημείο της τεκμηρίωσης GNOME τυχόν εμφανίζονται αυτές οι 
ονομασίες, και εφόσον τα μέλη του Έργου τεκμηρίωσης GNOME έχουν λάβει γνώση αυτών των εμπορικών σημάτων, οι 
ονομασίες ή τα αρχικά αυτών θα γράφονται με κεφαλαίους χαρακτήρες.</p><p>ΤΟ ΠΑΡΟΝ ΕΓΓΡΑΦΟ ΚΑΙ ΟΙ ΤΡΟΠΟΙΗΜΕΝΕΣ 
ΕΚΔΟΣΕΙΣ ΑΥΤΟΥ ΠΑΡΕΧΟΝΤΑΙ ΥΠΟ ΤΟΥΣ ΟΡΟΥΣ ΤΗΣ ΕΛΕΥΘΕΡΗΣ ΑΔΕΙΑΣ ΤΕΚΜΗΡΙΩΣΗΣ GNU (GFDL) ΚΑΙ ΜΕ ΤΗΝ ΠΕΡΑΙΤΕΡΩ 
ΔΙΕΥΚΡΙΝΙΣΗ ΟΤΙ: </
 p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>ΤΟ ΠΑΡΟΝ ΕΓΓΡΑΦΟ 
ΠΑΡΕΧΕΤΑΙ "ΩΣ ΕΧΕΙ", ΧΩΡΙΣ ΟΠΟΙΑΔΗΠΟΤΕ ΑΛΛΗ ΕΓΓΥΗΣΗ, ΕΙΤΕ ΡΗΤΗ ΕΙΤΕ ΣΙΩΠΗΡΗ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ, ΧΩΡΙΣ 
ΠΕΡΙΟΡΙΣΜΟ, ΤΗΣ ΕΓΓΥΗΣΗΣ ΟΤΙ ΤΟ ΕΓΓΡΑΦΟ, Ή Η ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚΔΟΣΗ ΑΥΤΟΥ, ΕΙΝΑΙ ΕΜΠΟΡΕΥΣΙΜΟ, ΚΑΤΑΛΛΗΛΟ ΓΙΑ 
ΕΙΔΙΚΟ ΣΚΟΠΟ ΚΑΙ ΔΕΝ ΠΡΟΣΒΑΛΛΕΙ ΔΙΚΑΙΩΜΑΤΑ ΤΡΙΤΩΝ. Ο ΧΡΗΣΤΗΣ ΑΝΑΛΑΜΒΑΝΕΙ ΕΞ ΟΛΟΚΛΗΡΟΥ ΤΗΝ ΕΘΥΝΗ ΩΣ ΠΡΟΣ ΤΗΝ 
ΠΟΙΟΤΗΤΑ, ΤΗΝ ΑΚΡΙΒΕΙΑ ΚΑΙ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή ΤΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗΣ ΕΚΔΟΣΗΣ ΑΥΤΟΥ. ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ 
ΟΠΟΙΟΔΗΠΟΤΕ ΕΓΓΡΑΦΟ Ή ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚΔΟΣΗ ΑΥΤΟΥ ΑΠΟΔΕΙΧ
 ΘΟΥΝ ΕΛΑΤΤΩΜΑΤΙΚΑ ΚΑΘ' ΟΙΟΝΔΗΠΟΤΕ ΤΡΟΠΟ, Ο ΧΡΗΣΤΗΣ (ΚΑΙ ΟΧΙ Ο ΑΡΧΙΚΟΣ ΣΥΓΓΡΑΦΕΑΣ, ΔΗΜΙΟΥΡΓΟΣ Ή ΟΠΟΙΟΣΔΗΠΟΤΕ 
ΣΥΝΤΕΛΕΣΤΗΣ) ΑΝΑΛΑΜΒΑΝΕΙ ΤΟ ΚΟΣΤΟΣ ΟΠΟΙΑΣΔΗΠΟΤΕ ΑΝΑΓΚΑΙΑΣ ΣΥΝΤΗΡΗΣΗΣ, ΕΠΙΣΚΕΥΗΣ Ή ΔΙΟΡΘΩΣΗΣ. Η ΠΑΡΟΥΣΑ 
ΑΠΟΠΟΙΗΣΗ ΕΓΓΥΗΣΗΣ ΑΠΟΤΕΛΕΙ ΑΝΑΠΟΣΠΑΣΤΟ ΜΕΡΟΣ ΤΗΣ ΑΔΕΙΑΣ. ΔΕΝ ΕΠΙΤΡΕΠΕΤΑΙ ΟΥΔΕΜΙΑ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή 
ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΕΚΔΟΣΕΩΝ ΑΥΤΟΥ ΣΥΜΦΩΝΑ ΜΕ ΤΟΥΣ ΟΡΟΥΣ ΤΗΣ ΠΑΡΟΥΣΑΣ, ΠΑΡΑ ΜΟΝΟ ΕΑΝ ΣΥΝΟΔΕΥΕΤΑΙ ΑΠΟ ΤΗΝ ΑΠΟΠΟΙΗΣΗ 
ΕΓΓΥΗΣΗΣ, ΚΑΙ</p></li><li class="listitem"><p>Ο ΔΗΜΙΟΥΡΓΟΣ, Ο ΑΡΧΙΚΟΣ ΣΥΓΓΡΑΦΕΑΣ, ΟΙ ΣΥΝΤΕΛΕΣΤΕΣ Ή ΟΙ 
ΔΙΑΝΟΜΕΙΣ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή Τ�
 �ΟΠΟΠΟΙΗΜΕΝΗΣ ΕΚΔΟΣΗΣ ΑΥΤΟΥ, ΚΑΘΩΣ ΚΑΙ ΟΙ ΠΡΟΜΗΘΕΥΤΕΣ ΟΠΟΙΩΝΔΗΠΟΤΕ ΕΚ ΤΩΝ ΠΡΟΑΝΑΦΕΡΟΜΕΝΩΝ ΜΕΡΩΝ, ΔΕΝ 
ΕΥΘΥΝΟΝΤΑΙ ΕΝΑΝΤΙ ΟΙΟΥΔΗΠΟΤΕ, ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ ΚΑΙ ΥΠΟ ΚΑΜΙΑ ΕΡΜΗΝΕΙΑ ΝΟΜΟΥ, ΕΙΤΕ ΕΞ ΑΔΙΚΟΠΡΑΞΙΑΣ 
(ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ ΤΗΣ ΑΜΕΛΕΙΑΣ) ΕΙΤΕ ΣΤΟ ΠΛΑΙΣΙΟ ΣΥΜΒΑΤΙΚΗΣ Ή ΑΛΛΗΣ ΥΠΟΧΡΕΩΣΗΣ, ΓΙΑ ΤΥΧΟΝ ΑΜΕΣΕΣ, ΕΜΜΕΣΕΣ, 
ΕΙΔΙΚΕΣ, ΤΥΧΑΙΕΣ Ή ΣΥΝΕΠΑΚΟΛΟΥΘΕΣ ΖΗΜΙΕΣ ΟΠΟΙΑΣΔΗΠΟΤΕ ΜΟΡΦΗΣ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΧΩΡΙΣ ΠΕΡΙΟΡΙΣΜΟ, ΖΗΜΙΩΝ 
ΛΟΓΩ ΑΠΩΛΕΙΑΣ ΦΗΜΗΣ ΚΑΙ ΠΕΛΑΤΕΙΑΣ, ΔΙΑΚΟΠΗΣ ΕΡΓΑΣΙΩΝ, ΔΥΣΛΕΙΤΟΥΡΓΙΑΣ Ή ΒΛΑΒΗΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, Ή 
ΚΑΘΕ ΑΛΛΗΣ �
 �ΗΜΙΑΣ Ή ΑΠΩΛΕΙΑΣ ΠΟΥ ΟΦΕΙΛΕΤΑΙ Ή ΣΧΕΤΙΖΕΤΑΙ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ ΚΑΙ ΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΕΚΔΟΣΕΩΝ 
ΑΥΤΟΥ, ΑΚΟΜΑ ΚΑΙ ΑΝ ΤΑ ΩΣ ΑΝΩ ΜΕΡΗ ΕΙΧΑΝ ΛΑΒΕΙ ΓΝΩΣΗ ΤΗΣ ΠΙΘΑΝΟΤΗΤΑΣ ΠΡΟΚΛΗΣΗΣ ΤΕΤΟΙΩΝ 
ΖΗΜΙΩΝ.</p></li></ol></div></div></div><div><div class="legalnotice"><a name="idm45431170080624"></a><p 
class="legalnotice-title"><b>Aνάδραση</b></p><p>
+    </p></div><div><p class="copyright">Πνευματικά Δικαιώματα © 1997-2016 Jiří (George) 
Lebl</p></div><div><p class="copyright">Πνευματικά Δικαιώματα © 2004 Kai Willadsen</p></div><div><p 
class="copyright">Πνευματικά Δικαιώματα © 2013 Δημήτρης Σπίγγος (dmtrs32 gmail com)</p></div><div><p 
class="copyright">Πνευματικά Δικαιώματα © 2014 Μαρία Μαυρίδου (mavridou gmail com)</p></div><div><div 
class="legalnotice"><a name="legalnotice"></a><p>Χορηγείται άδεια αντιγραφής, διανομής και/ή τροποποίησης του 
παρόντος εγγράφου υπό τους όρους της έκδοσης 1.1 της Ελεύθερης Άδειας Τεκμηρίωσης GNU (GFDL), ή οποιασδήποτε 
μεταγενέστερης έκδοσής αυτής από το Ίδρυμα Ελεύθερου Λογισμικού (FSF), χωρ
 ίς αμετάβλητες ενότητες, κείμενα εμπροσθοφύλλου και κείμενα οπισθοφύλλου. Αντίγραφο της άδειας GFDL είναι 
διαθέσιμο στον ακόλουθο <a class="ulink" href="ghelp:fdl" target="_top">σύνδεσμο</a>, ή στο αρχείο 
COPYING-DOCS που διανέμεται μαζί με το παρόν εγχειρίδιο.</p><p>Αυτό το εγχειρίδιο αποτελεί μέρος της συλλογής 
εγχειριδίων του GNOME που διανέμονται υπό τους όρους της GFDL. Αν επιθυμείτε να διανείμετε το παρόν 
εγχειρίδιο ξεχωριστά από τη συλλογή, οφείλετε να προσθέσετε στο εγχειρίδιο αντίγραφο της άδειας χρήσης, όπως 
προβλέπεται στην ενότητα 6 της άδειας.</p><p>Πολλές από �
 �ις ονομασίες που χρησιμοποιούνται από εταιρείες για την διαφοροποίηση των προϊόντων και υπηρεσιών τους 
έχουν καταχωρηθεί ως εμπορικά σήματα. Σε όποιο σημείο της τεκμηρίωσης GNOME τυχόν εμφανίζονται αυτές οι 
ονομασίες, και εφόσον τα μέλη του Έργου τεκμηρίωσης GNOME έχουν λάβει γνώση αυτών των εμπορικών σημάτων, οι 
ονομασίες ή τα αρχικά αυτών θα γράφονται με κεφαλαίους χαρακτήρες.</p><p>ΤΟ ΠΑΡΟΝ ΕΓΓΡΑΦΟ ΚΑΙ ΟΙ ΤΡΟΠΟΙΗΜΕΝΕΣ 
ΕΚΔΟΣΕΙΣ ΑΥΤΟΥ ΠΑΡΕΧΟΝΤΑΙ ΥΠΟ ΤΟΥΣ ΟΡΟΥΣ ΤΗΣ ΕΛΕΥΘΕΡΗΣ ΑΔΕΙΑΣ ΤΕΚΜΗΡΙΩΣΗΣ GNU (GFDL) ΚΑΙ ΜΕ ΤΗΝ ΠΕΡΑΙΤΕΡΩ 
ΔΙΕΥΚΡΙΝΙΣΗ ΟΤΙ: </
 p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>ΤΟ ΠΑΡΟΝ ΕΓΓΡΑΦΟ 
ΠΑΡΕΧΕΤΑΙ "ΩΣ ΕΧΕΙ", ΧΩΡΙΣ ΟΠΟΙΑΔΗΠΟΤΕ ΑΛΛΗ ΕΓΓΥΗΣΗ, ΕΙΤΕ ΡΗΤΗ ΕΙΤΕ ΣΙΩΠΗΡΗ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ, ΧΩΡΙΣ 
ΠΕΡΙΟΡΙΣΜΟ, ΤΗΣ ΕΓΓΥΗΣΗΣ ΟΤΙ ΤΟ ΕΓΓΡΑΦΟ, Ή Η ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚΔΟΣΗ ΑΥΤΟΥ, ΕΙΝΑΙ ΕΜΠΟΡΕΥΣΙΜΟ, ΚΑΤΑΛΛΗΛΟ ΓΙΑ 
ΕΙΔΙΚΟ ΣΚΟΠΟ ΚΑΙ ΔΕΝ ΠΡΟΣΒΑΛΛΕΙ ΔΙΚΑΙΩΜΑΤΑ ΤΡΙΤΩΝ. Ο ΧΡΗΣΤΗΣ ΑΝΑΛΑΜΒΑΝΕΙ ΕΞ ΟΛΟΚΛΗΡΟΥ ΤΗΝ ΕΘΥΝΗ ΩΣ ΠΡΟΣ ΤΗΝ 
ΠΟΙΟΤΗΤΑ, ΤΗΝ ΑΚΡΙΒΕΙΑ ΚΑΙ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή ΤΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗΣ ΕΚΔΟΣΗΣ ΑΥΤΟΥ. ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ 
ΟΠΟΙΟΔΗΠΟΤΕ ΕΓΓΡΑΦΟ Ή ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚΔΟΣΗ ΑΥΤΟΥ ΑΠΟΔΕΙΧ
 ΘΟΥΝ ΕΛΑΤΤΩΜΑΤΙΚΑ ΚΑΘ' ΟΙΟΝΔΗΠΟΤΕ ΤΡΟΠΟ, Ο ΧΡΗΣΤΗΣ (ΚΑΙ ΟΧΙ Ο ΑΡΧΙΚΟΣ ΣΥΓΓΡΑΦΕΑΣ, ΔΗΜΙΟΥΡΓΟΣ Ή ΟΠΟΙΟΣΔΗΠΟΤΕ 
ΣΥΝΤΕΛΕΣΤΗΣ) ΑΝΑΛΑΜΒΑΝΕΙ ΤΟ ΚΟΣΤΟΣ ΟΠΟΙΑΣΔΗΠΟΤΕ ΑΝΑΓΚΑΙΑΣ ΣΥΝΤΗΡΗΣΗΣ, ΕΠΙΣΚΕΥΗΣ Ή ΔΙΟΡΘΩΣΗΣ. Η ΠΑΡΟΥΣΑ 
ΑΠΟΠΟΙΗΣΗ ΕΓΓΥΗΣΗΣ ΑΠΟΤΕΛΕΙ ΑΝΑΠΟΣΠΑΣΤΟ ΜΕΡΟΣ ΤΗΣ ΑΔΕΙΑΣ. ΔΕΝ ΕΠΙΤΡΕΠΕΤΑΙ ΟΥΔΕΜΙΑ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή 
ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΕΚΔΟΣΕΩΝ ΑΥΤΟΥ ΣΥΜΦΩΝΑ ΜΕ ΤΟΥΣ ΟΡΟΥΣ ΤΗΣ ΠΑΡΟΥΣΑΣ, ΠΑΡΑ ΜΟΝΟ ΕΑΝ ΣΥΝΟΔΕΥΕΤΑΙ ΑΠΟ ΤΗΝ ΑΠΟΠΟΙΗΣΗ 
ΕΓΓΥΗΣΗΣ, ΚΑΙ</p></li><li class="listitem"><p>Ο ΔΗΜΙΟΥΡΓΟΣ, Ο ΑΡΧΙΚΟΣ ΣΥΓΓΡΑΦΕΑΣ, ΟΙ ΣΥΝΤΕΛΕΣΤΕΣ Ή ΟΙ 
ΔΙΑΝΟΜΕΙΣ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή Τ�
 �ΟΠΟΠΟΙΗΜΕΝΗΣ ΕΚΔΟΣΗΣ ΑΥΤΟΥ, ΚΑΘΩΣ ΚΑΙ ΟΙ ΠΡΟΜΗΘΕΥΤΕΣ ΟΠΟΙΩΝΔΗΠΟΤΕ ΕΚ ΤΩΝ ΠΡΟΑΝΑΦΕΡΟΜΕΝΩΝ ΜΕΡΩΝ, ΔΕΝ 
ΕΥΘΥΝΟΝΤΑΙ ΕΝΑΝΤΙ ΟΙΟΥΔΗΠΟΤΕ, ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ ΚΑΙ ΥΠΟ ΚΑΜΙΑ ΕΡΜΗΝΕΙΑ ΝΟΜΟΥ, ΕΙΤΕ ΕΞ ΑΔΙΚΟΠΡΑΞΙΑΣ 
(ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ ΤΗΣ ΑΜΕΛΕΙΑΣ) ΕΙΤΕ ΣΤΟ ΠΛΑΙΣΙΟ ΣΥΜΒΑΤΙΚΗΣ Ή ΑΛΛΗΣ ΥΠΟΧΡΕΩΣΗΣ, ΓΙΑ ΤΥΧΟΝ ΑΜΕΣΕΣ, ΕΜΜΕΣΕΣ, 
ΕΙΔΙΚΕΣ, ΤΥΧΑΙΕΣ Ή ΣΥΝΕΠΑΚΟΛΟΥΘΕΣ ΖΗΜΙΕΣ ΟΠΟΙΑΣΔΗΠΟΤΕ ΜΟΡΦΗΣ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΧΩΡΙΣ ΠΕΡΙΟΡΙΣΜΟ, ΖΗΜΙΩΝ 
ΛΟΓΩ ΑΠΩΛΕΙΑΣ ΦΗΜΗΣ ΚΑΙ ΠΕΛΑΤΕΙΑΣ, ΔΙΑΚΟΠΗΣ ΕΡΓΑΣΙΩΝ, ΔΥΣΛΕΙΤΟΥΡΓΙΑΣ Ή ΒΛΑΒΗΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, Ή 
ΚΑΘΕ ΑΛΛΗΣ �
 �ΗΜΙΑΣ Ή ΑΠΩΛΕΙΑΣ ΠΟΥ ΟΦΕΙΛΕΤΑΙ Ή ΣΧΕΤΙΖΕΤΑΙ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ ΚΑΙ ΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΕΚΔΟΣΕΩΝ 
ΑΥΤΟΥ, ΑΚΟΜΑ ΚΑΙ ΑΝ ΤΑ ΩΣ ΑΝΩ ΜΕΡΗ ΕΙΧΑΝ ΛΑΒΕΙ ΓΝΩΣΗ ΤΗΣ ΠΙΘΑΝΟΤΗΤΑΣ ΠΡΟΚΛΗΣΗΣ ΤΕΤΟΙΩΝ 
ΖΗΜΙΩΝ.</p></li></ol></div></div></div><div><div class="legalnotice"><a name="idm54"></a><p 
class="legalnotice-title"><b>Aνάδραση</b></p><p>
              To report a bug or make a suggestion regarding the <span class="application">Genius Mathematics 
Tool</span>
              application or this manual, please visit the
              <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">Genius
diff --git a/help/es/genius.xml b/help/es/genius.xml
new file mode 100644
index 0000000..91ae7de
--- /dev/null
+++ b/help/es/genius.xml
@@ -0,0 +1,6999 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY app "<application>Genius Mathematics Tool</application>">
+<!ENTITY appname "Genius">
+<!ENTITY appversion "1.0.22">
+<!ENTITY date "September 2016">
+<!ENTITY legal SYSTEM "legal.xml">
+<!ENTITY manrevision "0.2">
+<!ENTITY lt "&#60;">
+<!ENTITY gt "&#62;">
+<!ENTITY le "&#8804;">
+<!ENTITY ge "&#8805;">
+<!ENTITY lsquo "&#8216;">
+<!ENTITY rsquo "&#8217;">
+<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
+<!-- 
+      (Do not remove this comment block.)
+  Maintained by the GNOME Documentation Project
+  http://developer.gnome.org/projects/gdp
+  Template version: 2.0 beta
+  Template last modified Apr 11, 2002
+-->
+<!-- =============Document Header ============================= -->
+<book id="index" lang="es">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <bookinfo>
+         <abstract role="description"><para>Manual de la herramienta matemática Genius.</para></abstract>
+    <title>Manual de Genius</title>       
+
+    <copyright>
+      <year>1997-2016</year>
+      <holder>Jiří (George) Lebl</holder>
+    </copyright>
+    <copyright>
+      <year>2004</year>
+      <holder>Kai Willadsen</holder>
+    </copyright><copyright><year>2011</year><holder>Daniel Mustieles (daniel mustieles gmail 
com)</holder></copyright>
+<!-- translators: uncomment this:
+  <copyright>
+   <year>2002</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+-->
+
+    <publisher> 
+      <publishername/> 
+    </publisher> 
+
+     <legalnotice id="legalnotice">
+       <para>Se concede permiso para copiar, distribuir o modificar este documento según las condiciones de 
la GNU Free Documentation License (GFDL), Versión 1.1 o cualquier versión posterior publicada por la Free 
Software Foundation sin Secciones invariantes, Textos de portada y Textos de contraportada. Encontrará una 
copia de la GFDL en este <ulink type="help" url="ghelp:fdl">enlace</ulink> o en el archivo COPYING-DOCS 
distribuido con este manual.</para>
+         <para>Este manual es parte de la colección de manuales GNOME distribuidos bajo la GFDL. Si quiere 
distribuir este manual separadamente de la colección, puede hacerlo añadiendo una copia de la licencia al 
manual, tal como se describe en la sección 6 de la licencia.</para>
+
+       <para>Muchos de los nombres usados por empresas para distinguir sus productos y servicios se 
mencionan como marcas comerciales. Donde aparezcan dichos nombres en cualquier documentación GNOME, y para 
que los miembros del proyecto de documentación reconozcan dichas marcas comerciales, dichos nombres se 
imprimen en mayúsculas o iniciales mayúsculas.</para>
+
+       <para>EL DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN CON SUJECIÓN A LOS 
TÉRMINOS DE LA GFDL, QUEDANDO BIEN ENTENDIDO, ADEMÁS, QUE: <orderedlist>
+               <listitem>
+                 <para>EL DOCUMENTO SE ENTREGA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, NI EXPLÍCITA NI 
IMPLÍCITA INCLUYENDO, SIN LIMITACIÓN, GARANTÍA DE QUE EL DOCUMENTO O VERSIÓN MODIFICADA DE ÉSTE CAREZCA 
DE DEFECTOS EN EL MOMENTO DE SU VENTA, SEA ADECUADO A UN FIN CONCRETO O INCUMPLA ALGUNA NORMATIVA. TODO EL 
RIESGO RELATIVO A LA CALIDAD, PRECISIÓN Y UTILIDAD DEL DOCUMENTO O SU VERSIÓN MODIFICADA RECAE EN USTED. SI 
CUALQUIER DOCUMENTO O VERSIÓN MODIFICADA DE AQUÉL RESULTARA DEFECTUOSO EN CUALQUIER ASPECTO, USTED (Y NO EL 
REDACTOR INICIAL, AUTOR O AUTOR DE APORTACIONES) ASUMIRÁ LOS COSTES DE TODA REPARACIÓN, MANTENIMIENTO O 
CORRECCIÓN NECESARIOS. ESTA EXENCIÓN DE RESPONSABILIDAD SOBRE LA GARANTÍA ES UNA PARTE ESENCIAL DE ESTA 
LICENCIA. NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DE ÉSTE POR EL PRESENTE, SALVO 
DENTRO DEL CUMPLIMIENTO DE LA EXENCIÓN DE RESPONSABILIDAD;Y</para>
+               </listitem>
+               <listitem>
+                 <para>BAJO NINGUNA CIRCUNSTANCIA NI BAJO NINGUNA TEORÍA LEGAL, SEA POR ERROR (INCLUYENDO 
NEGLIGENCIA), CONTRATO O DE ALGÚN OTRO MODO, EL AUTOR, EL ESCRITOR INICIAL, CUALQUIER CONTRIBUIDOR, O 
CUALQUIER DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL DOCUMENTO, O CUALQUIER PROVEEDOR DE CUALQUIERA 
DE ESAS PARTES, SERÁ RESPONSABLE ANTE NINGUNA PERSONA POR NINGÚN DAÑO DIRECTO, INDIRECTO, ESPECIAL, 
INCIDENTAL O DERIVADO DE NINGÚN TIPO, INCLUYENDO, SIN LIMITACIÓN DAÑOS POR PÉRDIDA DE MERCANCÍAS, PARO 
TÉCNICO, FALLO INFORMÁTICO O MAL FUNCIONAMIENTO O CUALQUIER OTRO POSIBLE DAÑO O PÉRDIDAS DERIVADAS O 
RELACIONADAS CON EL USO DEL DOCUMENTO O SUS VERSIONES MODIFICADAS, AUNQUE DICHA PARTE HAYA SIDO INFORMADA DE 
LA POSIBILIDAD DE QUE SE PRODUJESEN DICHOS DAÑOS.</para>
+               </listitem>
+         </orderedlist></para>
+  </legalnotice>
+
+
+   <!-- This file  contains link to license for the documentation (GNU FDL), and 
+        other legal stuff such as "NO WARRANTY" statement. Please do not change 
+       any of this. -->
+
+    <authorgroup> 
+      <author role="maintainer"> 
+               <firstname>Jiří</firstname> 
+               <surname>Lebl</surname> 
+               <affiliation> 
+                       <orgname>Universidad del estado de Oklahoma</orgname> 
+                       <address> <email>jirka 5z com</email> </address> 
+               </affiliation> 
+      </author> 
+      <author> 
+               <firstname>Kai</firstname> 
+               <surname>Willadsen</surname> 
+               <affiliation> 
+                       <orgname>Universidad de Queensland, Australia</orgname> 
+                       <address> <email>kaiw itee uq edu au</email> </address> 
+               </affiliation> 
+      </author> 
+      
+<!-- This is appropriate place for other contributors: translators,
+     maintainers,  etc. Commented out by default.
+     
+      <othercredit role="translator">
+               <firstname>Latin</firstname> 
+               <surname>Translator 1</surname> 
+               <affiliation> 
+                       <orgname>Latin Translation Team</orgname> 
+                       <address> <email>translator gnome org</email> </address> 
+               </affiliation>
+               <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+    </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+-->
+<!-- than the current revision. -->
+<!-- The revision numbering system for GNOME manuals is as follows: -->
+<!-- * the revision number consists of two components -->
+<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
+<!-- * the second component of the revision number is a decimal unit that is incremented with each revision 
of the manual. -->
+<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
+<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
+<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
+<!-- to V3.0, and so on. -->  
+<!--  This is unmaintained quite a bit so screw this it just makes things
+      ugly and we don't update the manrevision stuff anyway
+    <revhistory>
+      <revision> 
+               <revnumber>&manrevision;</revnumber> 
+               <date>&date;</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>0.1</revnumber> 
+               <date>September 2004</date> 
+               <revdescription> 
+                       <para role="author">Kai Willadsen
+               <email>kaiw itee uq edu au</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>Genius Calculator Manual</revnumber> 
+               <date>August 2004</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+    </revhistory> 
+-->
+
+    <revhistory>
+      <revision> 
+               <revnumber>0.2</revnumber> 
+               <date>Septiembre 2016</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl <email>jirka 5z com</email></para>
+               </revdescription> 
+      </revision> 
+    </revhistory>
+    <releaseinfo>Este manual describe la versión 1.0.22 de Genius.</releaseinfo> 
+    <legalnotice> 
+      <title>Comentarios</title> 
+      <para>Para informar de un fallo, o hacer alguna sugerencia sobre la aplicación 
<application>herramienta matemática Genius</application>, o este manual, siga las instrucciones en la <ulink 
url="http://www.jirka.org/genius.html"; type="http">página web de Genius</ulink> o envíe un correo electrónico 
a <email>jirka 5z com</email>.</para>
+<!-- Translators may also add here feedback address for translations -->
+    </legalnotice> 
+  </bookinfo> 
+
+<!-- ============= Introduction =============================== -->
+  <chapter id="genius-introduction"> 
+    <title>Introducción</title> 
+    <para>La <application>Herramienta matemática Genius</application> es una calculadora de uso general para 
usarse como una calculadora de escritorio, una herramienta educativa para matemáticas, incluso es útil en 
investigaciones. El lenguaje utilizado por la <application>Herramienta matemática Genius</application> está 
diseñado para ser «matemático» en el sentido en que debería ser «lo que quiere decir es lo que obtienes». Por 
supuesto que no es una meta completamente alcanzable. La <application>Herramienta matemática 
Genius</application> soporta números racionales, enteros de precisión arbitraria y flotantes de precisión 
múltiple usando la librería GMP. Maneja números complejos usando notación cartesiana. Tiene buena 
manipulación de vectores y matrices, y puede manejar álgebra lineal básica. El lenguaje de programación 
permite funciones definidas por el usuario, variables y modificaciones de los parámetros.</para> 
+
+    <para>Hay dos versiones de la <application>Herramienta matemática Genius</application>. Una es la 
versión gráfica para GNOME, que tiene una interfaz de tipo IDE y permite dibujar funciones de una y dos 
variables. La versión de línea de comandos no necesita GNOME, pero por supuesto no implementa ninguna 
característica que necesite la interfaz gráfica.</para> 
+
+    <para>Este manual describe principalmente la versión gráfica de la calculadora pero, por supuesto, el 
lenguaje es el mismo. La línea de comandos carece de las capacidades de dibujo y de otras capacidades que 
necesitan la interfaz gráfica de usuario.</para>
+
+    <para>Generalmente, cuando alguna característica del lenguaje (función, operador, etc...) es nueva en 
versiones a la 1.0.5 en adelante, se menciona, pero en versiones anteriores a 1.0.5 debería echar un vistazo 
al archivo NEWS.</para>
+
+  </chapter>
+
+<!-- =========== Getting Started ============================== -->
+  <chapter id="genius-getting-started"> 
+    <title>Primeros pasos</title> 
+
+    <sect1 id="genius-to-start">
+      <title>Para iniciar la <application>herramienta matemática Genius</application></title>
+      <para>Puede iniciar la <application>herramienta matemática Genius</application> de las siguientes 
formas:</para> 
+      <variablelist>
+        <varlistentry>
+          <term>Menú<guimenu>Aplicaciones</guimenu></term>
+          <listitem>
+           <para>Dependiendo de su sistema operativo y de su versión, el elemento de menú de la 
<application>Herramienta matemática Genius</application> puede aparecer en varios lugares diferentes. Puede 
estar en <guisubmenu>Educación</guisubmenu>, <guisubmenu>Accesorios</guisubmenu>, 
<guisubmenu>Oficina</guisubmenu>, <guisubmenu>Ciencia</guisubmenu>, o en un submenú similar, dependiendo de 
su configuración particular. El elemento de menú que está buscando es <guimenuitem>Herramienta matemática 
Genius</guimenuitem>. Cuando lo haya localizado, pulse en el para iniciar la <application>Herramienta 
matemática Genius</application>.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Diálogo <guilabel>Ejecutar</guilabel></term>
+          <listitem>
+           <para>Dependiendo de la instalación de su sistema, el elemento del menú puede no estar 
disponible. si no lo está, puede abrir el diálogo «Ejecutar» y ejecutar 
<command>gnome-genius</command>.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>Línea de comandos</term>
+         <listitem>
+           <para>Para iniciar la versión de GNOME de la<application>herramienta matemática 
Genius</application> ejecute <command>gnome-genius</command> desde la línea de comandos.</para>
+           <para>Para iniciar sólo la versión de línea de comandos, ejecute el siguiente comando: 
<command>genius</command>. Esta versión no incluye el entorno gráfico y ciertas funcionalidades, como 
dibujar, no estarán disponibles.</para> 
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-when-start">
+    <title>Al iniciar Genius</title>
+      <para>Cuando inicia la versión de la <application>herramienta matemática Genius</application> para 
GNOME, se muestra la ventana que aparece en la <xref linkend="mainwindow-fig"/>.</para>
+
+      <figure id="mainwindow-fig"> 
+        <title>Ventana de la <application>herramienta matemática Genius</application></title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+             <phrase>Muestra la ventana principal <application>Herramienta matemática Genius</application>. 
Contiene barra de título, barra de menús, barra de herramientas y área de trabajo. La barra de menú contiene 
los menús <guilabel>Archivo</guilabel>, <guilabel>Editar</guilabel>, <guilabel>Calculadora</guilabel>, 
<guilabel>Ejemplos</guilabel>,<guilabel>Programas</guilabel>,<guilabel>Configuración</guilabel>, y 
<guilabel>Ayuda</guilabel>.</phrase> 
+            </textobject> 
+          </mediaobject>
+        </screenshot> 
+      </figure>
+
+      <para>La ventana de la <application>herramienta matemática Genius</application> contiene los 
siguientes elementos:</para>
+      <variablelist>
+        <varlistentry>
+          <term>Barra de menú.</term>
+          <listitem>
+            <para>Los menús de la barra de menús contienen todos los comandos que necesita para trabajar con 
archivos en la <application>Herramienta matemática Genius</application>. El menú <guilabel>Archivo</guilabel> 
contiene elementos para cargar y guardar elementos y crear programas nuevos. El comando <guilabel>Cargar y 
ejecutar...</guilabel> no abre una ventana nueva para el programa, sino que lo ejecuta directamente. Es 
equivalente al comando <command>load</command>.</para>
+           <para>El menú <guilabel>Calculadora</guilabel> controla el motor de la calculadora. Permite 
ejecutar el programa actualmente seleccionado o interrumpir el cálculo actual. También puede mirar la 
expresión completa del último resultado (útil si el último resultado fue demasiado grande para ajustar a la 
consola), y puede mirar una lista con los valores de todas las variables definidas por el usuario. También 
puede monitorizar las variables del usuario, que es especialmente útil cuando se está ejecutando un cálculo 
muy largo, o para depurar un cierto programa. Finalmente, la <guilabel>Calculadora</guilabel> permite trazar 
funciones usando un cuadro de diálogo amigable.</para>
+          <para>El menú <guilabel>Ejemplos</guilabel> es una lista de programas de ejemplo o demostraciones. 
Si abre el menú, cargará el ejemplo en un nuevo programa, que puede ejecutar, editar, modificar y guardar. 
Estos programas deberían estar bien documentados y generalmente muestran alguna característica de 
<application>Herramienta matemática Genius</application> o algunos conceptos matemáticos.</para>
+          <para>El menú <guilabel>Programas</guilabel> muestra una lista de programas abiertos y le permite 
cambiar a uno de ellos.</para>
+          <para>Los otros menús tienen funciones similares a las de otras aplicaciones.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Barra de herramientas.</term>
+          <listitem>
+            <para>La barra de herramientas contiene un subconjunto de comandos a los que puede acceder desde 
la barra de menús.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Área de trabajo</term>
+          <listitem>
+            <para>El área de trabajo es el método primario para interactuar con la aplicación.</para>
+           <para>Inicialmente, el área de trabajo sólo tenía la pestaña <guilabel>Consola</guilabel>, que es 
el principal medio de interacción con la calculadora. Aquí puede escribir expresiones y el resultado se 
devuelve inmediatamente después de pulsar la tecla «Intro».</para>
+           <para>Alternativamente, puede escribir programas más largos y éstos pueden aparecer en pestañas 
separadas. Los programas son un conjunto de comandos o funciones que se pueden ejecutar a la vez sin tener 
que ejecutarlos desde una terminal. Los programas se pueden guardar en archivos para su posterior 
recuperación.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+<!-- ================ Usage =================================== -->
+  <chapter id="genius-usage"> 
+    <title>Uso básico</title> 
+
+    <sect1 id="genius-usage-workarea"> 
+      <title>Usar el área de trabajo</title> 
+
+      <para>Normalmente, interactúa con la calculadora en la pestaña <guilabel>Consola</guilabel> del área 
de trabajo. Si ejecuta la versión de solo texto, entonces la consola será el único medio disponible. Si 
quiere usar la <application>Herramienta matemática Genius</application> como una calculadora solamente, 
simplemente escriba aquí su expresión y se evaluará, mostrando su resultado en pantalla.</para>
+
+      <para>Escriba su expresión en el área de trabajo de la <guilabel>Consola</guilabel>, pulse «Intro» y 
la expresión se evaluará. Las expresiones están escritas en un lenguaje llamado GEL. Las expresiones GEL más 
simples parecen matemáticas. Por ejemplo <screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + 
ln(7) * (88.8/100)</userinput>
+</screen> o <screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
+</screen> o <screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
+</screen> o <screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
+</screen> (El último es la suma armónica de 1 a 70)</para>
+<para>Para obtener una lista de todas las funciones y los comandos, escriba: <screen><prompt>genius&gt; 
</prompt><userinput>help</userinput>
+</screen> Si quiere obtener más información sobre una función en concreto, escriba: 
<screen><prompt>genius&gt; </prompt><userinput>help nombre_de_la_función</userinput>
+</screen> Para ver este manual, escriba: <screen><prompt>genius&gt; </prompt><userinput>manual</userinput>
+</screen></para>
+<para>Suponga que ha guardado algún comando GEL previamente como un programa en un archivo y quiere 
ejecutarlo. Para cargar este programa desde el archivo <filename>ruta/a/programa.gel</filename>, escriba 
<screen><prompt>genius&gt; </prompt><userinput>load ruta/a/programa.gel</userinput>
+</screen> la<application>Herramienta matemática Genius</application> mantiene la ruta de la carpeta actual. 
Para listar los archivos de la carpeta actual, escriba <command>ls</command>, para cambiar de carpeta escriba 
<userinput>cd carpeta</userinput>, igual que en la línea de comandos de UNIX.</para>
+    </sect1>
+
+    <sect1 id="genius-usage-create-program"> 
+      <title>Crear un programa nuevo</title> 
+      <para>Si quiere insertar varios comando más complejos, o quizás escribir una función complicada 
utilizando el lenguaje <link linkend="genius-gel">GEL</link>. Puede crear un nuevo programa.</para>
+      <para>Para escribir un programa nuevo, eliga 
<menuchoice><guimenu>Archivo</guimenu><guimenuitem>Programa Nuevo</guimenuitem></menuchoice>. Aparecerá una 
pestaña nueva en el área de trabajo. Puede escribir un programa <link linkend="genius-gel">GEL</link> en esta 
área de trabajo. Una vez que haya escrito su programa, puede ejecutarlo desde 
<menuchoice><guimenu>Calculadora</guimenu><guimenuitem>Ejecutar</guimenuitem></menuchoice> (o el botón de la 
barra de herramientas <guilabel>Ejecutar</guilabel>). Esto ejecutará su programa y mostrará cualquier salida 
en la pestaña <guilabel>Consola</guilabel>. Ejecutar un programa es equivalente a tomar el texto del programa 
y escribirlo en la consola. La única diferencia es que esta entrada se realiza independientemente de la 
consola y solo la salida va hacia la consola. 
<menuchoice><guimenu>Calculadora</guimenu><guimenuitem>Ejecutar</guimenuitem></menuchoice> siempre ejecutará 
el programa actualmente seleccionado incluso 
 si se encuentra en la pestaña <guilabel>Consola</guilabel>. El programa actual tiene su letra en negrita. 
Para seleccionar un programa, simplemente pulse sobre su pestaña.</para>
+      <para>Para guardar el programa que acaba de escribir, elija 
<menuchoice><guimenu>Archivo</guimenu><guimenuitem>Guardar como...</guimenuitem></menuchoice>. Al igual que 
en otros programas puede elegir 
<menuchoice><guimenu>Archivo</guimenu><guimenuitem>Guardar</guimenuitem></menuchoice> para guardar un 
programa que ya tenía un nombre asignado. Si tiene muchos programas abiertos que ha editado y quiere 
guardarlos, puede hacerlo eligiendo <menuchoice><guimenu>Archivo</guimenu><guimenuitem>Guardar 
todo</guimenuitem></menuchoice>.</para>
+      <para>Los programas que no han guardado los cambios todavía, tienen un símbolo «[+]» junto al nombre 
de archivo. Así puede ver si el archivo en la pestaña actual y el que está guardado en el disco, difieren en 
su contenido. Los programas que no se han nombrado todavía, se consideran siempre como no guardados, por lo 
que no se muestra el símbolo «[+]».</para>
+    </sect1>
+
+    <sect1 id="genius-usage-open-program"> 
+      <title>Abrir y ejecutar un programa</title> 
+      <para>Para abrir un archivo, elija 
<menuchoice><guimenu>Archivo</guimenu><guimenuitem>Abrir</guimenuitem></menuchoice>. En el área de trabajo 
aparecerá una pestaña nueva que contiene al archivo. Puede usarla para editarlo.</para>
+      <para>Para ejecutar un programa desde un archivo, elija 
<menuchoice><guimenu>Archivo</guimenu><guimenuitem>Cargar y ejecutar...</guimenuitem></menuchoice>. Esto 
ejecutará el programa sin abrir en una pestaña separada. Es equivalente al comando 
<command>load</command>.</para>
+      <para>Si ha hecho cambios en un archivo y quiere descartarlos y volver a la versión original del 
disco, puede elegir la opción de menú <menuchoice><guimenu>Archivo</guimenu><guimenuitem>Recargar desde el 
disco</guimenuitem></menuchoice>. Esto es útil para experimentar con un programa y hacer cambios temporales, 
ejecutar el programa, pero no hacer que dichos cambios sean permanentes.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Plotting ============================== -->
+  <chapter id="genius-gel-plotting">
+    <title>Dibujar</title>
+
+    <para>El soporte de dibujo solo está disponible para la versión gráfica de GNOME. Todo el dibujo 
disponible desde la interfaz gráfica está disponible en la ventana <guilabel>Crear dibujo</guilabel>. Puede 
acceder a esta ventana pulsando en el botón <guilabel>Dibujo</guilabel> de la barra de herramientas o 
seleccionando <guilabel>Dibujo</guilabel> desde el menú <guilabel>Calculadora</guilabel>. También puede 
acceder a las funcionalidades de dibujo usando las <link 
linkend="genius-gel-function-list-plotting">funciones de trazado</link> del lenguaje GEL. Consulte la <xref 
linkend="genius-gel"/> para aprender a introducir expresiones que entienda Genius.</para>
+
+    <sect1 id="genius-line-plots">
+      <title>Trazado de líneas</title>
+      <para>Para crear gráficas de funciones de valores reales de una variable, abra la ventana 
<guilabel>Crear dibujo</guilabel>. También puede usar la función <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> en la línea de comandos (consulte su 
documentación).</para>
+      <para>Una vez que pulse el botón <guilabel>Dibujo</guilabel>, se abre una ventana con algunas pestañas 
en ella. Se encontrará con la pestaña <guilabel>Dibujo de la línea de función</guilabel> y dentro de ella 
encontrará la pestaña <guilabel>Funciones / Expresiones</guilabel>. Consulte la <xref 
linkend="lineplot-fig"/>.</para>
+
+      <figure id="lineplot-fig"> 
+        <title>Crear una ventana de dibujo</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Muestra la ventana de trazado de líneas</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>En los cuadros de texto escriba sólo las expresiones donde <userinput>x</userinput> es la 
variable independiente. También puede dar simplemente nombres de funciones como <userinput>cos</userinput> en 
lugar de tener que escribir <userinput>cos(x)</userinput>. Puede crear gráficas de hasta 10 funciones. Si 
comete un error y Genius no puede analizar la entrada, se señalará con un icono de advertencia a la derecha 
del cuadro de texto donde ocurrió el error, y se mostrará un diálogo de error. Puede cambiar el rango de las 
variable dependiente <varname>y</varname> activando la casilla <guilabel>Ajustar al eje 
dependiente</guilabel>. Pulsando el botón <guilabel>Dibujar</guilabel> se generará el gráfico mostrado en la 
<xref linkend="lineplot2-fig"/>.</para>
+      <para>Las variables se pueden renombrar al pulsar el botón <guilabel>Cambiar nombres 
variables...</guilabel>, lo que es útil si quiere imprimir o guardar la figura y no quiere utilizar los 
nombres predeterminados. Finalmente, puede evitar imprimir la leyenda y las etiquetas de los ejes 
completamente, lo que también es útil si está imprimiendo o guardando, cuando la leyenda podría ser 
confusa.</para>
+
+      <figure id="lineplot2-fig"> 
+        <title>Ventana de dibujo</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>El gráfico producido.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Desde aquí puede imprimir el dibujo, crear un PostScript encapsulado o un PNG del dibujo, o 
cambiar la escala. Si el eje dependiente no se ha establecido correctamente, puede hacer que Genius lo ajuste 
buscando los extremos de las funciones representadas.</para>
+
+      <para>Para dibujar usando la línea de comandos, consulte la documentación de la función <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+    </sect1>
+
+    <sect1 id="genius-parametric-plots">
+      <title>Gráficos paramétricos</title>
+      <para>En la ventana de crear dibujo, también puede elegir la pestaña <guilabel>Paramétrico</guilabel> 
para crear dibujos paramétricos bidimensionales. De este modo, puede dibujar una única función paramétrica. 
Puede especificar los puntos como <varname>x</varname> e <varname>y</varname>, o dar un número complejo único 
como una función de la variable <varname>t</varname>. El rango de la variable <varname>t</varname> se da 
explícitamente, y la función se simplifica de acuerdo al incremento dado. El rango <varname>x</varname> e 
<varname>y</varname> se puede establecer automáticamente activando la casilla <guilabel>Ajustar al eje 
dependiente</guilabel> o se puede establecer explícitamente. consulte la <xref 
linkend="paramplot-fig"/>.</para>
+
+      <figure id="paramplot-fig"> 
+        <title>Pestaña dibujo paramétrico</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Pestaña dibujo paramétrico en la ventana <guilabel>Crear dibujo</guilabel>.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Puede ver un ejemplo de una gráfica de una función paramétrica en la <xref 
linkend="paramplot-fig"/>. Puede realizar operaciones similares en esta gráfica, así como en la otras 
gráficas de funciones lineales. Para dibujar usando la línea de comandos, consulte la documentación de las 
funciones <link linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> o 
<link linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link>.</para>
+
+      <figure id="paramplot2-fig"> 
+        <title>Gráfico paramétrico</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Gráfico paramétrico producido</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+    </sect1>
+
+    <sect1 id="genius-slopefield-plots">
+      <title>Dibujos de campos de inclinación</title>
+      <para>En la ventana de crear dibujo, también puede elegir la pestaña <guilabel>Campo de 
inclinación</guilabel> para crear dibujos de campos de inclinación bidimensionales. Para dibujar usando la 
línea de comandos, conuslte la documentación de la función <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>.</para>
+
+      <para>Cuando un campo de inclinación está activo, hay un menú adicional disponible 
<guilabel>Solucionador</guilabel>, a través del cual puede abrir el cuadro de diálogo del mismo nombre. Aquí 
puede tener soluciones específicas de dibujo de Genius. Puede especificar condiciones iniciales en el 
diálogo, o puede pulsar directamente en el dibujo para indicar el punto inicial. Mientras el diálogo del 
solucionador esté activo, la ampliación al pulsar y arrastrar no funcionará. Si quiere ampliar usando el 
cursor tendrá que cerrar el diálogo primero.</para>
+
+      <para>El solucionador usa el método Runge-Kutta estándar. Los gráficos se quedarán en la pantalla 
hasta que los borre. El solucionador se detendrá cuando alcance el límite de la ventana de dibujo. La 
ampliación no cambia los límites o los parámetros de la solución, tendrá que borrar y redibujar con los 
parámetros apropiados. También puede usar la función <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link> para dibujar 
soluciones desde la línea de comandos o programas.</para>
+
+    </sect1>
+
+    <sect1 id="genius-vectorfield-plots">
+      <title>Gráficos de campos de vectores</title>
+      <para>En la ventana de crear dibujo, también puede elegir la pestaña <guilabel>Campo 
vectorial</guilabel> para crear un dibujo de campos vectoriales bidimensionales. Con este tipo de gráficos se 
pueden realizar operaciones similares a las que se hacen con otros gráficos de líneas. Para dibujar usando la 
línea de comandos, consulte la documentación de la función <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>.</para>
+
+      <para>De manera predeterminada se muestra la dirección y la magnitud del campo vectorial. Para mostrar 
únicamente la dirección y no la magnitud, normalice la longitud de las flechas habilitando la opción 
pertinente.</para>
+
+      <para>Cuando un campo vectorial está activo, hay un menú <guilabel>Resolutor</guilabel> adicional 
disponible a través del cuál puede abrir el diálogo del Resolutor. Aquí encontrará soluciones gráficas 
específicas de Genius para las condiciones iniciales dadas. Puede especificar condiciones iniciales en el 
diálogo o pulsar en el dibujo directamente para especificar el punto inicial. Mientras el diálogo del 
resolutor esté activa, la opción de aumentar el gráfico pulsando y arrastrando no funcionará. Debe cerrar el 
diálogo primero si quiere aumentar el gráfico con el ratón.</para>
+
+      <para>El resolutor usa el método estándar de Runge-Kutta. Los gráficos resultantes permanecerán en la 
pantalla hasta que se limpie. Aumentar el gráfico no cambia los límites o parámetros de las soluciones, 
tendrá que limpiar y redibujarlos con los parametros adecuados. También puede usar la función <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link> para 
dibujar soluciones desde la línea de comandos o desde programas.</para>
+
+    </sect1>
+
+    <sect1 id="genius-surface-plots">
+      <title>Gráficos de superficie</title>
+      <para>Genius también puede dibujar superficies. Seleccione la pestaña <guilabel>Dibujar 
superficie</guilabel> en el cuaderno de notas principal de la ventana <guilabel>Crear gráfico</guilabel>. 
Aquí puede especificar una expresión que use o bien <varname>x</varname> e <varname>y</varname> como 
variables reales independientes o bien <varname>z</varname> como variable compleja (donde 
<varname>x</varname> sea la parte real de <varname>z</varname> e <varname>y</varname> la parte imaginaria). 
Por ejemplo, para dibujar los módulos de la función coseno de variable compleja puede escribir 
<userinput>|cos(z)|</userinput>. Esto sería equivalente a <userinput>|cos(x+1i*y)|</userinput>. Consulte la 
<xref linkend="surfaceplot-fig"/>. Para dibujar desde la línea de comandos véase la documentación de la 
función <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
+      <para>El rango <varname>z</varname> puede establecerse automáticamente al activar el cuadro de 
selección <guilabel>Ajustar eje dependiente</guilabel>. Las variables se pueden renombrar al pulsar el botón 
<guilabel>Cambiar nombres variable...</guilabel>, lo que es útil si quiere imprimir o guardar la figura y no 
quiere utilizar los nombres predeterminados. Finalmente, puede evitar imprimir la leyenda y las etiquetas de 
los ejes completamente, lo que también es útil si está imprimiendo o guardando, cuando la leyenda podría ser 
confusa.</para>
+
+      <figure id="surfaceplot-fig"> 
+        <title>Gráfico de superficie</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Valor absoluto de la función coseno complejo.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>En el modo de superficie, las teclas izquierda y derecha de su teclado, rotarán la vista a lo 
largo del eje z. Alternativamente puede rotar en cualquier eje seleccionando <guilabel>Rotar 
eje...</guilabel> en el menú <guilabel>Ver</guilabel>. El menú <guilabel>Ver</guilabel> también tiene un modo 
de vista superior que permite rotar el gráfico de modo que el eje z se enfrenta directamente, es decir, vemos 
el gráfico desde la parte superior y obtenemos los colores que definen los valores de la función obteniendo 
así un gráfico de temperatura de la función. Finalmente pruebe <guilabel>Iniciar animación de 
rotación</guilabel>, para iniciar una lenta rotación continua. Esto es especialmente bueno si se utiliza 
<application>Herramienta matemática Genius</application> para presentar a un público.</para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL ====================================== -->
+  <chapter id="genius-gel"> 
+    <title>Conceptos de GEL</title> 
+
+       <para>GEL significa Lenguaje de Extensión de Genius. Éste es el lenguaje que se utiliza para escribir 
programas para Genius. Un programa en GEL es simplemente una expresión que se evalúa como un número, una 
matriz, o cualquier objeto en GEL. Por lo tanto, la <application>Herramienta matemática Genius</application> 
se puede utilizar como una simple calculadora o como una herramienta de investigación teórica muy potente. La 
sintaxis está pensada para suavizar lo más posible la curva de aprendizaje, especialmente para usarlo como 
calculadora.</para>
+
+    <sect1 id="genius-gel-values">
+      <title>Valores</title>
+
+      <para>Los valores en GEL pueden ser <link linkend="genius-gel-values-numbers">números</link>, <link 
linkend="genius-gel-values-booleans">booleanos</link> o <link 
linkend="genius-gel-values-strings">cadenas</link>. GEL también trata las <link 
linkend="genius-gel-matrices">matrices</link> como valores. Los valores se pueden usar en cálculos, asignarse 
a variables y devolverse desde funciones, entre otros usos.</para>
+
+      <sect2 id="genius-gel-values-numbers">
+        <title>Números</title>
+        <para>Los enteros son el primer tipo numérico en GEL. Los enteros se escriben de forma estándar. 
<programlisting>1234
+</programlisting> Las formas hexadecimales y octales se pueden indicar mediante la notación de C. Por 
ejemplo: <programlisting>0x123ABC
+01234
+</programlisting> O bien puede indicar los enteros en una base arbitraria usando 
<literal>&lt;base&gt;\&lt;número&gt;</literal>. Los dígitos mayores que 9 usan letras de manera similar a la 
forma hexadecimal. Por ejemplo, un número en base 23 podría escribirse: <programlisting>23\1234ABCD
+</programlisting></para>
+
+        <para>El segundo tipo numérico de GEL son los racionales. Los números racionales se obtienen 
dividiendo dos enteros. De modo que se puede escribir: <programlisting>3/4
+</programlisting> para obtener tres cuartos. Los racionales aceptan notación fraccionaria mixta. De modo que 
para obtener uno y tres décimos se podría indicar: <programlisting>1 3/10
+</programlisting></para>
+
+        <para>El siguiente tipo numérico es el de coma flotante. Estos se especifican de un modo muy similar 
a la notación en C. Puedes usar <literal>E</literal>, <literal>e</literal> o <literal>@</literal> como el 
delimitador de exponente. Tenga en cuenta que usando el delimitador de exponente da un coma flotante incluso 
si no está la coma decimal en el número. Ejemplos: <programlisting>1.315
+7.887e77
+7.887e-77
+.3
+0.3
+77e5
+</programlisting> Cuando Genius imprime un número en coma flotante siempre añade un 
<computeroutput>,0</computeroutput> incluso si el número está completo. Esto indica que los números en coma 
flotante se toman como cantidades imprecisas. Cuando un numero se escribe en notación científica, siempre 
será en coma flotante y, por tanto, Genius no imprime <computeroutput>,0</computeroutput>.</para>
+
+        <para>El último tipo de números en GEL son los números complejos. Puede escribir un número complejo 
como la suma de su parte real y su parte imaginaria. Para agregar la parte imaginaria, escriba una 
<literal>i</literal>. Aquí hay algunos ejemplo de cómo escribir números complejos: <programlisting>1+2i
+8.01i
+77*e^(1.3i)
+</programlisting></para>
+
+        <important>
+          <para>Al introducir números imaginarios, deba haber un número delante de la <literal>i</literal>. 
Si usa <literal>i</literal> por sí sola, Genius lo interpretará como una referencia a la variable 
<varname>i</varname>. Si necesita referirse a <literal>i</literal> por sí sola, use <literal>1i</literal> en 
su lugar.</para>
+
+          <para>Para usar notación de fracciones mixtas con números imaginarios debe colocar las fracciones 
mixtas entre paréntesis (ej. <userinput>(1 2/5)i</userinput>).</para>
+        </important>
+
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-booleans">
+        <title>Booleanos</title>
+        <para>Genius también soporta valores booleanos nativos. Las dos constantes booleanas están definidas 
como <constant>true</constant> y <constant>false</constant>; estos identificadores se pueden utilizar como 
cualquier otra variable. Así mismo, puede utilizar los identificadores <constant>True</constant>, 
<constant>TRUE</constant>, <constant>False</constant> y <constant>FALSE</constant> como alias de las 
anteriores.</para>
+        <para>Puede usar un valor booleano o cualquier expresión que produzca un número o valor booleano en 
cualquier lugar donde se espera una expresión Booleana. Si Genius necesita evaluar un valor numérico como un 
valor booleano interpretará «0» como <constant>false</constant> y cualquier otro valor como 
<constant>true</constant>.</para>
+        <para>Además, puede efectuar operaciones con valores booleanos. Por ejemplo: <programlisting>( (1 + 
true) - false ) * true
+</programlisting> equivale a: <programlisting>( (true or true) or not false ) and true
+</programlisting> Solamente están soportadas la adición, la sustracción y la multiplicación. Si mezcla 
valores numéricos con booleanos en una expresión, los valores numéricos se convertirán a booleanos como se 
describió anteriormente. Esto significa que, por ejemplo: <programlisting>1 == true
+</programlisting> siempre se evaluará como <constant>true</constant> dado que «1» siempre se convertirá a 
<constant>true</constant> antes de compararlo con <constant>true</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-strings">
+        <title>Cadenas</title>
+        <para>Al igual que los números y los booleanos, las cadenas en GEL se pueden almacenar como valores 
dentro de variables y pasárselas a funciones. Puede concatenar una cadena con otra cadena mediante el 
operador «+». Por ejemplo: <programlisting>a=2+3;«El resultado es: »+a
+</programlisting> creará la cadena: <programlisting>El resultado es: 5
+</programlisting> Puede usar secuencias de escape como en C tales como <literal>\n</literal>, 
<literal>\t</literal>, <literal>\b</literal>, <literal>\a</literal> y <literal>\r</literal>. Para insertar 
los caracteres <literal>\</literal> o <literal>"</literal> en una cadena puede escaparlo precediéndolo de 
<literal>\</literal>. Por ejemplo: <programlisting>"Barra: \\ Comillas: \" Tabulaciones: \t1\t2\t3"
+</programlisting> dará lugar a la cadena: <programlisting>Barra: \ Comillas: " Tabulaciones:   1       2     
  3
+</programlisting>. Tenga en cuenta, sin embargo, que cuando una función devuelve una cadena, los caracteres 
escapados se entrecomillan, por lo que la salida se puede usar como entrada de otra función. Si quiere 
imprimir la cadena como es (sin caracteres escapados), use las funciones <link 
linkend="gel-function-print"><function>print</function></link> o <link 
linkend="gel-function-printn"><function>printn</function></link>.</para>
+        <para>Además, puede usar la función <link 
linkend="gel-function-string"><function>string</function></link> de la biblioteca para convertir cualquier 
cosa en una cadena. Por ejemplo: <programlisting>string(22)
+</programlisting> devolverá <programlisting>"22"
+</programlisting>. Las cadenas pueden compararse mediante los operadores <literal>==</literal> (igual), 
<literal>!=</literal> (distinto) y <literal>&lt;=&gt;</literal> (comparación).</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-null">
+        <title>Nulo</title>
+        <para>Existe un valor especial llamado <constant>null</constant>. No se permite efectuar operaciones 
sobre él y no se muestra nada cuando se devuelve este valor. Por lo tanto, <constant>null</constant> es útil 
cuando no quiera ninguna salida de una expresión. El valor <constant>null</constant> puede obtenerse como una 
expresión al escribir <literal>.</literal>, la constante <constant>null</constant> o nada. Nada referido a 
que si termina una expresión con un separador <literal>;</literal>, equivale a terminar la expresión con un 
separador seguido de <constant>null</constant>.</para>
+        <para>Ejemplo: <programlisting>x=5;.
+x=5;
+</programlisting></para>
+<para>Algunas funciones devuelven <constant>null</constant> cuando no pueden devolver un valor o producen 
algún error. También se usa <constant>null</constant> como un vector o matriz vacía o una referencia 
vacía.</para>
+      </sect2>
+
+    </sect1>
+
+    <sect1 id="genius-gel-variables">
+      <title>Usar variables</title>
+
+      <para>Sintaxis: <programlisting>NombreVariable
+</programlisting> Ejemplo: <screen><prompt>genius&gt; </prompt><userinput>e</userinput>
+= 2.71828182846
+</screen></para>
+
+      <para>Para evaluar una variable por sí misma, simplemente introduzca el nombre de la variable. Esto 
devolverá el valor de la variable. Puede usar una variable en cualquier lugar donde pueda utilizar un número 
o cadena. Además, las variables son necesarias al definir funciones que toman argumentos (consulte la <xref 
linkend="genius-gel-functions-defining"/>).</para>
+
+      <tip>
+        <title>Usar completado con el tabulador</title>
+        <para>Puede usar el completado con el tabulador para que Genius complete nombres de las variables. 
Intente escribir las primeras letras del nombre de la variable y pulse <userinput>Tab</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Los nombres de variables son sensibles a la capitalización</title>
+        <para>Los nombres de variables son sensibles a la capitalización. Esto significa que las variables 
<varname>hello</varname>, <varname>HELLO</varname> y <varname>Hello</varname> son todas diferentes.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-variables-setting">
+        <title>Configurar variables</title>
+        <para>Sintaxis: <programlisting><![CDATA[<identifier> = <value>
+<identifier> := <value>]]>
+</programlisting> Ejemplo: <programlisting>x = 3
+x := 3
+</programlisting></para>
+
+        <para>Para asignar un valor a una variable, use los operadores <literal>=</literal> o 
<literal>:=</literal>. Estos operadores establecen el valor de la variable y devuelven el número asignado, 
así puede hacer cosas como <programlisting>a = b = 5
+</programlisting>. Esto establecerá <varname>b</varname> a 5 y también <varname>a</varname> será 5.</para>
+
+        <para>Los operadores <literal>=</literal> y <literal>:=</literal> se pueden usar para asignar 
variables. La diferencia entre ellos es que <literal>:=</literal> siempre actuará como operador de asignación 
mientras que <literal>=</literal> se puede interpretar como prueba de igualdad usado en un contexto donde se 
espera una variable booleana.</para>
+
+       <para>Para temas relacionados con el ámbito de las variables, consulte la <xref 
linkend="genius-gel-variables-global"/>.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-variables-built-in">
+        <title>Variables integradas</title>
+        <para>GEL tiene un número de «variables» predeterminadas, tales como <varname>e</varname>, 
<varname>pi</varname> o <varname>GoldenRatio</varname>. Éstas se usan ampliamente con su valor predeterminado 
y no se pueden modificar. Existen más variables predeterminadas. Consulte la <xref 
linkend="genius-gel-function-list-constants"/> para obtener la lista completa. Observe que 
<varname>i</varname> no es el valor predeterminado de la raíz cuadrada de un número negativo (el número 
imaginario), y es indefinido que permite usarlo como un contador. Si quiere escribir un número imaginario, 
necesita utilizar <userinput>1i</userinput>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-previous-result">
+        <title>Resultado de la variable anterior</title>
+        <para>Las variables <varname>Ans</varname> y <varname>ans</varname> se pueden usar para obtener el 
resultado de la última expresión utilizada. Por ejemplo, si acaba de realizar un cálculo y quiere añadirle 
389 al resultado, podría hacer lo siguiente: <programlisting>Ans+389
+</programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-functions">
+      <title>Usar funciones</title>
+
+      <para>Sintaxis: <programlisting>NombreFuncion(argumento1, argumento2, ...)
+</programlisting> Ejemplo: <programlisting>Factorial(5)
+cos(2*pi)
+gcd(921,317)
+</programlisting> Para evaluar una funcion introduzca el nombre de ésta seguido de los argumentos (si si los 
hay) entre paréntesis. Esto devolverá el resultado de aplicar la función a sus argumentos. El número de 
argumentos es, por supuesto, diferente para cada función.</para>
+
+      <para>Hay muchas funciones integradas, como <link 
linkend="gel-function-sin"><function>sin</function></link>, <link 
linkend="gel-function-cos"><function>cos</function></link> y <link 
linkend="gel-function-tan"><function>tan</function></link>. Puede usar la función integrada <link 
linkend="gel-command-help"><function>help</function></link> para obtener una lista de todas las funciones 
integradas, o consultar la <xref linkend="genius-gel-function-list"/> para obtener una lista completa..</para>
+
+      <tip>
+        <title>Usar completado con el tabulador</title>
+        <para>Puede usar completado con el tabulador para que Genius complete nombres de funciones. Pruebe a 
escribir las primeras letras del nombre y pulse <userinput>Tab</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Los nombres de las funciones son sensibles a mayúsculas.</title>
+        <para>Los nombres de las funciones son sensibles a la capitalización. Esto significa que las 
funciones <function>haceralgo</function>, <function>HACERALGO</function> y <function>HacerAlgo</function> son 
todas diferentes entre sí.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-functions-defining">
+        <title>Definir funciones</title>
+        <para>Sintaxis: <programlisting><![CDATA[function <identifier>(<comma separated arguments>) = 
<function body>
+<identifier> = (`() = <function body>)
+]]></programlisting> El caracter <literal>`</literal> es el acento invertido y significa función anónima. 
Estableciéndoselo a una variable se define una función.</para>
+
+        <para>Una función toma cero o más argumentos separados por comas y devuelve el resultado del cuerpo 
de dicha función. Definir funciones propias es primordialmente una cuestión de conveniencia; un posible uso 
es tener un conjunto de funciones definidas en archivos GEL que Genius pueda cargar para tenerlas 
disponibles. Ejemplo: <programlisting>function addup(a,b,c) = a+b+c
+</programlisting> por lo que <userinput>addup(1,4,9)</userinput> devuelve 14.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-functions-variable-argument-lists">
+        <title>Listas de argumentos de variables</title>
+        <para>Si se incluye <literal>...</literal> después del último argumento en la declaración de una 
función Genius permitirá pasar a dicha función un número de argumentos arbitrario. Si no se pasa ningún 
argumento el último tendrá el valor <constant>null</constant>. De lo contrario, será un vector que contiene 
todos los argumentos. Por ejemplo: <programlisting>function f(a,b...) = b
+</programlisting> Por tanto <userinput>f(1,2,3)</userinput> devuelve <computeroutput>[2,3]</computeroutput>, 
mientras que <userinput>f(1)</userinput> devuelve <constant>null</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-functions-passing-functions">
+        <title>Pasar funciones a funciones</title>
+
+        <para>En Genius es posible pasar una función como argumento de otra función. Esto se puede hacer 
usando «nodos de funciones» o funciones anónimas.</para>
+
+        <para>Si no se escriben los paréntesis después del nombre de la función, en lugar de evaluarse, la 
función se devolverá como un «nodo función». El nodo función se puede pasar a como argumento a otra función. 
Ejemplo: <programlisting>function f(a,b) = a(b)+1;
+function b(x) = x*x;
+f(b,2)
+</programlisting></para>
+        <para>Para pasar funciones que no están definidas se puede hacer uso de la función anónima (consulte 
la <xref linkend="genius-gel-functions-defining"/>). Es decir, cuando se quiere pasar una función sin dar un 
nombre. Sintaxis: <programlisting><![CDATA[function(<comma separated arguments>) = <function body>
+`(<comma separated arguments>) = <function body>
+]]></programlisting> Ejemplo: <programlisting>function f(a,b) = a(b)+1;
+f(`(x) = x*x,2)
+</programlisting> Devuelve 5.</para>
+      </sect2>
+
+
+    <sect2 id="genius-gel-functions-operations">
+      <title>Operaciones con funciones</title>
+      <para>Algunas funciones permiten operaciones aritméticas y algunos argumentos de función tales como 
<link linkend="gel-function-exp"><function>exp</function></link> o <link 
linkend="gel-function-ln"><function>ln</function></link>, para operar en la función. Por ejemplo, 
<programlisting>exp(sin*cos+4)
+</programlisting> devolverá una función que toma <varname>x</varname> y devuelve 
<userinput>exp(sin(x)*cos(x)+4)</userinput>. Esta funcionalidad es equivalente a escribir 
<programlisting>`(x) = exp(sin(x)*cos(x)+4)
+</programlisting> Esta operación puede ser útil cuando se definen funciones rápidamente. Por ejemplo, para 
crear una función llamada <varname>f</varname> que realice la operación arriba descrita, simplemente puede 
escribir: <programlisting>f = exp(sin*cos+4)
+</programlisting> También se puede usar al dibujar. Por ejemplo, para dibujar el cuadrado de un seno puede 
utilizar: <programlisting>LinePlot(sin^2)
+</programlisting></para>
+
+      <warning>
+        <para>No todas las funciones se pueden usar de este modo. Por ejemplo, cuando usa una función 
binaria las funciones deben aceptar el mismo número de argumentos.</para>
+      </warning>
+    </sect2>
+
+
+    </sect1>
+
+    <sect1 id="genius-gel-separator">
+      <title>Separador</title>
+      <para>GEL es más diferente que otros lenguajes a la hora de tratar con varios comandos y funciones. En 
GEL puede encadenar comandos junto con un operador de separación. Esto es, si quiere escribir más de una 
expresión utilice el operador <literal>;</literal> después de cada expresión. Esta es una forma en la que 
ambas expresiones se evaluan y se devuelve el resultado de la segunda expresión (o de la última, si hay más 
de dos expresiones). Suponga que escribe la siguiente expresión: <programlisting>3 ; 5
+</programlisting> Esta expresión dará como resultado 5.</para>
+      <para>Esto requiere poner algunos paréntesis para evitar ambigüedades, especialmente si el carácter 
<literal>;</literal> no es la primitiva más prioritaria. Esto difiere ligeramente de otros lenguajes de 
programación donde el carácter <literal>;</literal> es un finalizador de sentencias. En GEL es un operador 
binario. Si está familiarizado con Pascal esto debería ser natural para usted. Sin embargo, Genius le permite 
simular que es un terminador si el carácter <literal>;</literal> se encuentra detrás de un paréntesis o un 
bloque, Genius añadirá automáticamente un nodo nulo como si hubiese escrito <userinput>;null</userinput>. 
Esto es útil en caso de que no quiera devolver ningún valor o si gestiona el retorno de un modo diferente. 
Tenga en cuenta que es ralentiza ligeramente el código si se ejecuta demasiado frecuentemente ya que se toma 
como un operador más.</para>
+      <para>Si escribe expresiones en un programa no tiene que añadir un punto y coma. En este caso Genius 
muestra el resultado de la expresión cuando se ejecuta. Sin embargo, si define una función, el cuerpo de la 
función es una sola expresión.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-comments">
+      <title>Comentarios</title>
+      <para>GEL es similar a otros lenguajes de scripts en el sentido de que <literal>#</literal> indica un 
comentario, que es texto que no se evaluará. Todo lo que vaya después de la almohadilla hasta el final de la 
línea se ignorará. Por ejemplo, <programlisting># Esto es un comentario
+# cada línea debe empezar por una almohadilla
+# en la siguiente línea se establece el valor de x a 123
+x=123;
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-modular-evaluation">
+      <title>Evaluación modular</title>
+      <para>Genius implementa aritmética modular. Para usarla, simplemente añada «mod &lt;entero&gt;» 
después de la expresión. Ejemplo: <userinput>2^(5!) * 3^(6!) mod 5</userinput> Podría ser posible realizar 
aritmética modular trabajando con enteros y aplicando el módulo al final con el operador 
<literal>%</literal>, que simplemente devuelve el resto, pero puede requerir más tiempo o ser imposible 
cuando se trabaja con valores muy elevados. Por ejemplo <userinput>10^(10^10) % 6</userinput> puede que no 
funcione (el exponente es demasiado grande), sin embargo <userinput>10^(10^10) mod 6</userinput> es 
instantáneo. La primera expresión primero intenta calcular el entero <userinput>10^(10^10)</userinput> y 
luego el resto de la división por 6, mientras que la segunda expresión calcula el módulo 6 de todo primero 
que nada.</para>
+      <para>Dados dos números enteros a y b, puede calcular el inverso multiplicativo de a módulo b usando 
números racionales (desde luego, el inverso debe existir). Ejemplos: <programlisting>10^-1 mod 101
+1/10 mod 101</programlisting> Puede obtener la evaluación modular de una matriz, calcular potencias, la 
matriz inversa y dividir. Ejemplo: <programlisting>A = [1,2;3,4]
+B = A^-1 mod 5
+A*B mod 5</programlisting> Es la matriz identidad, pues B es la matriz inversa de A módulo 5.</para>
+      <para>Algunas funciones como <link linkend="gel-function-sqrt"><function>sqrt</function></link> o 
<link linkend="gel-function-log"><function>log</function></link> trabajan de una manera diferente en modo 
módulo. Éstas utilizarán sus versiones discretas trabajando en el entorno de enteros que el usuario ha 
seleccionado. Por ejemplo: <programlisting>genius&gt; sqrt(4) mod 7
+=
+[2, 5]
+genius&gt; 2*2 mod 7
+= 4</programlisting><function>sqrt</function> devolverá todas las raíces cuadradas posibles.</para>
+      <para>No concatene operadores mod, solo colóquelos al final del cálculo, todos los cálculos en la 
expresión que está a la izquierda se llevarán a cabo bajo aritmética mod. Si coloca un operador mod dentro de 
un mod seguramente obtendrá resultados inesperados. Si solo quiere aplicar mod a un único número y controlar 
cuándo se toma el resto, es mejor utilizar el operador <literal>%</literal>. Cuando necesita concatenar 
varias expresiones en una aritmética modular con diferentes divisores, lo mejor es simplemente dividir la 
expresión en varias y usar variables temporales para evitar un mod dentro de un mod.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-operator-list">
+      <title>Lista de operadores GEL</title>
+
+      <para>Todo en GEL es en realidad una expresión. Las expresiones se encadenan unas tras otras mediante 
diferentes operadores. Como hemos visto, incluso el separador es un operador binario en GEL. A continuación 
se muestra una lista de los operadores en GEL.</para>
+
+      <variablelist>
+        <varlistentry>
+         <term><userinput>a;b</userinput></term>
+         <listitem>
+           <para>El separador evalúa <varname>a</varname> y <varname>b</varname>, pero sólo devuelve el 
valor de <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a=b</userinput></term>
+         <listitem>
+           <para>El operador asignación. Asigna <varname>b</varname> a <varname>a</varname> 
(<varname>a</varname> debe ser un <link linkend="genius-gel-lvalues">lvalue</link> válido) (tenga en cuenta 
que este operador puede equivaler a <literal>==</literal> si se usa cuando se espera una expresión 
booleana)</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:=b</userinput></term>
+         <listitem>
+           <para>El operador asignación. Asigna <varname>b</varname> a <varname>a</varname> 
(<varname>a</varname> debe ser un <link linkend="genius-gel-lvalues">lvalue</link> válido). Se diferencia de 
<literal>=</literal> en que nunca equivale a <literal>==</literal>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>|a|</userinput></term>
+         <listitem>
+           <para>Valor absoluto. En el caso de que la expresión sea un número complejo el resultado será su 
módulo (distancia desde el origen). Por ejemplo: <userinput>|3 * e^(1i*pi)|</userinput> devuelve 3.</para>
+          <para>Consulte <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a^b</userinput></term>
+         <listitem>
+           <para>Exponenciación, eleva <varname>a</varname> a la <varname>b</varname>-ésima potencia.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.^b</userinput></term>
+         <listitem>
+           <para>Potencia elemento a elemento. Eleva cada elemento de una matriz <varname>a</varname> a la 
<varname>b</varname>-ésima potencia. O si <varname>b</varname> es una matriz del mismo tamaño que 
<varname>a</varname>, entonces realiza la operación elemento a elemento. Si <varname>a</varname> es un número 
y <varname>b</varname> es una matriz entonces crea una matriz del mismo tamaño que <varname>b</varname> 
formada por <varname>a</varname> elevado a todas las diferentes potencias de <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a+b</userinput></term>
+         <listitem>
+           <para>Adición. Suma dos números, matrices, funciones o cadenas. Si suma una cadena a cualquier 
valor el resultado es una cadena. Si uno de ellos es una matriz cuadrada y el otro un número, el número se 
multiplica por la identidad de la matriz.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a-b</userinput></term>
+         <listitem>
+           <para>Sustracción. Resta dos números, matrices o funciones.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a*b</userinput></term>
+         <listitem>
+           <para>Multiplicación. Es la multiplicación normal de matrices.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.*b</userinput></term>
+         <listitem>
+           <para>Multiplicación elemento a elemento si <varname>a</varname> y <varname>b</varname> son 
matrices.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a/b</userinput></term>
+         <listitem>
+           <para>División. Cuando <varname>a</varname> y <varname>b</varname> son sólo números es la 
división normal. Cuando son matrices, esto es el equivalente a <userinput>a*b^-1</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a./b</userinput></term>
+         <listitem>
+           <para>División elemento por elemento. Igual que <userinput>a/b</userinput> para números, pero 
opera elemento por elemento en matrices.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a\b</userinput></term>
+         <listitem>
+           <para>División hacia atrás. Es lo mismo que <userinput>b/a</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.\b</userinput></term>
+         <listitem>
+           <para>División hacia atrás elemento por elemento.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a%b</userinput></term>
+         <listitem>
+           <para>
+            The mod operator.  This does not turn on the <link 
linkend="genius-gel-modular-evaluation">modular mode</link>, but
+             just returns the remainder of integer division
+             <userinput>a/b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.%b</userinput></term>
+         <listitem>
+           <para>
+             Element by element mod operator.  Returns the remainder
+            after element by element integer division
+            <userinput>a./b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a mod b</userinput></term>
+         <listitem>
+           <para>Operación de evaluación modular. La expresión <varname>a</varname> se evalúa módulo 
<varname>b</varname>. Consulte la <xref linkend="genius-gel-modular-evaluation"/>. Algunas de las funciones y 
operadores se comportan de un modo distinto cuando trabajan en módulo entero.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!</userinput></term>
+         <listitem>
+           <para>Operador factorial. Esto es <userinput>1*...*(n-2)*(n-1)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!!</userinput></term>
+         <listitem>
+           <para>Operador doble factorial. Esto es <userinput>1*...*(n-4)*(n-2)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a==b</userinput></term>
+         <listitem>
+           <para>Operador de igualdad, devuelve <constant>true</constant> o <constant>false</constant> 
dependiendo de si <varname>a</varname> y <varname>b</varname> son iguales o no.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!=b</userinput></term>
+         <listitem>
+           <para>Operador de desigualdad, devuelve <constant>true</constant> si <varname>a</varname> no es 
igual a <varname>b</varname>; si lo es, devuelve <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;&gt;b</userinput></term>
+         <listitem>
+           <para>Operador distinto alternativo devuelve <constant>true</constant> si <varname>a</varname> no 
es igual a <varname>b</varname> en caso contrario devuelve <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>Operador menor o igual, devuelve <constant>true</constant> si <varname>a</varname> es menor 
o igual que <varname>b</varname>, si no, devuelve <constant>false</constant>. Esto se puede concatenar como 
<userinput>a &lt;= b &lt;= c</userinput> (también se puede combinar con el operador menor que).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>
+             Greater than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt;= b &gt;= c</userinput>
+            (and they can also be combined with the greater than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a&lt;b</userinput></term>
+         <listitem>
+           <para>
+             Less than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt; b &lt; c</userinput>
+            (they can also be combined with the less than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;b</userinput></term>
+         <listitem>
+           <para>
+             Greater than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt; b &gt; c</userinput>
+            (they can also be combined with the greater than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=&gt;b</userinput></term>
+         <listitem>
+           <para>Operador de comparación. Si <varname>a</varname> es igual a <varname>b</varname> devuelve 
0, si <varname>a</varname> es menor que <varname>b</varname> devuelve -1 y si <varname>a</varname> es mayor 
que <varname>b</varname> devuelve 1.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a and b</userinput></term>
+         <listitem>
+           <para>AND lógico. Devuelve cierto si <varname>a</varname> y <varname>b</varname> son ciertos; si 
no, devuelve falso. Si se dan números, los números distintos de cero se consideran como «verdadero».</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a or b</userinput></term>
+         <listitem>
+           <para>OR lógico. Devuelve verdadero si <varname>a</varname> o <varname>b</varname> son 
verdaderos; si no, devuelve falso. Si se dan números, los números distintos de cero se consideran como 
verdadero.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a xor b</userinput></term>
+         <listitem>
+           <para>
+             Logical xor.
+            Returns true if exactly one of
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>not a</userinput></term>
+         <listitem>
+           <para>
+                  Logical not.  Returns the logical negation of <varname>a</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>-a</userinput></term>
+         <listitem>
+           <para>Operador de negación. Devuelve el negativo de un número o una matriz (en una matriz, 
funciona de acuerdo al elemento).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>&amp;a</userinput></term>
+         <listitem>
+           <para>Referencia de variables (pasar una referencia a una variable). Consulte <xref 
linkend="genius-gel-references"/>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>*a</userinput></term>
+         <listitem>
+           <para>Desreferenciar una variable (para acceder a una variable referenciada). Consulte la <xref 
linkend="genius-gel-references"/>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a'</userinput></term>
+         <listitem>
+           <para>Transpuesta conjugada de una matriz. Significa que las filas y columnas se intercambian y 
se toman la conjugada compleja de todas las entradas. Esto es, si el elemento i,j de <varname>a</varname> es 
x+iy, entonces el elemento j,i de <userinput>a'</userinput> es x-iy.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.'</userinput></term>
+         <listitem>
+           <para>Transpuesta de matriz, no conjuga las entradas. Esto significa, el elemento i,j de 
<varname>a</varname> se convierte en el elemento j,i de <userinput>a.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,c)</userinput></term>
+         <listitem>
+           <para>
+            Get element of a matrix in row <varname>b</varname> and column
+            <varname>c</varname>.   If <varname>b</varname>,
+            <varname>c</varname> are vectors, then this gets the corresponding
+            rows, columns or submatrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,)</userinput></term>
+         <listitem>
+           <para>Devuelve la fila de la matriz (o múltiples filas si <varname>b</varname> es un 
vector).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,:)</userinput></term>
+         <listitem>
+           <para>Igual que el anterior</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(,c)</userinput></term>
+         <listitem>
+           <para>Devuelve la columna de la matriz (o columnas si <varname>c</varname> es un vector).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(:,c)</userinput></term>
+         <listitem>
+           <para>Igual que el anterior</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b)</userinput></term>
+         <listitem>
+           <para>Obtiene un elemento de una matriz tratándola como vector. Recorre la matriz por 
filas.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b</userinput></term>
+         <listitem>
+           <para>Crea un vector con valores de <varname>a</varname> a <varname>b</varname> (o específica una 
región de filas o columnas para el operador <literal>@</literal>). Por ejemplo para obtener las filas 2 a 4 
de la matriz <varname>A</varname> se podría hacer <programlisting>A@(2:4,)
+            </programlisting> ya que <userinput>2:4</userinput> devolverá el vector 
<userinput>[2,3,4]</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b:c</userinput></term>
+         <listitem>
+           <para>Crea un vector con valores desde <varname>a</varname> a <varname>c</varname> usando 
<varname>b</varname> como paso. Por ejemplo: <programlisting>genius&gt; 1:2:9
+=
+`[1, 3, 5, 7, 9]
+</programlisting></para>
+          <para>Cuando los números implicados son números en coma flotante, por ejemplo 
<userinput>1.0:0.4:3.0</userinput>, la salida es lo que se espera a pesar de la adición de 0,4 a 1,0 cinco 
veces es en realidad sólo un poco más de 3,0 debido a la forma en que los números de coma flotante se 
almacenan en la base 2 (no hay 0.4, el número real almacenado es sólo ligeramente más grande). La forma en 
que se maneja es el mismo que en los bucles «for», «sum», y «prod». Si el final está dentro de 
<userinput>2^-20</userinput> veces el tamaño de paso del punto final, se utiliza el punto final y suponemos 
que no eran errores de redondeo. Esto no es perfecto, pero maneja la mayoría de los casos. Esta comprobación 
se realiza sólo desde la versión 1.0.18 en adelante, así que la ejecución de su código puede ser diferente en 
las versiones anteriores. Si quiere evitar este problema, utilice los números racionales reales, posiblemente 
usando el <function>float</functio
 n> si quiere obtener los números de punto flotante en el final. Por ejemplo <userinput>1:2/5:3</userinput> 
hace lo correcto y <userinput>float(1:2/5:3)</userinput> incluso le da los números de punto flotante y es 
ligeramente más precisa que <userinput>1,0:0,4:3,0</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>(a)i</userinput></term>
+         <listitem>
+           <para>
+            Make <varname>a</varname> into an imaginary number (multiply <varname>a</varname> by the
+            imaginary).  Normally the imaginary number <varname>i</varname> is
+            written as <userinput>1i</userinput>.  So the above is equal to
+            <programlisting>(a)*1i
+            </programlisting>
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>`a</userinput></term>
+         <listitem>
+           <para>Escapa un identificador de modo que no sea evaluado. O escapa una matriz de modo que no sea 
expandida.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a swapwith b</userinput></term>
+         <listitem>
+           <para>Intercambia el valor de <varname>a</varname> con el valor de <varname>b</varname>. 
Actualmente no funciona con rangos de elementos matriciales. Devuelve <constant>null</constant>. Está 
disponible desde la versión 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a</userinput></term>
+         <listitem>
+           <para>Incrementa la variable <varname>a</varname> en 1. Si <varname>a</varname> es una matriz 
entonces incrementará cada uno de los elementos. Es equivalente a <userinput>a=a+1</userinput> pero más 
rápido. Devuelve <constant>null</constant>. Está disponible desde la versión 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a by b</userinput></term>
+         <listitem>
+           <para>Incrementa la variable <varname>a</varname> en <varname>b</varname>. Si 
<varname>a</varname> es una matriz, entonces incrementa cada elemento. Es equivalente a 
<userinput>a=a+b</userinput>, pero más rápido. Devuelve null <constant>null</constant>. Está disponible desde 
la versión 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+
+<note>
+<para>El operador @() hace el operador «:» más útil. Con éste puede especificar regiones dentro de una 
matriz. De modo que a@(2:4,6) representa las filas 2, 3 y 4 de la columna 6. O @(,1:2) devuelve las dos 
primeras columnas de una matriz. Puede asignar al operador @() siempre que el valor sea una matriz cuyo 
tamaño coincida con el tamaño de la región asignada o cualquier otro tipo de valor.</para>
+</note>
+
+<note>
+<para>Los operadores de comparación (excepto el operador &lt;=&gt; que se comporta de un modo normal), no 
son estrictamente operadores binarios, de hecho pueden agruparse de una forma matemática estándar, por 
ejemplo: (1&lt;x&lt;=y&lt;5) es una expresión booleana válida y significa lo que debería, es decir, (1&lt;x 
and x≤y and y&lt;5)</para>
+</note>
+
+<note>
+<para>El operador unario «menos» opera de un modo distinto dependiendo del lugar donde aparece. Si lo hace 
antes de un número su prioridad es muy alta. Si aparece delante de una expresión tendrá menos prioridad que 
los operadores potencia y factorial. De este modo, por ejemplo, <userinput>-1^k</userinput> es en realidad 
<userinput>(-1)^k</userinput>, sin embargo <userinput>-foo(1)^k</userinput> es realmente 
<userinput>-(foo(1)^k)</userinput>. Por lo tanto, tenga cuidado con el uso de este operador y si tiene alguna 
duda, use paréntesis.</para>
+</note>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL Programming ========================== -->
+  <chapter id="genius-gel-programming">
+    <title>Programar con GEL</title>
+
+    <sect1 id="genius-gel-conditionals">
+      <title>Condicionales</title>
+      <para>Sintaxis: <programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
+]]></programlisting> si se omite <literal>else</literal>, si la expresión <literal>expression1</literal> 
devuelve <constant>false</constant> o <literal>0</literal>, devolverá <literal>NULL</literal>.</para>
+      <para>Ejemplos: <programlisting><![CDATA[if(a==5)then(a=a-1)
+if b<a then b=a
+if c>0 then c=c-1 else c=0
+a = ( if b>0 then b else 1 )
+]]></programlisting> tenga en cuenta que <literal>=</literal> se traducirá como <literal>==</literal> si se 
usa dentro de una expresión <literal>if</literal>, por lo que <programlisting>if a=5 then a=a-1
+</programlisting> se interpretará como: <programlisting>if a==5 then a:=a-1
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loops">
+      <title>Bucles</title>
+
+      <sect2 id="genius-gel-loops-while">
+        <title>Bucles «while»</title>
+        <para>Sintaxis: <programlisting><![CDATA[while <expression1> do <expression2>
+until <expression1> do <expression2>
+do <expression2> while <expression1>
+do <expression2> until <expression1>]]></programlisting> son similares a otros lenguajes. Sin embargo, 
puesto que GEL es una única expresión que debe devolver algo, estas construcciones devolverán el resultado de 
la última iteración o <literal>NULL</literal> si no se realiza ninguna operación. En la expresión booleana, 
<literal>=</literal> se traduce a <literal>==</literal> sólo para la sentencia <literal>if</literal>.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-for">
+        <title>Bucles «for»</title>
+        <para>Sintaxis: <programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
+for <identifier> = <from> to <to> by <increment> do <body>]]></programlisting> bucle en el que el 
identificador es un conjunto de todos los valores desde <literal>&lt;from&gt;</literal> hasta 
<literal>&lt;to&gt;</literal>, opcionalmente se puede usar un incremento distinto de 1. Dichos bucles son más 
rápidos, cómodos y compactos que los bucles normales descritos previamente pero menos flexibles. El 
identificador se debe tratar como tal y no se puede eliminar su referencia. El valor del identificador 
corresponde al último valor de éste o a <literal>&lt;from&gt;</literal> si el cuerpo del bucle no se ha 
evaluado todavía. Se garantiza que la variable permanezca inicializada tras el bucle, de modo que puede 
usarla sin problemas. Además, <literal>&lt;from&gt;</literal>, <literal>&lt;to&gt;</literal> e 
<literal>&lt;increment&gt;</literal> no pueden ser valores complejos. Tampoco se garantiza que se alcance 
<literal>&lt;to&gt;</literal>, pero sí que nunca se rebasará. El e
 jemplo siguiente imprime todos los números pares desde 1 a 19: <programlisting>for i = 1 to 20 by 2 do 
print(i)
+</programlisting></para>
+        <para>Cuando uno de los valores es un número de coma flotante, la verificación final se realiza con 
un paso de 2 ^-20. Es decir, incluso si se sobrestima 2 ^-20 veces el «por» por encima, todavía se ejecuta la 
última iteración. De este modo <programlisting>for x = 0 to 1 by 0.1 do print(x)
+</programlisting> hace lo esperado aunque sumar 0,1 diez veces es algo superior a 1,0 debido a la forma en 
que los números de coma flotante se almacenan en la base 2 (no hay 0,1, el número real almacenado es sólo 
ligeramente más grande). Esto no es perfecto, pero funciona en la mayoría de los casos. Si quiere evitar este 
problema, utilice números reales racionales, por ejemplo: <programlisting>for x = 0 to 1 by 1/10 do print(x)
+</programlisting> Esta comprobación se realiza únicamente desde la versión 1.0.16 en adelante, por lo que la 
ejecución del código puede variar en versiones anteriores.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-foreach">
+        <title>Bucles «foreach»</title>
+        <para>Sintaxis: <programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting> 
ejecuta el cuerpo del bucle para cada uno de los elementos de la matriz recorriendo ésta fila por fila y de 
izquierda a derecha. Para imprimir los números 1, 2, 3 y 4 en este orden se podría hacer lo siguiente: 
<programlisting>for n in [1,2:3,4] do print(n)
+</programlisting> Si desea recorrer las filas y columnas de una matriz puede usar las funciones RowsOf y 
ColumnsOf que devuelven un vector de filas o columnas de la matriz. Por lo tanto, <programlisting>for n in 
RowsOf ([1,2:3,4]) do print(n)
+</programlisting> imprimirá <literal>[1,2]</literal> y después <literal>[3,4]</literal>.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-break-continue">
+        <title>Parar y continuar</title>
+        <para>También puede utilizar los comandos <literal>break</literal> y <literal>continue</literal> en 
un bucle. El comando <literal>continue</literal> reinicia el bucle actual en la siguiente iteración, mientras 
que el comando <literal>break</literal> sale del bucle actual. <programlisting><![CDATA[while(<expression1>) 
do (
+  if(<expression2>) break
+  else if(<expression3>) continue;
+  <expression4>
+)
+]]></programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-sums-products">
+      <title>Sumas y productos</title>
+      <para>Sintaxis: <programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
+sum <identifier> = <from> to <to> by <increment> do <body>
+sum <identifier> in <matrix> do <body>
+prod <identifier> = <from> to <to> do <body>
+prod <identifier> = <from> to <to> by <increment> do <body>
+prod <identifier> in <matrix> do <body>]]></programlisting> Si sustituye <literal>for</literal> por 
<literal>sum</literal> o <literal>prod</literal>, obtendrá una suma o un producto en lugar de un bucle 
<literal>for</literal>. En vez de el último valor del bucle, devolverá la suma o el producto de todos los 
valores obtenidos respectivamente.</para>
+      <para>Si no se ejecuta ningún comando (por ejemplo <userinput>sum i=1 to 0 do ...</userinput>), 
<literal>sum</literal> devuelve el valor 0 y <literal>prod</literal> devuelve el valor 1, que es el convenio 
estándar.</para>
+      <para>Para los números en coma flotante el redondeo de protección de errores se realiza como en el 
bucle for. Consulte la <xref linkend="genius-gel-loops-for"/>.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-comparison-operators">
+      <title>Operadores de comparación</title>
+      <para>Los siguientes operadores de comparación comunes están soportados en GEL, y tienen el 
significado obvio: <literal>==</literal>, <literal>&gt;=</literal>, <literal>&lt;=</literal>, 
<literal>!=</literal>, <literal>&lt;&gt;</literal>, <literal>&lt;</literal>, <literal>&gt;</literal>. Éstos 
devuelven los valores <constant>true</constant> o <constant>false</constant>. Los operadores 
<literal>!=</literal> y <literal>&lt;&gt;</literal> son lo mismo y significan «no es igual a». GEL también 
permite utilizar el operador <literal>&lt;=&gt;</literal>, que devuelve el valor -1 si el lado izquierdo es 
menor, 0 si ambos lados son iguales, y 1 si el lado izquierdo es mayor.</para>
+
+      <para>Generalmente <literal>=</literal> se traduce como <literal>==</literal> si aparece en algún 
lugar dónde GEL espera una condición, como la condición «if». Por ejemplo <programlisting>if a=b then c
+if a==b then c
+</programlisting> son lo mismo en GEL. Sin embargo, debería utilizar <literal>==</literal> o 
<literal>:=</literal> cuando se quiere comparar o asignar, respectivamente, si quiere que su código sea fácil 
de leer. Además le ayuda a evitar errores.</para>
+
+      <para>No todos los operadores de comparación (salvo el operador <literal>&lt;=&gt;</literal>, que se 
comporta de manera normal), son operadores binarios en el sentido estricto del concepto. De hecho, se pueden 
agrupar en el modo matemático usual, por ejemplo: (<literal>1&lt;x&lt;=y&lt;5</literal>) es una expresión 
booleana legítima que significa lo que debería, es decir (1&lt;x and x≤y and y&lt;5)</para>
+      <para>Para construir expresiones lógicas utilice las palabras <literal>not</literal>, 
<literal>and</literal>, <literal>or</literal>, <literal>xor</literal>. Los operadores <literal>or</literal> y 
<literal>and</literal> son especiales pues evalúan sus argumentos de uno en uno, por lo que la técnica usual 
para implementar la evaluación condicional también funciona aquí. Por ejemplo, <literal>1 or a=1</literal> no 
ejecuta el comando <literal>a=1</literal>, pues el primer argumento es verdadero.</para>
+    </sect1>
+
+      <sect1 id="genius-gel-variables-global">
+        <title>Variables globales y ámbito de variables</title>
+       <para>
+         GEL is a
+         <ulink url="https://en.wikipedia.org/wiki/Scope_%28programming%29";>
+         dynamically scoped language</ulink>.  We will explain what this
+         means below.  That is, normal variables and functions are dynamically
+         scoped.  The exception are 
+         <link linkend="genius-gel-parameters">parameter variables</link>,
+         which are always global.
+       </para>
+       <para>Al igual que la mayoría de los lenguajes de programación, GEL tiene diferentes tipos de 
variables. Normalmente, cuando se define una variable en una función ésta es visible desde esa función y 
desde todas las funciones que se llamen (todos los contextos superiores). Por ejemplo, suponga que una 
función <function>f</function> define una variable <varname>a</varname> y luego llama a otra función 
<function>g</function>. Entonces, la función <function>g</function> puede hacer referencia a la variable 
<varname>a</varname>. Pero, una vez que la ejecución de <function>f</function> concluye, la variable 
<varname>a</varname> sale del ámbito. Por ejemplo, el siguiente código imprime el número 5. No se puede 
llamar a la función <function>g</function> desde el nivel más alto (fuera de <function>f</function>, dado que 
<varname>a</varname> no se habrá definido).</para>
+        <para>Si define una variable dentro de una función, ésta anulará toda variable definida al llamar a 
funciones. Por ejemplo, si modifica el código anterior y escribe: <programlisting>function f() = (a:=5; g());
+function g() = print(a);
+a:=10;
+f();
+</programlisting> Este código aún imprime 5. Pero si llama a la función <function>g</function> fuera de 
<function>f</function>, entonces se imprimirá 10. Observe que al definir <varname>a</varname> como 5 dentro 
de <function>f</function> no cambia el valor de <varname>a</varname> al nivel superior (global), por lo que 
si verifica el valor de <varname>a</varname> es aún 10.</para>
+       <para>Los argumentos de funciones son exactamente como variables definidas dentro de la función, 
salvo que éstas se inicializan con el valor que se introduce en la función. Además de esto, se les trata como 
a cualquier otra variable definida dentro de la función.</para>
+       <para>Las funciones se tratan exactamente como variables. Por lo tanto, puede redefinir funciones. 
Normalmente, (en el nivel superior) no puede redefinir variables y funciones protegidas. Pero localmente si 
lo puede hacer. Considere la siguiente sesión: <screen><prompt>genius&gt; </prompt><userinput>function f(x) = 
sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
+= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
+<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
+= 1e20
+</screen></para>
+       <para>Las funciones definidas en el nivel superior se consideran globales. Éstas son visibles desde 
cualquier parte. Como se dijo, la función <function>f</function> no cambiará el valor de <varname>a</varname> 
a 5. <programlisting>a=6;
+function f() = (a:=5);
+f();
+</programlisting> Sin embargo, en algunas ocasiones es necesario fijar una variable global dentro de una 
función. Cuando este comportamiento es necesario, utilice la función <link 
linkend="gel-function-set"><function>set</function></link>. Si introduce una cadena o un identificador 
entrecomillado a esta función, ésta fija la variable globalmente (al nivel superior). Por ejemplo, podría 
utilizar <programlisting>set(`a,3)
+</programlisting> o <programlisting>set("a",3)
+</programlisting> para fijar el valor 3 en la variable <varname>a</varname>.</para>
+        <para>La función <function>set</function> siempre fija el nivel superior global. No existe alguna 
manera de definir una variable local en alguna función desde alguna subrutina. Si se necesita hacer esto, 
debe utilizar ...</para>
+       <para>Consulte también las funciones <link 
linkend="gel-function-SetElement"><function>SetElement</function></link> y <link 
linkend="gel-function-SetVElement"><function>SetVElement</function></link>.</para>
+       <para>Para recapitular en un lenguaje más técnico: Genius opera con diferentes contextos numerados. 
El nivel más alto es el contexto 0 (cero). Siempre que se introduce una función , el contexto aumenta, y 
cuando la función devuelve su resultado el contexto disminuye. Siempre se puede ver una función o una 
variable desde los contextos mayores. Cuando una variable se define en un contexto menor, al fijar esta 
variable se crea una nueva variable local en el contexto actual y esta variable sera visible desde los 
contextos mayores.</para>
+       <para>También existen variables locales, que sólo pueden ser vistas desde el contexto actual. Cuando 
se devuelven funciones por un valor se pueden referenciar variables que no son visibles desde un contexto mas 
alto y esto puede ser problemático. Consulte las secciones <link 
linkend="genius-gel-true-local-variables">Variables locales verdaderas</link> y <link 
linkend="genius-gel-returning-functions">Devolver funciones</link>.</para>
+      </sect1>
+
+      <sect1 id="genius-gel-parameters">
+        <title>Variables de parámetros</title>
+       <para>Como se dijo, existen variables especiales llamadas parámetros. Éstas existen en todos los 
ámbitos. Para declarar un parámetro llamado <varname>foo</varname> con valor inicial 1, escriba 
<programlisting><![CDATA[parameter foo = 1
+]]></programlisting> A partir de ahí, <varname>foo</varname> es una variable estrictamente global. Si asigna 
un valor a <varname>foo</varname> dentro de cualquier función, modificará la variable en todos los contextos. 
Esto significa que las funciones no tienen una copia privada de los parámetros.</para>
+        <para>Cuando define un parámetro utilizando la función <link 
linkend="gel-function-undefine"><function>undefine</function></link>, éste deja de ser un parámetro.</para>
+        <para>Algunos parámetros están integrados de manera predeterminada y modifican el comportamiento de 
genius.</para>
+      </sect1>
+
+    <sect1 id="genius-gel-returning">
+      <title>Retorno</title>
+       <para>Normalmente, una función se compone de una o varias expresiones separadas con punto y coma, y 
se devuelve el valor de la última expresión. Esto resulta útil en funciones sencillas, pero algunas veces no 
querrá que una función devuelva el resultado del último cálculo. Podría, por ejemplo, preferir que ésta 
devolviera algún valor obtenido a la mitad de la función. En este caso, puede utilizar la palabra 
<literal>return</literal>. La función <literal>return</literal> toma un único valor, que es el valor que se 
devolverá.</para>
+      <para>Ejemplo: <programlisting><![CDATA[function f(x) = (
+  y=1;
+  while true do (
+    if x>50 then return y;
+    y=y+1;
+    x=x+1
+  )
+)
+]]></programlisting></para>
+    </sect1>
+
+
+    <sect1 id="genius-gel-references">
+      <title>Referencias</title>
+      <para>Para algunas funciones puede ser necesario devolver más de un valor. Esto se puede lograr al 
devolver un vector de valores, pero muchas veces resulta conveniente pasar una referencia a una variable. 
Puede pasar una referencia a una variable a una función, y la función fijará el valor, eliminando una 
referencia. Aunque éste es el principal uso de las referencias, no es el único.</para>
+      <para>Cuando se utilizan funciones que devuelven valores a través de referencias en la lista de 
argumentos, pase solo el nombre de la variable con un ampersand (&amp;). Por ejemplo, el siguiente código 
calcula el valor propio de una matriz <varname>A</varname> con un vector propio inicial indeterminado 
<varname>x</varname>, y guarda el vector propio obtenido en la variable <varname>v</varname>: 
<programlisting><![CDATA[RayleighQuotientIteration (A,x,0.001,100,&v)
+]]></programlisting></para>
+      <para>La manera como funcionan las referencias y la sintaxis que utilizan son similares al lenguaje C. 
El operador <literal>&amp;</literal> hace referencia a una variable y <literal>*</literal> la elimina. Ambos 
pueden aplicarse sólo a un identificador, por lo que <literal>**a</literal> no es una expresión legal en 
GEL.</para>
+      <para>Las referencias se pueden explicar mejor utilizando un ejemplo: <programlisting><![CDATA[a=1;
+b=&a;
+*b=2;
+]]></programlisting> ahora <varname>a</varname> contiene el valor 2. También puede hacer referencia a 
funciones: <programlisting><![CDATA[function f(x) = x+1;
+t=&f;
+*t(3)
+]]></programlisting> devuelve el valor 4.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-lvalues">
+      <title>Lvalues</title>
+      <para>Un lvalue es el lado izquierdo the una asignación. En otras palabras, un lvalor es lo que se le 
asigna a algo. Algunos lvalues válidos son: <variablelist>
+  <varlistentry>
+    <term><userinput>a</userinput></term>
+    <listitem>
+      <para>Identificador. Aquí se asignará la variable de nombre <varname>a</varname>.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>*a</userinput></term>
+    <listitem>
+      <para>Eliminar la referencia a un identificador. Esto fijará lo que a lo que apunta la variable 
<varname>a</varname>.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>a@(&lt;region&gt;)</userinput></term>
+    <listitem>
+      <para>Región de una matriz. Aquí, la región normalmente se especifica como con el operador regular 
@(), y puede ser un sola entrada, o una región completa de una matriz.</para>
+    </listitem>
+  </varlistentry>
+</variablelist></para>
+      <para>Ejemplos: <programlisting>a:=4
+*tmp := 89
+a@(1,1) := 5
+a@(4:8,3) := [1,2,3,4,5]'
+</programlisting> Tenga en cuenta que tanto <literal>:=</literal> como <literal>=</literal> pueden 
utilizarse indistintamente, salvo que la asignación aparezca en una condición. Es por esto que siempre es mas 
seguro sólo utilizar <literal>:=</literal> cuando se pretenda establecer una asignación y 
<literal>==</literal> para hacer una comparación.</para>
+    </sect1>
+
+  </chapter>
+
+  <chapter id="genius-gel-programming-advanced">
+    <title>Programación avanzada con GEL</title>
+
+    <sect1 id="genius-gel-error-handling">
+      <title>Control de errores</title>
+      <para>Si detecta un error en su función, puede salir de ella. Para errores normales, como argumentos 
del tipo equivocado, puede impedir que se calcule el resultado de la función al agregar la frase 
<literal>bailout</literal>. Si algo saliera de verdad mal y quisiera interrumpir definitivamente el cálculo 
en curso, puede utilizar la palabra <literal>exception</literal>.</para>
+      <para>Por ejemplo, si quiere verificar argumentos en una función. Podría utilizar el siguiente código: 
<programlisting>function f(M) = (
+  if not IsMatrix (M) then (
+    error ("M no es una matriz");
+    bailout
+  );
+  ...
+)
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-toplevel-syntax">
+      <title>Sintaxis de nivel superior</title>
+      <para>
+       The syntax is slightly different if you enter statements on
+       the top level versus when they are inside parentheses or
+       inside functions.  On the top level, enter acts the same as if
+       you press return on the command line.  Therefore think of programs
+       as just a sequence of lines as if they were entered on the command line.
+       In particular, you do not need to enter the separator at the end of the
+       line (unless it is of course part of several statements inside
+       parentheses).  When a statement does not end with a separator on the
+       top level, the result is printed after being executed.
+      </para>
+      <para>
+       For example,
+       <programlisting>function f(x)=x^2
+f(3)
+</programlisting>
+       will print first the result of setting a function (a representation of
+       the function, in this case <computeroutput>(`(x)=(x^2))</computeroutput>)
+       and then the expected 9.  To avoid this, enter a separator
+       after the function definition.
+       <programlisting>function f(x)=x^2;
+f(3)
+</programlisting>
+       If you need to put a separator into your function then you have to surround with
+       parenthesis.  For example:
+<programlisting>function f(x)=(
+  y=1;
+  for j=1 to x do
+    y = y+j;
+  y^2
+);
+</programlisting>
+      </para>
+      <para>El siguiente código, aunque funcione bien en la función, puede producir un error al introducirlo 
en el nivel más alto de un programa. <programlisting>if Algo() then
+  HacerAlgo()
+else
+  HacerOtraCosa()
+</programlisting></para>
+      <para>El problema es que, después que la <application>Herramienta Matemática Genius</application> ve 
el caracter de final de línea después de la segunda línea, la aplicación decidirá que ya se a completado la 
sentencia y la ejecutará. Cuando se termine la ejecución, la <application>Herramienta Matemática 
Genius</application> continuará con la siguiente línea y producirá un error al leer la sentencia 
<literal>else</literal>. Utilice paréntesis para evitar esto. La <application>Herramienta Matemática 
Genius</application> no estará satisfecha hasta que todos los paréntesis estén cerrados. <programlisting>if 
Algo() then (
+  HacerAlgo()
+) else (
+  HacerOtraCosa()
+)
+</programlisting></para>
+    </sect1>
+
+     <sect1 id="genius-gel-returning-functions">
+       <title>Devolver funciones</title>
+       <para>Es posible devolver funciones como un valor. De esta manera puede construir funciones que 
construyan otras funciones con propósitos específicos de acuerdo a ciertos parámetros. La parte complicada es 
determinar qué variables ve la función. La manera en que esto funciona en GEL es la siguiente: cuando una 
función devuelve otra función, todos los identificadores que referencia el cuerpo de la función que sale del 
ámbito son antepuestos al diccionario privado de la función devuelta. Por lo tanto, la función verá todas las 
variables que estaban en el ámbito cuando fue definida. Por ejemplo, la siguiente función devuelve una 
función que agrega 5 al valor de su argumento: <programlisting>function f() = (
+  k = 5;
+  `(x) = (x+k)
+)
+</programlisting> Tenga en cuenta que la función agrega <varname>k</varname> a <varname>x</varname>. Podría 
utilizar esto como sigue: <programlisting>g = f();
+g(5)
+</programlisting> And <userinput>g(5)</userinput> devuelve el valor 10.</para>
+       <para>Algo que conviene tener en cuenta es que el valor de <varname>k</varname> que se utiliza es el 
que se encuentra activo mientras <function>f</function> devuelve su valor. Por ejemplo: 
<programlisting>function f() = (
+  k := 5;
+  function r(x) = (x+k);
+  k := 10;
+  r
+)
+</programlisting> devolverá una función que añade 10 a su argumento, en lugar de 5. Esto es porque el 
diccionario adicional se crea sólo cuando el contexto en el que la función se define termina, que es cuando 
la función <function>f</function> devuelve su valor. Esto es consistente con cómo que esperaría que la 
función <function>r</function> actuara dentro de la función <function>f</function> según las reglas sobre el 
ámbito de variables en GEL. Al diccionario adicional sólo se añaden las variables que se utilizaron en 
contextos que recién terminan y que ya no existen. Las variables que se utilizan en la función que están en 
contextos que se mantienen válidos funcionan de manera usual, utilizan el valor actual de la variable. La 
única diferencia es entre las variables globales y las funciones. Todos los identificadores que hacen 
referencia a variables globales al momento de definir la función no se agregan al diccionario privado. Esto 
es para evitar traba
 jo innecesario al devolver una función y rara vez será un problema. Por ejemplo, suponga que borra «k=5» de 
la función <function>f</function> y que, en el nivel más alto, define <varname>k</varname> como 5, por 
ejemplo. Cuado ejecute la función <function>f</function>, la función <function>r</function> no añadirá 
<varname>k</varname> al diccionario privado pues ésta es una variable global (del nivel más alto) en el 
momento en que se definió <varname>r</varname>.</para>
+       <para>Algunas veces es mejor tener más control sobre cómo las variables se copian al diccionario 
privado. Desde la versión 1.0.7 puede especificar qué variables se copian al diccionario privado colocando 
corchetes adicionales después de los argumentos con la lista de variables que se desean copiar separadas con 
comas. Si hace esto, las variables se copiarán al diccionario privado en el momento que se define la función, 
y no se tocará el diccionario privado después de esto. Por ejemplo, <programlisting>function f() = (
+  k := 5;
+  function r(x) [k] = (x+k);
+  k := 10;
+  r
+)
+</programlisting> devuelve una función que cuando se llama añade 5 a su argumento. La copia local de 
<varname>k</varname> se crea cuando la función se define.</para>
+       <para>Cuando quiera que la función no tenga un diccionario privado escriba un par de corchetes vacíos 
después de la lista de argumentos. Con esto no se creará ningún diccionario privado. Hacer esto es útil para 
incrementar la eficiencia cuando no se necesita un diccionario privado o cuando quiere que la función busque 
todas las variables cuando las ve al momento que se la llama. Por ejemplo, suponga que quiere que la función 
que devuelve <function>f</function> ve el valor de <varname>k</varname> del nivel más alto sin importar que 
hay una variable con el mismo nombre al momento de la definición. El código <programlisting>function f() = (
+  k := 5;
+  function r(x) [] = (x+k);
+  r
+);
+k := 10;
+g = f();
+g(10)
+</programlisting> devuelve 20 y no 15, lo que podría suceder si se hubiese añadido <varname>k</varname> con 
valor 5 al diccionario privado.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-true-local-variables">
+      <title>Variables locales verdaderas</title>
+      <para>Cuando se pasa una función a otras funciones, la manera predeterminada en que se determinan los 
ámbitos de las variables puede no ser la que quiere. Por ejemplo: <programlisting>k := 10;
+function r(x) = (x+k);
+function f(g,x) = (
+  k := 5;
+  g(x)
+);
+f(r,1)
+</programlisting> probablemente quiere que la función <function>r</function>, en el momento que pasa como 
<function>g</function> a la función <function>f</function>, vea la variable <varname>k</varname> como 10 y no 
5 y que el código devuelva 11 y no 6. Sin embargo, como está escrita, la función verá <varname>k</varname> 
con el valor 5. Existen dos maneras de resolver este problema. Una es hacer que <function>r</function> guarde 
<varname>k</varname> en un diccionario privado utilizando la notación de corchetes. Consulte la sección <link 
linkend="genius-gel-returning-functions">Devolver funciones</link>.</para>
+      <para>Pero hay otra solución. Desde la versión 1.0.7 existen variables locales verdaderas. Éstas son 
variables que son visibles sólo desde el contexto actual y no desde ninguna función que se llame. Se podría 
definir <varname>k</varname> como una variable local en la función <function>f</function>. Para hacer esto, 
añada la sentencia <command>local</command> como la primera sentencia en la función (siempre debe de ser la 
primera sentencia de la función). También puede convertir cualquier argumento en una variable local. Esto es, 
<programlisting>function f(g,x) = (
+  local g,x,k;
+  k := 5;
+  g(x)
+);
+</programlisting> El código funcionará como se espera e imprimirá 11. Observe que la sentencia 
<command>local</command> inicializa todas las variables que se referencian (salvo los argumentos de 
funciones) como una constante <constant>null</constant>.</para>
+      <para>Si todas las variables se crean localmente, puede pasar un asterisco en lugar de una lista de 
variables. En este caso las variables no se inicializarán hasta que se fijen, desde luego. Entonces, la 
siguiente definición de <function>f</function> también funcionará: <programlisting>function f(g,x) = (
+  local *;
+  k := 5;
+  g(x)
+);
+</programlisting></para>
+      <para>Es bueno que todas las funciones que toman otras funciones como argumentos utilicen variables 
locales. De esta manera las funciones que pasan no ven los detalles de la implementación y luego no se 
confunden.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-startup-procedure">
+      <title>Procedimiento de inicio de GEL</title>
+      <para>Primero, el programa busca el archivo de la biblioteca instalada (la versión compilada 
<filename>lib.cgel</filename>) en la carpeta instalada; luego, busca en la carpeta actual y finalmente trata 
de cargar algún archivo no compilado llamado <filename>~/.geniusinit</filename>.</para>
+      <para>Si alguna vez cambia el lugar donde está instalada la biblioteca, primero deberá compilarla con 
el comando <command>genius --compile loader.gel &gt; lib.cgel</command></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loading-programs">
+      <title>Cargar programas</title>
+      <para>Algunas veces tiene un programa más largo que escribió en un archivo y quiere leer dicho archivo 
con la <application>herramienta matemática Genius</application>. En estas situaciones tiene dos opciones. 
Puede conservar las funciones que más usa en el archivo <filename>~/.geniusinit</filename>. Si quiere cargar 
un archivo a la mitad de una sesión (o desde otro archivo), puede escribir <command>load &lt;list of 
filenames&gt;</command> en la línea de comandos. Esto se tiene que hacer desde el nivel más alto y no dentro 
de alguna función a algo similar, y no puede ser parte de una expresión. También tiene una sintaxis 
ligeramente distinta que el resto de Genius, similar a la que se usa en la consola. Puede escribir el nombre 
del archivo entre comillas. Si utiliza las comillas '' obtendrá exactamente la cadena que escriba, si utiliza 
las comillas "" no se escaparán los caracteres especiales como se hace con las cadenas. Ejemplo: 
<programlisting>load progra
 ma1.gel programa2.gel
+load "Nombre raro de archivo con ESPACIOS.gel"
+</programlisting> Los comandos <command>cd</command>, <command>pwd</command> y <command>ls</command> también 
están incluídos. El comando <command>cd</command> toma un argumento, <command>ls</command> toma una argumento 
que es como «glob» en la consola de Unix (puede utilizar comodines, por ejemplo). El comando 
<command>pwd</command> no toma ningún argumento. Por ejemplo: <programlisting>cd «carpeta_con_programas_gel»
+ls *.gel
+</programlisting></para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Matrices ================================= -->
+  <chapter id="genius-gel-matrices">
+    <title>Matrices en GEL</title>
+
+    <para>Genius tiene soporte para vectores y matrices y una biblioteca dimensionable para manipulación de 
matrices y funciones de álgebra lineal.</para>
+
+    <sect1 id="genius-gel-matrix-support">
+      <title>Introducir matrices</title>
+      <para>Para introducir matrices, puede utilizar cualquiera de las dos sintaxis que siguen. Puede 
introducir la matriz en una línea, separando los valores con comas y las filas con un punto y coma. También 
puede introducir cada fila en una línea, separando los valores con comas. También puede combinar los dos 
métodos. Para introducir una matriz de 3x3 con los números 1 a 9 podría hacer lo siguiente: 
<programlisting>[1,2,3;4,5,6;7,8,9]
+</programlisting> o <programlisting>[1, 2, 3
+ 4, 5, 6
+ 7, 8, 9]
+</programlisting> No utilice «;» y «return» en la misma línea.</para>
+
+      <para>También puede utilizar la funcionalidad de expandir matrices para introducir una matriz. Por 
ejemplo puede hacer lo siguiente: <programlisting>a = [ 1, 2, 3
+      4, 5, 6
+      7, 8, 9]
+b = [ a,  10
+      11, 12]
+</programlisting> y obtendrá <programlisting>[1,   2,  3, 10
+ 4,   5,  6, 10
+ 7,   8,  9, 10
+ 11, 11, 11, 12]
+</programlisting> Puede construir matrices con vectores y cosas parecidas de manera similar.</para>
+
+      <para>Otra cosa es que se los puntos no especificados se inicialicen a 0, por lo que 
<programlisting>[1, 2, 3
+ 4, 5
+ 6]
+</programlisting> será <programlisting>
+[1, 2, 3
+ 4, 5, 0
+ 6, 0, 0]
+</programlisting></para>
+
+      <para>Cuando las matrices se evalúan y se recorre fila por fila, justo como el operador 
<literal>M@(j)</literal> que recorre la matriz renglón por renglón.</para>
+
+      <note>
+        <para>Tenga cuidado al utilizar «return» en expresiones dentro de corchetes <literal>[ ]</literal>, 
ya que tiene un significado ligeramente distinto en ese contexto. Comenzará una fila nueva.</para>
+      </note>
+
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-transpose">
+      <title>Conjugada de la traspuesta y operador de trasposición</title>
+      <para>Puede calcular la matriz traspuesta conjugada de una matriz utilizando el operador 
<literal>'</literal>. Es decir, la entrada correspondiente al renglón <varname>j</varname> y la columna 
<varname>i</varname> será el complejo conjugado de la entrada correspondiente a la fila <varname>i</varname> 
y la columna <varname>j</varname> de la matriz original. Por ejemplo: <programlisting>[1,2,3]*[4,5,6]'
+</programlisting> Se traspone el segundo vector para que sea posible multiplicar las matrices. Si solamente 
quiere trasponer la matriz sin conjugarla, utilice el operador <literal>.'</literal>. Por ejemplo: 
<programlisting>[1,2,3]*[4,5,6i].'
+</programlisting></para>
+       <para>Observe que la matriz traspuesta, esto es la que se calcula utilizando el operador 
<literal>.'</literal>, es más veloz y no crea una copia nueva de la matriz en la memoria. Desafortunadamente, 
la matriz traspuesta conjugada sí crea una copia nueva. Se recomienda que siempre utilice el operador 
<literal>.'</literal> cuando trabaje con matrices y vectores reales.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-linalg">
+      <title>Álgebra lineal</title>
+      <para>Genius implementa varias rutinas útiles para manipular álgebra lineal y matrices. Consulte las 
secciones <link linkend="genius-gel-function-list-linear-algebra">álgebra lineal</link> y <link 
linkend="genius-gel-function-list-matrix">manipulación de matrices</link> de la lista de funciones GEL.</para>
+      <para>Las rutinas de álgebra lineal implementadas en GEL no ofrecen actualmente un paquete numérico 
bien probado, por lo que no se deberían utilizar para cálculos numéricos críticos. Por otro lado, Genius 
implementa muy bien muchas operaciones de álgebra lineal con coeficientes racionales y enteros. Éstas son 
intrínsecamente exactas y, de hecho, dan resultados mucho mejores que las rutinas comunes de doble precisión 
para álgebra lineal.</para>
+      <para>Por ejemplo, no tiene sentido calcular el rango y el espacio nulo de una matriz en coma 
flotante, ya que para todos los fines prácticos, se debe tener en cuenta que la matriz puede tener algunos 
errores pequeños. Es posible que se obtenga un resultado diferente al esperado. El problema es que con una 
perturbación pequeña cualquier matriz es de rango completo e invertible. Sin embargo, si la matriz se compone 
de números racionales, entonces el rango y el espacio nulo serán siempre exactos.</para>
+      <para>En general, cuando Genius calcula la base de un espacio vectorial determinado (por ejemplo con 
la función <link linkend="gel-function-NullSpace"><function>NullSpace</function></link>), se dará la base 
como una matriz cuyas columnas son los vectores de la base. Es decir, cuando Genius habla de un subespacio 
lineal se refiere a una matriz cuyo espacio de columna es el subespacio lineal indicado.</para>
+      <para>Cabe señalar que Genius puede recordar ciertas propiedades de una matriz. Por ejemplo, se 
recordará si una matriz está en su forma reducida por filas. Si se hacen muchas llamadas a funciones que 
utilizan internamente la forma reducida por filas de una matriz, se puede reducir por filas la matriz 
previamente una sola vez. Las llamadas sucesivas a la función <link 
linkend="gel-function-rref"><function>rref</function></link> se harán muy rápido.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Polynomials ============================== -->
+  <chapter id="genius-gel-polynomials">
+    <title>Polinomios en GEL</title>
+
+    <para>Actualmente, Genius puede manipular polinomios de una variable escritos como vectores y realizar 
algunas operaciones básicas con ellos. Se prevé ampliar este soporte adicional.</para>
+
+    <sect1 id="genius-gel-polynomials-using">
+      <title>Usar polinomios</title>
+      <para>Actualmente, los polinomios de una variable son vectores horizontales con valores como nodos. La 
potencia del término es la posición en el vector, con la primera posición siendo 0. Por lo tanto, 
<programlisting>[1,2,3]
+</programlisting> se traduce en un polinomio como <programlisting>1 + 2*x + 3*x^2
+</programlisting></para>
+      <para>Se pueden sumar, restar y multiplicar polinomios utilizando las funciones <link 
linkend="gel-function-AddPoly"><function>AddPoly</function></link>, <link 
linkend="gel-function-SubtractPoly"><function>SubtractPoly</function></link> y <link 
linkend="gel-function-MultiplyPoly"><function>MultiplyPoly</function></link> respectivamente. Se puede 
imprimir un polinomio utilizando la función <link 
linkend="gel-function-PolyToString"><function>PolyToString</function></link>. Por ejemplo, 
<programlisting>PolyToString([1,2,3],"y")
+</programlisting> devuelve <programlisting>3*y^2 + 2*y + 1
+</programlisting> También se puede obtener una representación funcional del polinomio de manera que puede 
evaluarse. Esto se realiza utilizando <link 
linkend="gel-function-PolyToFunction"><function>PolyToFunction</function></link>, que devuelve una función 
anónima. <programlisting>f = PolyToFunction([0,1,1])
+f(2)
+</programlisting></para>
+      <para>También es posible encontrar raíces de los polinomios de grado 1 a 4 mediante el uso de la 
función <link linkend="gel-function-PolynomialRoots"><function>PolynomialRoots</function></link>, que llama a 
la función de la fórmula adecuada. Los polinomios de grado más alto se convertirán en funciones y se 
resolverán numéricamente al utilizar una función como <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>, o <link 
linkend="gel-function-FindRootSecant"><function>FindRootSecant</function></link>.</para>
+      <para>Consulte la <xref linkend="genius-gel-function-list-polynomials"/> en la lista de funciones el 
resto de funciones que actúan sobre polinomios.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Set Theory ============================== -->
+  <chapter id="genius-gel-settheory">
+    <title>Teoría de conjuntos en GEL</title>
+
+    <para>Genius incorpora un juego básico de funcionalidades teoréticas. En la actualidad, un conjunto es 
sólo un vector (o una matriz). Cada objeto distinto se trata como un elemento diferente.</para>
+
+    <sect1 id="genius-gel-sets-using">
+      <title>Usar conjuntos</title>
+      <para>Al igual que los vectores, los objetos en conjuntos pueden incluir números, cadenas, 
<constant>null</constant>, matrices y vectores. En un futuro se plantea tener un tipo determinado de 
conjuntos, en lugar de utilizar vectores. Tenga en cuenta que los números en coma flotante son distintos de 
los enteros, y que parecen iguales. Esto significa que Genius los tratará como términos distintos, usando las 
constantes <constant>0</constant> y <constant>0.0</constant>. La constante <constant>null</constant> se trata 
como un conjunto vacío.</para>
+      <para>Para construir un conjunto fuera de un vector, use la función <link 
linkend="gel-function-MakeSet"><function>MakeSet</function></link>.Actualmente, sólo se devolverá un nuevo 
vector donde cada elemento es único. <screen><prompt>genius&gt; 
</prompt><userinput>MakeSet([1,2,2,3])</userinput>
+= [1, 2, 3]
+</screen></para>
+
+       <para>Del mismo modo hay funciones que se explican por si mismas como <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>. Por ejemplo: <screen><prompt>genius&gt; 
</prompt><userinput>Union([1,2,3], [1,2,4])</userinput>
+= [1, 2, 4, 3]
+</screen>. Tenga en cuenta que no se garantiza el orden en los valores que devuelve la función. Si se quiere 
ordenar el vector puede usar la función <link 
linkend="gel-function-SortVector"><function>SortVector</function></link>.</para>
+
+       <para>Para los miembros del equipo de pruebas, hay funciones <link 
linkend="gel-function-IsIn"><function>IsIn</function></link> y <link 
linkend="gel-function-IsSubset"><function>IsSubset</function></link>, que devuelven un valor tipo «bool». Por 
ejemplo: <screen><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
+= true
+</screen> La entrada <userinput>IsIn(x,X)</userinput> por supuesto es equivalente a 
<userinput>IsSubset([x],X)</userinput>. Obsérvese que puesto que el conjunto vacío es un subconjunto de cada 
conjunto, <userinput>IsSubset(null,X)</userinput> es siempre «true».</para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL function list ======================== -->
+  <chapter id="genius-gel-function-list">
+    <title>Lista de funciones GEL</title>
+
+    <!--&gel-function-list;-->
+
+    <para>Para obtener ayuda sobre una función específica desde la consola, escriba: <programlisting>help 
NombreFuncion
+</programlisting></para>
+
+    <sect1 id="genius-gel-function-list-commands">
+      <title>Comandos</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-command-help"/>help</term>
+         <listitem>
+          <synopsis>help</synopsis>
+          <synopsis>ayuda NombreFunción</synopsis>
+          <para>Imprimir ayuda (o ayuda en una función/comando).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-load"/>load</term>
+         <listitem>
+          <synopsis>load «archivo.gel»</synopsis>
+          <para>Cargar un archivo en el intérprete. El archivo se ejecutará como si se hubiera escrito en la 
línea de comandos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-cd"/>cd</term>
+         <listitem>
+          <synopsis>cd /carpeta/nombre</synopsis>
+          <para>Cambiar la carpeta de trabajo a <filename>/carpeta/nombre</filename>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-pwd"/>pwd</term>
+         <listitem>
+          <synopsis>pwd</synopsis>
+          <para>Imprimir la carpeta de trabajo actual.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-ls"/>ls</term>
+         <listitem>
+          <synopsis>ls</synopsis>
+          <para>Listar archivos en la carpeta actual.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-plugin"/>plugin</term>
+         <listitem>
+          <synopsis>plugin nombre_del_complemento</synopsis>
+          <para>Cargar un complemento. El complemento debe estar instalado en el sistema en la carpeta 
adecuada.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-basic">
+      <title>Básico</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
+         <listitem>
+          <synopsis>AskButtons (consulta)</synopsis>
+          <synopsis>AskButtons (consulta, botón1, ...)</synopsis>
+         <para>Hace una pregunta y presenta una lista de botones para el usuario o un menú de opciones en 
modo texto). Devuelve el índice en base a 1 de la tecla pulsada. Esto es, devuelve 1 si se presiona la 
primera tecla, 2 si es la segunda, y así sucesivamente. Si el usuario cierra la ventana (o simplemente entra 
en modo texto), entonces devuelve la constante <constant>null</constant>. La ejecución del programa permanece 
bloqueada hasta que el usuario responda.</para>
+         <para>Desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AskString"/>AskString</term>
+         <listitem>
+          <synopsis>AskString (consulta)</synopsis>
+          <synopsis>AskString (consulta, predeterminado)</synopsis>
+          <para>Hace una pregunta y deja al usuario que introduzca una cadena que luego devuelve. Si el 
usuario cancela o cierra la ventana, entonces se devuelve la constante <constant>null</constant>. El programa 
se detiene hasta que el usuario responda. Si de forma predeterminada <varname>default</varname> se da, 
entonces se escribe de forma automática cada vez que el usuario presiona la tecla «Intro» (desde la versión 
1.0.6 en adelante).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Compose"/>Compose</term>
+         <listitem>
+          <synopsis>Compose (f,g)</synopsis>
+          <para>Componer dos funciones y devolver una función, que es la composición de 
<function>f</function> y <function>g</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
+         <listitem>
+          <synopsis>ComposePower (f,n,x)</synopsis>
+          <para>Compone y ejecuta una funcion con ella misma <varname>n</varname> veces, pasando 
<varname>x</varname> como argumento. Devolviendo <varname>x</varname> si <varname>n</varname> es cero. Por 
ejemplo: <screen><prompt>genius&gt;</prompt> <userinput>function f(x) = x^2 ;</userinput>
+<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
+= 5764801
+<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
+= 5764801
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
+         <listitem>
+          <synopsis>Evaluate (cadena)</synopsis>
+          <para>Analiza y evalúa una cadena.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
+         <listitem>
+          <synopsis>GetCurrentModulo</synopsis>
+          <para>Obtener el módulo actual desde fuera del contexto de la función. Esto significa que, si 
fuera de la función se ejecutó en módulo (utilizando <literal>mod</literal>) entonces esto devuelve lo que 
este módulo fue. El cuerpo de la función que se llama no se ejecuta en aritmética modular, y esta función 
interna hace posible hacer funciones GEL que utilizan la aritmética modular.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Identity"/>Identity</term>
+         <listitem>
+          <synopsis>Identity (x)</synopsis>
+         <para>Función identidad, devuelve sus argumentos. Esto es equivalente a <userinput>function 
Identity(x)=x</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
+         <listitem>
+          <synopsis>IntegerFromBoolean (bval)</synopsis>
+         <para>Hacer entero (0 para <constant>false</constant> o 1 para <constant>true</constant>) desde un 
valor booleano. <varname>bval</varname> también puede ser un número y en el caso de que el valor no sea 0 se 
interpretará como <constant>true</constant> y si es 0 se interpretará como <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
+         <listitem>
+          <synopsis>IsBoolean (arg)</synopsis>
+          <para>Comprobar si el argumento es un booleano (y no un número).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
+         <listitem>
+          <synopsis>IsDefined (id)</synopsis>
+          <para>Comprobar si un identificador está declarado. Pase una cadena o un identificador. Si pasa 
una matriz, cada entrada se evaluará por separado y la matriz contendrá cadenas o identificadores.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
+         <listitem>
+          <synopsis>IsFunction (arg)</synopsis>
+          <para>Comprobar si el argumento es una función.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
+         <listitem>
+          <synopsis>IsFunctionOrIdentifier (arg)</synopsis>
+          <para>Comprobar si el argumento es una función o un identificador.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
+         <listitem>
+          <synopsis>IsFunctionRef (arg)</synopsis>
+          <para>Comprobar si el argumento es una referencia a la función. Esto incluye las referencias a 
variables.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
+         <listitem>
+          <synopsis>IsMatrix (arg)</synopsis>
+          <para>Comprobar si el argumento es una matriz. Si bien <constant>null</constant> se considera en 
algunas ocasiones como una matriz vacía, la función <function>IsMatrix</function> no considera a 
<constant>null</constant> como una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNull"/>IsNull</term>
+         <listitem>
+          <synopsis>IsNull (arg)</synopsis>
+         <para>Comprobar si el argumento es <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsString"/>IsString</term>
+         <listitem>
+          <synopsis>IsString (arg)</synopsis>
+          <para>Comprobar si el argumento es una cadena de texto.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValue"/>IsValue</term>
+         <listitem>
+          <synopsis>IsValue (arg)</synopsis>
+          <para>Comprobar si el argumento es un número.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Parse"/>Parse</term>
+         <listitem>
+          <synopsis>Parse (cadena)</synopsis>
+          <para>Comprobar pero no evaluar una cadena. Tenga en cuenta que algunos cálculos internos se 
realizan durante el análisis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
+         <listitem>
+          <synopsis>SetFunctionFlags (id,opciones...)</synopsis>
+          <para>Establece opciones para una función, actualmente <literal>"PropagateMod"</literal> y 
<literal>"NoModuloArguments"</literal>. Si <literal>"PropagateMod"</literal> se activa, entonces el cuerpo de 
la función se evalúa en la aritmética modular cuando la función se llama dentro de un bloque que se evaluó 
con la aritmética modular (se utilizó <literal>mod</literal>). Si se activa 
<literal>"NoModuloArguments"</literal>, entonces los argumentos de la función se evaluarán con la aritmética 
modular.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
+         <listitem>
+          <synopsis>SetHelp (id,categoria,desc)</synopsis>
+          <para>Establece la categoría y la línea de descripción de la ayuda para una función.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
+         <listitem>
+          <synopsis>SetHelpAlias (id,alias)</synopsis>
+          <para>Establece un alias de ayuda.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-chdir"/>chdir</term>
+         <listitem>
+          <synopsis>chdir (carpeta)</synopsis>
+          <para>Cambia la carpeta actual, igual que <command>cd</command>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
+         <listitem>
+          <synopsis>CurrentTime</synopsis>
+          <para>Devuelve la hora UNIX actual con una precisión de microsegundos, como un número en coma 
flotante. Esto es, devuelve el número de segundos desde el 1 de enero de 1970.</para>
+         <para>Desde la versión 1.0.15 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-display"/>display</term>
+         <listitem>
+          <synopsis>display (cadena,expresión)</synopsis>
+          <para>Muestra una cadena y una expresión separadas por dos puntos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DisplayVariables"/>DisplayVariables</term>
+         <listitem>
+          <synopsis>DisplayVariables (var1,var2,...)</synopsis>
+         <para>Muestra la configuración de variables. Las variables pueden ser cadenas o identificadores. 
Por ejemplo: <programlisting>DisplayVariables(`x,`y,`z)
+           </programlisting></para>
+         <para>Si se llama sin argumentos (debería suministrar una lista vacía de argumentos) como 
<programlisting>DisplayVariables()
+           </programlisting> entonces todas las variables se imprimirán incluyendo una lista de llamadas 
similar a <guilabel>Muestra variables del usuario</guilabel> en la versión gráfica.</para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-error"/>error</term>
+         <listitem>
+          <synopsis>error (cadena)</synopsis>
+          <para>Imprime un error en el flujo de error (en la consola).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exit"/>exit</term>
+         <listitem>
+          <synopsis>exit</synopsis>
+          <para>Aliases: <function>quit</function></para>
+          <para>Sale el programa.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-false"/>false</term>
+         <listitem>
+          <synopsis>false</synopsis>
+          <para>Alias: <function>False</function><function>FALSE</function></para>
+         <para>El valor booleano <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-manual"/>manual</term>
+         <listitem>
+          <synopsis>manual</synopsis>
+          <para>Muestra el manual de usuario.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-print"/>print</term>
+         <listitem>
+          <synopsis>print (cadena)</synopsis>
+          <para>Imprime una expresión y luego una nueva línea. El argumento <varname>str</varname> puede ser 
cualquier expresión. Esto se hace dentro de una cadena antes de imprimir.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-printn"/>printn</term>
+         <listitem>
+          <synopsis>printn (cad)</synopsis>
+          <para>Imprime una expresión sin un carácter de nueva línea. El argumento <varname>str</varname> 
puede ser cualquier expresión. Esto se hace dentro de una cadena antes de imprimir.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrintTable"/>PrintTable</term>
+         <listitem>
+          <synopsis>PrintTable (f,v)</synopsis>
+         <para>Imprime una tabla de valores para una función. Los valores están en el vector 
<varname>v</varname>. Puede usar la notación de construcción de vectores como sigue: 
<programlisting>PrintTable (f,[0:10])
+           </programlisting> Si <varname>v</varname> es un entero positivo, se utilizarán todos los 
elementos de la tabla de enteros desde 1 hasta v incluido.</para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-protect"/>protect</term>
+         <listitem>
+          <synopsis>protect (id)</synopsis>
+          <para>Puede proteger una variable de ser modificada. Esto se usa en las funciones de GEL internas 
para evitar que se sobreescriban accidentalmente.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
+         <listitem>
+          <synopsis>ProtectAll ()</synopsis>
+          <para>Protege todas la variables actuales definidas, parámetros y funciones desde que se 
modificaron. Se utiliza por las funciones GEL para impedir accidentalmente que se sobrescriba. Normalmente la 
<application>herramienta matemática Genius</application> considera desprotegidas las variables que el usuario 
definió.</para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-set"/>set</term>
+         <listitem>
+          <synopsis>set (id,val)</synopsis>
+          <para>Establecer una variable global. La variable <varname>id</varname> sólo puede ser una cadena 
o un identificador. Por ejemplo: <programlisting>set(`x,1)
+           </programlisting> establecerá la variable global <varname>x</varname> a 1.</para>
+         <para>La función devuelve el <varname>val</varname>, que podrá utilizarse para 
encadenamiento.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetElement"/>SetElement</term>
+         <listitem>
+          <synopsis>SetElement (id,row,col,val)</synopsis>
+         <para>Establecer un elemento de una variable global, que es una matriz. La variable 
<varname>id</varname> puede ser una cadena o un identificador entrecomillado. Por ejemplo: 
<programlisting>SetElement(`x,2,3,1)
+           </programlisting> establecerá el elemento de la segunda fila, tercera columna de la variable 
global <varname>x</varname> a 1. Si no existe el nombre de la variable global, o si se configura algo que no 
es una matriz, se creará una nueva matriz con el tamaño apropiado rellena con ceros.</para>
+         <para>Las variables <varname>row</varname> y <varname>col</varname> pueden ser también rangos, y la 
semántica es la mísma para las configuraciones normales de los elementos con un signo igual.</para>
+         <para>La función devuelve el <varname>val</varname>, que podrá utilizarse para 
encadenamiento.</para>
+         <para>Disponible desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetVElement"/>SetVElement</term>
+         <listitem>
+          <synopsis>SetElement (id,elt,val)</synopsis>
+         <para>Establecer un elemento de una variable global, que es un vector. La variable 
<varname>id</varname> puede ser una cadena o un identificador entrecommillado. Por ejemplo: 
<programlisting>SetElement(`x,2,1)
+           </programlisting> establecerá el segundo elemento del vector variable global <varname>x</varname> 
a 1. Si no existe el nombre de la variable global, o si está configurado para algo distinto que no sea un 
vector (matriz), se creará una nueva fila del vector con valor cero y con el tamaño apropiado.</para>
+         <para>La variable <varname>elt</varname> puede ser un rango, y la semánticas son la mísmas para las 
configuraciones normales de los elementos con un signo igual.</para>
+         <para>La función devuelve el <varname>val</varname>, que podrá utilizarse para 
encadenamiento.</para>
+         <para>Disponible desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-string"/>string</term>
+         <listitem>
+          <synopsis>string (s)</synopsis>
+          <para>Crear una cadena. Esto creará una cadena desde cualquier argumento.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-true"/>true</term>
+         <listitem>
+          <synopsis>true</synopsis>
+          <para>Alias: <function>True</function><function>TRUE</function></para>
+         <para>El valor booleano <constant>true</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-undefine"/>undefine</term>
+         <listitem>
+          <synopsis>undefine (id)</synopsis>
+          <para>Alias: <function>Undefine</function></para>
+          <para>Elimina la definición de una variable. Esto incluye variables locales y globales, cada valor 
se limpia en toda su dimensión. Esta función no se usa en variables locales. Se puede usar un vector de 
identificadores para eliminar la definición de varias variables a la vez.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
+         <listitem>
+          <synopsis>UndefineAll ()</synopsis>
+         <para>Elimina la definición de todas las variables desprotegidas globales (incluyendo funciones y 
parámetros). La <application>herramienta matemática Genius</application> considera a las variables protegidas 
como variables y funciones definidas por el sistema. Tenga en cuenta que <function>UndefineAll</function> 
solo elimina la definición global de símbolos no locales, por lo que se puede ejecutar desde dentro de otras 
funciones de manera segura.</para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-unprotect"/>unprotect</term>
+         <listitem>
+          <synopsis>unprotect (id)</synopsis>
+          <para>Desproteger una variable de ser modificada.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
+         <listitem>
+          <synopsis>UserVariables ()</synopsis>
+          <para>Devolver un vector con todos los nombres de variables globales definidas por el usuario (sin 
proteger).</para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-wait"/>wait</term>
+         <listitem>
+          <synopsis>wait (secs)</synopsis>
+          <para>Esperar un número específico de segundos. <varname>secs</varname> no puede ser negativo. 
Cero es aceptable y no pasa nada en este caso, excepto si los posibles eventos de interfaz del usuario se 
procesan.</para>
+         <para>Desde la versión 1.0.18, la variable <varname>secs</varname> puede ser un número no entero, 
así <userinput>wait(0.1)</userinput> esperará durante un periodo de una décima de segundo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-version"/>version</term>
+         <listitem>
+          <synopsis>version</synopsis>
+          <para>Devuelve la versión de Genius como un vector horizontal de tres argumentos en el que el 
primero es la versión mayor, le sigue menor versión y la revisión en último lugar.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-warranty"/>warranty</term>
+         <listitem>
+          <synopsis>warranty</synopsis>
+          <para>Da la información de garantía.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+
+    </sect1>
+
+    <sect1 id="genius-gel-function-parameters">
+      <title>Parámetros</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
+         <listitem>
+          <synopsis>ChopTolerance = número</synopsis>
+          <para>Tolerancia de la función <function>Chop</function></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
+         <listitem>
+          <synopsis>ContinuousNumberOfTries = número</synopsis>
+          <para>Iteraciones para tratar de obtener el límite de continuidad y sus límites.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
+         <listitem>
+          <synopsis>ContinuousSFS = número</synopsis>
+          <para>Número de pasos sucesivos dentro de la tolerancia para el cálculo de la continuidad.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
+         <listitem>
+          <synopsis>ContinuousTolerance = número</synopsis>
+          <para>Tolerancia para la continuidad de las funciones y para el cálculo del límite.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
+         <listitem>
+          <synopsis>DerivativeNumberOfTries = número</synopsis>
+          <para>Número de iteraciones para tratar de obtener el límite para la derivada.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
+         <listitem>
+          <synopsis>DerivativeSFS = número</synopsis>
+          <para>Número de pasos sucesivos dentro de la tolerancia para el cálculo de la derivada.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
+         <listitem>
+          <synopsis>DerivativeTolerance = número</synopsis>
+          <para>Tolerancia para calcular las derivadas de las funciones.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
+         <listitem>
+          <synopsis>ErrorFunctionTolerance = número</synopsis>
+         <para>Tolerancia de <link 
linkend="gel-function-ErrorFunction"><function>ErrorFunction</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
+         <listitem>
+          <synopsis>FloatPrecision = número</synopsis>
+          <para>Precisión en coma flotante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
+         <listitem>
+          <synopsis>FullExpressions = booleano</synopsis>
+          <para>Imprimir expresiones completas, incluso si son de más de una línea.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
+         <listitem>
+          <synopsis>GaussDistributionTolerance = número</synopsis>
+         <para>Tolerancia de la función <link 
linkend="gel-function-GaussDistribution"><function>GaussDistribution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
+         <listitem>
+          <synopsis>IntegerOutputBase = número</synopsis>
+          <para>Base de salida de enteros.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
+         <listitem>
+          <synopsis>IsPrimeMillerRabinReps = número</synopsis>
+         <para>Número de tests de Miller-Rabin adicionales que ejecutar sobre un número antes de declararlo 
primo en <link linkend="gel-function-IsPrime"><function>IsPrime</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
+         <listitem>
+          <synopsis>LinePlotDrawLegends = true</synopsis>
+          <para>Le dice a Genius cómo dibujar las leyendas para las <link 
linkend="genius-gel-function-list-plotting">funciones para dibujar líneas</link> tales como <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
+         <listitem>
+          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
+          <para>Le dice a Genius que dibuje las etiquetas de los ejes cuando se utilizan <link 
linkend="genius-gel-function-list-plotting">funciones para dibujar líneas</link> como <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
+         <listitem>
+          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
+          <para>Le dice a Genius qué nombres de variable se usan como nombres predeterminados para <link 
linkend="genius-gel-function-list-plotting">funciones para dibujar líneas</link> tales como <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> y compañía.</para>
+         <para>Desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
+         <listitem>
+          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
+          <para>Establece los límites para las<link linkend="genius-gel-function-list-plotting">funciones 
para dibujar líneas</link> tales como <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
+         <listitem>
+          <synopsis>MaxDigits = número</synopsis>
+          <para>Máximo de cifras que mostrar.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
+         <listitem>
+          <synopsis>MaxErrors = número</synopsis>
+          <para>Máximo de errores que mostrar.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
+         <listitem>
+          <synopsis>MixedFractions = booleano</synopsis>
+          <para>Si es cierto, las fracciones mixtas se imprimen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
+         <listitem>
+          <synopsis>NumericalIntegralFunction = función</synopsis>
+         <para>La función usada para la integración en <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
+         <listitem>
+          <synopsis>NumericalIntegralSteps = número</synopsis>
+         <para>Pasos que realizar en <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
+         <listitem>
+          <synopsis>OutputChopExponent = número</synopsis>
+         <para>Cuando otro número que se imprime en el objeto (una matriz o un valor) es mayor que 
10<superscript>-OutputChopWhenExponent</superscript>, y el número que se imprime es menor que 
10<superscript>-OutputChopExponent</superscript>, entonces se mostrará <computeroutput>0.0</computeroutput> 
en lugar del número.</para>
+<para>La salida nunca se corta si <function>OutputChopExponent</function> es cero. El número será un entero 
positivo.</para>
+<para>Si quiere que la salida siempre se corte según <function>OutputChopExponent</function>, configure 
<function>OutputChopWhenExponent</function>, para un valor mayor o igual a 
<function>OutputChopExponent</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
+         <listitem>
+          <synopsis>OutputChopWhenExponent = número</synopsis>
+         <para>Cuando recortar la salida. Consulte <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
+         <listitem>
+          <synopsis>OutputStyle = cadena</synopsis>
+          <para>Estilo de salida, puede ser <literal>normal</literal>, <literal>latex</literal>, 
<literal>mathml</literal> o <literal>troff</literal>.</para>
+         <para>Esto afecta principalmente a cómo las matrices y fracciones se imprimen y es útil para pegar 
en los documentos. Por ejemplo, puede configurarlo en LaTeX usando: <programlisting>OutputStyle = "latex"
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
+         <listitem>
+          <synopsis>ResultsAsFloats = booleano</synopsis>
+          <para>Convertir todos los resultados a flotantes antes de imprimir.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
+         <listitem>
+          <synopsis>ScientificNotation = booleano</synopsis>
+          <para>Usar notación científica.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
+         <listitem>
+          <synopsis>SlopefieldTicks = [vertical,horizontal]</synopsis>
+          <para>Establece el número de pasos verticales y horizontales en un diagrama de pendientes. 
(Consulte <link linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>).</para>
+         <para>Desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
+         <listitem>
+          <synopsis>SumProductNumberOfTries = número</synopsis>
+         <para>Cuántas iteraciones probar para <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> y <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
+         <listitem>
+          <synopsis>SumProductSFS = número</synopsis>
+          <para>La cantidad de pasos consecutivos para estar dentro de los límites para <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> y <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
+         <listitem>
+          <synopsis>SumProductTolerance = número</synopsis>
+          <para>Tolerancia para <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> y <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLegends = true</synopsis>
+          <para>Le dice a Genius cómo dibujar las leyendas para las <link 
linkend="genius-gel-function-list-plotting">funciones de dibujado de superficie</link> tales como <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
+         <listitem>
+          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
+          <para>Indica a Genius los nombres de variables que se usan como nombres predeterminados para las 
<link linkend="genius-gel-function-list-plotting">funciones de superficie de dibujado</link> que utiliza 
<link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>. Compruebe que 
<varname>z</varname> no se refiere al eje dependiente (vertical), sino que a la variable compleja 
independiente <userinput>z=x+iy</userinput>.</para>
+         <para>Desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
+         <listitem>
+          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
+          <para>Establece los límites de la superficie de dibujado (consulte <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
+         <listitem>
+          <synopsis>VectorfieldNormalized = true</synopsis>
+          <para>Indica si la longitud de las flechas tendrá un tamaño normalizado en el trazado dentro del 
campo vectorial. Si es cierto, en el campo vectorial solo aparecerá la dirección y no la magnitud. (Consulte 
<link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
+         <listitem>
+          <synopsis>VectorfieldTicks = [vertical,horizontal]</synopsis>
+          <para>Establece el número de pasos verticales y horizontales en un gráfico de campo de vectores. 
(Observe <link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
+         <para>Desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-constants">
+      <title>Constantes</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
+         <listitem>
+          <synopsis>CatalanConstant</synopsis>
+          <para>Constante de Catalan, aproximadamente 0,915... Se define para las series donde los términos 
son <userinput>(-1^k)/((2*k+1)^2)</userinput>, donde <varname>k</varname> tiene un rango desde 0 a 
infinito.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Catalan%27s_constant";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/CatalansConstant.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
+         <listitem>
+          <synopsis>EulerConstant</synopsis>
+          <para>Alias: <function>gamma</function></para>
+          <para>Constante gamma de Euler. También llamada constante de Euler-Mascheroni.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler-Mascheroni_constant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MascheroniConstant";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
+         <listitem>
+          <synopsis>GoldenRatio</synopsis>
+          <para>El número áureo.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Golden_ratio";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GoldenRatio";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GoldenRatio.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Gravity"/>Gravity</term>
+         <listitem>
+          <synopsis>Gravedad</synopsis>
+         <para>La aceleración en caída libre al nivel del mar en metros por segundos al cuadrado. Es la 
constante de gravedad estandarizada y su valor es 9.80665. La gravedad en un desfiladero de un bosque es 
diferente debido principalmente a la diferencia de altitud y al hecho de que la Tierra no es perfectamente 
redonda ni uniforme.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Standard_gravity";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-e"/>e</term>
+         <listitem>
+          <synopsis>e</synopsis>
+          <para>La base del logaritmo natural. <userinput>e^x</userinput> es la función exponencial <link 
linkend="gel-function-exp"><function>exp</function></link>. Su valor es aproximadamente 2.71828182846... Este 
número se llama número de Euler, aúnque hay varios números que se llaman también Euler. Un ejemplo es la 
constante gamma: <link linkend="gel-function-EulerConstant"><function>Constante de 
Euler</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/E_(mathematical_constant)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/E";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/e.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-pi"/>pi</term>
+         <listitem>
+          <synopsis>pi</synopsis>
+          <para>El número pi, que es la relación de la circunferencia de un círculo con su diámetro. Esto es 
aproximadamente 3,14159265359...</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Pi";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Pi";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pi.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-numeric">
+      <title>Numérico</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
+         <listitem>
+          <synopsis>AbsoluteValue (x)</synopsis>
+          <para>Alias: <function>abs</function></para>
+          <para>Valor absoluto de un número y, si <varname>x</varname> es un valor complejo, el módulo de 
<varname>x</varname>. Es decir, es la distancia entre <varname>x</varname> y el origen. Esto es equivalente a 
<userinput>|x|</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Absolute_value";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/AbsoluteValue";>Planetmath (absolute value)</ulink>,
+           <ulink url="http://planetmath.org/ModulusOfComplexNumber";>Planetmath (modulus)</ulink>,
+           <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld (absolute value)</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ComplexModulus.html";>Mathworld (complex modulus)</ulink>
+for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Chop"/>Chop</term>
+         <listitem>
+          <synopsis>Chop (x)</synopsis>
+          <para>Reemplazar números muy pequeños por cero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
+         <listitem>
+          <synopsis>ComplexConjugate (z)</synopsis>
+          <para>Alias: <function>conj</function><function>Conj</function></para>
+          <para>Calcula el conjugado complejo del número complejo <varname>z</varname>. Si 
<varname>z</varname> es un vector o una matriz, se conjugan todos sus elementos.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Complex_conjugate";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Denominator"/>Denominator</term>
+         <listitem>
+          <synopsis>Denominator (x)</synopsis>
+          <para>Obtener el denominador de un número racional.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Denominator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
+         <listitem>
+          <synopsis>FractionalPart (x)</synopsis>
+          <para>Devolver la parte fraccional de un número.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fractional_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Im"/>Im</term>
+         <listitem>
+          <synopsis>Im (z)</synopsis>
+          <para>Alias: <function>ImaginaryPart</function></para>
+          <para>Obtener la parte imaginaria de un número complejo. Por ejemplo 
<userinput>Re(3+4i)</userinput> yields 4.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Imaginary_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
+         <listitem>
+          <synopsis>IntegerQuotient (m,n)</synopsis>
+          <para>División sin resto.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
+         <listitem>
+          <synopsis>IsComplex (num)</synopsis>
+         <para>Comprueba si el argumento es un número complejo (no real). Observe que hacemos énfasis en 
número no real. Es decir, <userinput>IsComplex(3)</userinput> que devuelve «false», mientras que 
<userinput>IsComplex(3-1i)</userinput> devuelve «true».</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
+         <listitem>
+          <synopsis>IsComplexRational (num)</synopsis>
+         <para>Comprobar si el argumento es, posiblemente, un número racional complejo. Esto es, si tanto la 
parte real como la imaginaria se dan como números racionales. Por supuesto, racional significa simplemente 
que «no se almacena como un número en coma flotante».</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
+         <listitem>
+          <synopsis>IsFloat (num)</synopsis>
+          <para>Comprobar si el argumento es un número real en coma flotante (no complejo).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
+         <listitem>
+          <synopsis>IsGaussInteger (num)</synopsis>
+          <para>Alias: <function>IsComplexInteger</function></para>
+         <para>Comprueba si un argumento es un posible número entero complejo. Es decir, un entero complejo 
es un número de la forma <userinput>n+1i*m</userinput> donde <varname>n</varname> y <varname>m</varname> son 
enteros.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
+         <listitem>
+          <synopsis>IsInteger (num)</synopsis>
+          <para>Comprobar si el argumento es un entero (no complejo).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
+         <listitem>
+          <synopsis>IsNonNegativeInteger (num)</synopsis>
+          <para>Comprobar si el argumento es un entero real no negativo. Esto es, cualquier número entero 
positivo o cero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
+         <listitem>
+          <synopsis>IsPositiveInteger (num)</synopsis>
+          <para>Alias: <function>IsNaturalNumber</function></para>
+          <para>Comprueba si el argumento es un entero real positivo. Tenga en cuenta que se acepta el 
convenio de que 0 no es un número natural.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsRational"/>IsRational</term>
+         <listitem>
+          <synopsis>IsRational (num)</synopsis>
+          <para>Comprobar si el argumento es un número racional (no complejo). Por supuesto, racional 
significa «no almacenado como un número en coma flotante».</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsReal"/>IsReal</term>
+         <listitem>
+          <synopsis>IsReal (num)</synopsis>
+          <para>Comprobar si el argumento es un número real</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Numerator"/>Numerator</term>
+         <listitem>
+          <synopsis>Numerator (x)</synopsis>
+          <para>Obtener el numerador de un número racional.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Numerator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Re"/>Re</term>
+         <listitem>
+          <synopsis>Re (z)</synopsis>
+          <para>Alias: <function>RealPart</function></para>
+         <para>Obtiene la parte real de un número complejo. Por ejemplo <userinput>Re(3+4i)</userinput> 
devuelve 3.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Real_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Sign"/>Sign</term>
+         <listitem>
+          <synopsis>Sign (x)</synopsis>
+          <para>Alias: <function>sign</function></para>
+          <para>Devolver el signo de un número. Devuelve <literal>-1</literal> si es negativo, 
<literal>0</literal> si es cero y <literal>1</literal> si es positivo. Si <varname>x</varname> es un valor 
complejo <function>Sign</function> devuelve su dirección o 0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ceil"/>ceil</term>
+         <listitem>
+          <synopsis>ceil (x)</synopsis>
+          <para>Alias: <function>Ceiling</function></para>
+         <para>Obtener el menor número entero mayor o igual a <varname>n</varname>. Ejemplos: 
<screen><prompt>genius&gt;</prompt> <userinput>ceil(1,1)</userinput>
+= 2
+<prompt>genius&gt;</prompt> <userinput>ceil(-1,1)</userinput>
+= -1
+</screen></para>
+          <para>Tenga en cuenta que los números en coma flotante se almacenan en binario y que puede que el 
resultado no sea lo que espera. Por ejemplo <userinput>ceil(420/4.2)</userinput> devuelve 101 en vez de 100. 
Esto sucede porque en realidad 4,2 es ligeramente menor que 4,2. Utilice la representación racional 
<userinput>42/10</userinput> si quiere exactitud aritmética.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exp"/>exp</term>
+         <listitem>
+          <synopsis>exp (x)</synopsis>
+          <para>La función exponencial. Esto es la función <userinput>e^x</userinput> donde 
<varname>e</varname> es la <link linkend="gel-function-e">base del logaritmo natural</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Exponential_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ExponentialFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-float"/>float</term>
+         <listitem>
+          <synopsis>float (x)</synopsis>
+          <para>Convertir un número en un valor en coma flotante. Esto devuelve la representación en coma 
flotante del número <varname>x</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-floor"/>floor</term>
+         <listitem>
+          <synopsis>floor (x)</synopsis>
+          <para>Alias: <function>Floor</function></para>
+          <para>Obtener el entero más alto menor o igual que <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ln"/>ln</term>
+         <listitem>
+          <synopsis>ln (x)</synopsis>
+          <para>El logaritmo natural, logaritmo en base <varname>e</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Natural_logarithm";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NaturalLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log"/>log</term>
+         <listitem>
+          <synopsis>log (x)</synopsis>
+          <synopsis>log (x,b)</synopsis>
+         <para>Logaritmo de <varname>x</varname> en base <varname>b</varname> (se llama <link 
linkend="gel-function-DiscreteLog"><function>DiscreteLog</function></link> en modo módulo), si no se indica 
la base, se utiliza <link linkend="gel-function-e"><varname>e</varname></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log10"/>log10</term>
+         <listitem>
+          <synopsis>log10 (x)</synopsis>
+          <para>Logaritmo de <varname>x</varname> en base 10.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log2"/>log2</term>
+         <listitem>
+          <synopsis>log2 (x)</synopsis>
+          <para>Alias: <function>lg</function></para>
+          <para>Logaritmo de <varname>x</varname> en base 2.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-max"/>max</term>
+         <listitem>
+          <synopsis>max (a,args...)</synopsis>
+          <para>Alias: <function>Max</function><function>Maximum</function></para>
+          <para>Devuelve el máximo de los argumentos o las matrices.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-min"/>min</term>
+         <listitem>
+          <synopsis>min (a,args...)</synopsis>
+          <para>Alias: <function>Min</function><function>Minimum</function></para>
+          <para>Devuelve el mínimo de los argumentos o las matrices.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rand"/>rand</term>
+         <listitem>
+          <synopsis>rand (tamaño...)</synopsis>
+          <para>Generar valores en coma flotante aleatorios en el rango <literal>[0,1)</literal>. Si se 
indica «tamaño», entonces devuelve una matriz (si se especifican dos números) o un vector (si se especifica 
un número).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-randint"/>randint</term>
+         <listitem>
+          <synopsis>randint (máx,tamaño...)</synopsis>
+          <para>Generar número enteros aleatorios en el rango <literal>[0,máx)</literal>. Si se indica 
«tamaño», entonces devuelve una matriz (si se especifican dos números) o un vector (si se especifica un 
número). Por ejemplo, <screen><prompt>genius&gt;</prompt> <userinput>randint(4)</userinput>
+= 3
+<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
+=
+[0      1]
+<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
+=
+[2      2       1
+ 0      0       3]
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-round"/>round</term>
+         <listitem>
+          <synopsis>round (x)</synopsis>
+          <para>Alias: <function>Round</function></para>
+          <para>Redondear un número.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sqrt"/>sqrt</term>
+         <listitem>
+          <synopsis>sqrt (x)</synopsis>
+          <para>Alias: <function>SquareRoot</function></para>
+          <para>La raíz cuadrada. Cuando se opera con «módulo», algunos enteros devolverán un valor 
<constant>null</constant> o un vector de raíces cuadradas. Ejemplos: <screen><prompt>genius&gt;</prompt> 
<userinput>sqrt(2)</userinput>
+= 1.41421356237
+<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
+= 1i
+<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
+=
+[2      5]
+<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
+= 4
+</screen></para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Square_root";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/SquareRoot";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-trunc"/>trunc</term>
+         <listitem>
+          <synopsis>trunc (x)</synopsis>
+          <para>Alias: <function>Truncate</function><function>IntegerPart</function></para>
+          <para>Truncar el número a un entero (devolver la parte entera)</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-trigonometry">
+      <title>Trigonometría</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-acos"/>acos</term>
+         <listitem>
+          <synopsis>acos (x)</synopsis>
+          <para>Alias: <function>arccos</function></para>
+          <para>La función arccos (inversa del cos).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acosh"/>acosh</term>
+         <listitem>
+          <synopsis>acosh (x)</synopsis>
+          <para>Alias: <function>arccosh</function></para>
+          <para>La función arccosh (inversa del cosh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acot"/>acot</term>
+         <listitem>
+          <synopsis>acot (x)</synopsis>
+          <para>Alias: <function>arccot</function></para>
+          <para>La función arccot (inversa de la cot)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acoth"/>acoth</term>
+         <listitem>
+          <synopsis>acoth (x)</synopsis>
+          <para>Alias: <function>arccoth</function></para>
+          <para>La función arccoth (inversa de la coth).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsc"/>acsc</term>
+         <listitem>
+          <synopsis>acsc (x)</synopsis>
+          <para>Alias: <function>arccsc</function></para>
+          <para>La inversa de la función cosecante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsch"/>acsch</term>
+         <listitem>
+          <synopsis>acsch (x)</synopsis>
+          <para>Alias: <function>arccsch</function></para>
+          <para>La inversa de la función cosecante hiperbólica.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asec"/>asec</term>
+         <listitem>
+          <synopsis>asec (x)</synopsis>
+          <para>Alias: <function>arcsec</function></para>
+          <para>La inversa de la función secante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asech"/>asech</term>
+         <listitem>
+          <synopsis>asech (x)</synopsis>
+          <para>Alias: <function>arcsech</function></para>
+          <para>La inversa de la función secante hiperbólica.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asin"/>asin</term>
+         <listitem>
+          <synopsis>asin (x)</synopsis>
+          <para>Alias: <function>arcsin</function></para>
+          <para>La función arcsen (inversa del sen).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asinh"/>asinh</term>
+         <listitem>
+          <synopsis>asinh (x)</synopsis>
+          <para>Alias: <function>arcsinh</function></para>
+          <para>La función arcsenh (inversa del senh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan"/>atan</term>
+         <listitem>
+          <synopsis>atan (x)</synopsis>
+          <para>Alias: <function>arctan</function></para>
+          <para>Calcula la función «arctan» (inversa de «tan»).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Arctangent";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atanh"/>atanh</term>
+         <listitem>
+          <synopsis>atanh (x)</synopsis>
+          <para>Alias: <function>arctanh</function></para>
+          <para>La función arctanh (inversa de la tanh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan2"/>atan2</term>
+         <listitem>
+          <synopsis>atan2 (y, x)</synopsis>
+          <para>Alias: <function>arctan2</function></para>
+          <para>Calcula la función «arctan2». Si <userinput>x&gt;0</userinput>, entonces devuelve 
<userinput>atan(y/x)</userinput>. Si <userinput>x&lt;0</userinput>, entonces devuelve <userinput>sign(y) * 
(pi - atan(|y/x|)</userinput>. Cuando <userinput>x=0</userinput> devuelve <userinput>sign(y) *
+         pi/2</userinput>. <userinput>atan2(0,0)</userinput> devuelve 0 en lugar de fallar.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Atan2";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cos"/>cos</term>
+         <listitem>
+          <synopsis>cos (x)</synopsis>
+          <para>Calcula la función coseno.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cosh"/>cosh</term>
+         <listitem>
+          <synopsis>cosh (x)</synopsis>
+          <para>Calcula la función coseno hiperbólico.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> 
o <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cot"/>cot</term>
+         <listitem>
+          <synopsis>cot (x)</synopsis>
+          <para>La función cotangente.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-coth"/>coth</term>
+         <listitem>
+          <synopsis>coth (x)</synopsis>
+          <para>La función cotangente hiperbólica.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> 
o <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csc"/>csc</term>
+         <listitem>
+          <synopsis>csc (x)</synopsis>
+          <para>La función cosecante.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csch"/>csch</term>
+         <listitem>
+          <synopsis>csch (x)</synopsis>
+          <para>La función cosecante hiperbólica.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> 
o <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sec"/>sec</term>
+         <listitem>
+          <synopsis>sec (x)</synopsis>
+          <para>La función secante.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sech"/>sech</term>
+         <listitem>
+          <synopsis>sech (x)</synopsis>
+          <para>La función secante hiperbólica.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> 
o <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sin"/>sin</term>
+         <listitem>
+          <synopsis>sin (x)</synopsis>
+          <para>Calcula la función seno.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinh"/>sinh</term>
+         <listitem>
+          <synopsis>sinh (x)</synopsis>
+          <para>Calcula la función seno hiperbólico.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> 
o <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tan"/>tan</term>
+         <listitem>
+          <synopsis>tan (x)</synopsis>
+          <para>Calcula la función tangente.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tanh"/>tanh</term>
+         <listitem>
+          <synopsis>tanh (x)</synopsis>
+          <para>La función tangente hiperbólica.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> 
o <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-number-theory">
+      <title>Teoría de números</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
+         <listitem>
+          <synopsis>AreRelativelyPrime (a,b)</synopsis>
+          <para>¿Son los números reales <varname>a</varname> and <varname>b</varname> primos entre sí? 
Devuelve <constant>true</constant> o <constant>false</constant>.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Coprime_integers";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/RelativelyPrime";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/RelativelyPrime.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
+         <listitem>
+          <synopsis>BernoulliNumber (n)</synopsis>
+          <para>Devolver el <varname>n</varname>-ésimo número de Bernoulli.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bernoulli_number";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/BernoulliNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
+         <listitem>
+          <synopsis>ChineseRemainder (a,m)</synopsis>
+          <para>Alias: <function>CRT</function></para>
+         <para>Encontrar la <varname>x</varname> que resuelve el sistema dado por el vector 
<varname>a</varname> y el módulo de los elementos de <varname>m</varname>, utilizando el «teorema chino del 
resto».</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Chinese_remainder_theorem";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ChineseRemainderTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
+         <listitem>
+          <synopsis>CombineFactorizations (a,b)</synopsis>
+         <para>Dadas dos factorizaciones, dar la factorización del producto.</para>
+         <para>Consulte la sección<link linkend="gel-function-Factorize">factorizar</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
+         <listitem>
+          <synopsis>ConvertFromBase (v,b)</synopsis>
+          <para>Convertir un vector de valores mostrando potencias de b a un número.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
+         <listitem>
+          <synopsis>ConvertToBase (n,b)</synopsis>
+          <para>Convertir un número en un vector de potencias para elementos en base 
<varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
+         <listitem>
+          <synopsis>DiscreteLog (n,b,q)</synopsis>
+          <para>Encontrar el logaritmo discreto de <varname>n</varname> en base <varname>b</varname> en 
F<subscript>q</subscript>, el campo finito de orden <varname>q</varname>, donde <varname>q</varname> es 
primo, utilizando el algoritmo de Silver-Pohlig-Hellman.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Discrete_logarithm";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/DiscreteLogarithm";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/DiscreteLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Divides"/>Divides</term>
+         <listitem>
+          <synopsis>Divides (m,n)</synopsis>
+          <para>Comprueba la divisibilidad (si <varname>m</varname> divide a <varname>n</varname>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
+         <listitem>
+          <synopsis>EulerPhi (n)</synopsis>
+          <para>Calcular la función phi de Euler para <varname>n</varname>, que es el número de enteros 
entre 1 y <varname>n</varname> primo relativo con <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler_phi";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/EulerPhifunction";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/TotientFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
+         <listitem>
+          <synopsis>ExactDivision (n,d)</synopsis>
+          <para>Devuelve <userinput>n/d</userinput> pero solo si <varname>d</varname> es divisible entre 
<varname>n</varname>. Si <varname>d</varname> no es divisible entre <varname>n</varname> entonces esta 
función devuelve basura. Esto es mucho mas rápido para números muy grandes que la operación 
<userinput>n/d</userinput>, pero sólo es útil si se sabe que la división es exacta.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorize"/>Factorize</term>
+         <listitem>
+          <synopsis>Factorize (n)</synopsis>
+          <para>Devuelve la factorización de un número como una matriz. La primera fila son los números 
primos en la factorización (incluido el 1) y la segunda fila son las potencias. Por ejemplo: 
<screen><prompt>genius&gt;</prompt> <userinput>Factorize(11*11*13)</userinput>
+=
+[1      11      13
+ 1      2       1]</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Factorization";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factors"/>Factors</term>
+         <listitem>
+          <synopsis>Factors (n)</synopsis>
+          <para>Devuelve todos los factores de <varname>n</varname> en un vector. Esto incluye todos los 
factores no primos como buenos. Incluye 1 y el mismo número. Así por ejemplo, para imprimir todos los números 
perfectos (aquellos que son sumas de sus factores) hasta el número 1000 (esto es muy ineficiente) haga  
<programlisting>for n=1 to 1000 do (
+    if MatrixSum (Factors(n)) == 2*n then
+        print(n)
+)
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
+         <listitem>
+          <synopsis>FermatFactorization (n,tries)</synopsis>
+          <para>Probar la factorización de Fermat de <varname>n</varname> en 
<userinput>(t-s)*(t+s)</userinput>, devuelve <varname>t</varname> y <varname>s</varname> como un vector si es 
posible, <constant>null</constant> de otra manera <varname>tries</varname> especifica el número de intentos 
antes de abandonar </para>
+          <para>Es una buena factorización si su número es el producto de dos factores que están muy 
cerca.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fermat_factorization";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindPrimitiveElementMod (q)</synopsis>
+          <para>Encontrar el primer elemento primitivo en F<subscript>q</subscript>, en el grupo de orden 
finito<varname>q</varname>. Por supuesto, <varname>q</varname> debe de ser primo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
+          <para>Encontrar un elemento primitivo aleatorio en F<subscript>q</subscript>, en el grupo de orden 
finito <varname>q</varname> (q debe de ser primo)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
+         <listitem>
+          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
+          <para>Calcula la base del logaritmo discreto <varname>b</varname> de n en 
F<subscript>q</subscript>, el grupo finito de orden <varname>q</varname> (<varname>q</varname> un primo), 
utilizando el factor base <varname>S</varname>. <varname>S</varname> será una columna de números primos y una 
segunda columna precalculada por <link 
linkend="gel-function-IndexCalculusPrecalculation"><function>IndexCalculusPrecalculation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
+         <listitem>
+          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
+         <para>Ejecuta los pasos para los cálculos previos de <link 
linkend="gel-function-IndexCalculus"><function>IndexCalculus</function></link> para logaritmos de base 
<varname>b</varname> en F<subscript>q</subscript>, del grupo finito de orden <varname>q</varname> 
(<varname>q</varname> un primo), para el factor base <varname>S</varname> (donde <varname>S</varname> es una 
columna de vector de primos). Los registros se calculan previamente y se devuelven en la segunda 
columna.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsEven"/>IsEven</term>
+         <listitem>
+          <synopsis>IsEven (n)</synopsis>
+          <para>Comprueba si un entero es par.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
+         <listitem>
+          <synopsis>IsMersennePrimeExponent (p)</synopsis>
+          <para>Comprueba si un entero positivo <varname>p</varname> es un exponente primo de Mersenne. Esto 
es si 2<superscript>p</superscript>-1 es un primo. Esto lo hace mirando en una tabla de valores conocidos que 
es relativamente corta. Vea también <link 
linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> y <link 
linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
+         <listitem>
+          <synopsis>IsNthPower (m,n)</synopsis>
+          <para>Comprueba si un número racional <varname>m</varname> es una potencia 
<varname>n</varname>-ésima perfecta. Consulte <link 
linkend="gel-function-IsPerfectPower">IsPerfectPower</link> y <link 
linkend="gel-function-IsPerfectSquare">IsPerfectSquare</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
+         <listitem>
+          <synopsis>IsOdd (n)</synopsis>
+          <para>Comprueba su un entero es impar.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
+         <listitem>
+          <synopsis>IsPerfectPower (n)</synopsis>
+          <para>Comprobar si un entero es una potencia perfecta, a<superscript>b</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
+         <listitem>
+          <synopsis>IsPerfectSquare (n)</synopsis>
+          <para>
+           Check an integer for being a perfect square of an integer.  The number must
+           be an integer.  Negative integers are of course never perfect
+           squares of integers.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
+         <listitem>
+          <synopsis>IsPrime (n)</synopsis>
+          <para>Comprueba si dos números enteros son primos, para números menores que 2.5e10 la respuesta es 
determinista (si la hipótesis de Riemann es verdadera). Para números más grandes, la probabilidad de un falso 
positivo depende de <link 
linkend="gel-function-IsPrimeMillerRabinReps"><function>IsPrimeMillerRabinReps</function></link>. Significa 
que la probabilidad de un falso positivo es 1/4 de la potencia <function>IsPrimeMillerRabinReps</function>. 
De manera predeterminada el valor de 22 produce una probabilidad entorno a 5.7e-14.</para>
+          <para>Si se devuelve <constant>false</constant>, puede estar seguro de que el número es un 
compuesto. Si quiere estar totalmente seguro de que tiene un número primo use <link 
linkend="gel-function-MillerRabinTestSure"><function>MillerRabinTestSure</function></link> pero esto le puede 
llevar mucho más tiempo.</para>
+          <para>Consulte <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
+         <listitem>
+          <synopsis>IsPrimitiveMod (g,q)</synopsis>
+          <para>Comprobar si <varname>g</varname> es primario en F<subscript>q</subscript>, el grupo finito 
de orden <varname>q</varname>, donde <varname>q</varname> es un primo. Si <varname>q</varname> no es un primo 
los resultados son falsos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
+         <listitem>
+          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
+          <para>Comprobar si <varname>g</varname> es primario en F<subscript>q</subscript>, el grupo finito 
de orden <varname>q</varname>, donde <varname>q</varname> es un primo y <varname>f</varname> es un vector de 
factores primos de <varname>q</varname>-1. Si <varname>q</varname> no es primo los resultados son 
falsos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
+         <listitem>
+          <synopsis>IsPseudoprime (n,b)</synopsis>
+          <para>Si <varname>n</varname> es pseudo-primo en base <varname>b</varname> pero no un primo, esto 
es si <userinput>b^(n-1) == 1 mod n</userinput>. Esto llama a <link 
linkend="gel-function-PseudoprimeTest"><function>PseudoprimeTest</function></link></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
+         <listitem>
+          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
+          <para>Compruebe si <varname>n</varname> es un pseudo-primo fuerte en base <varname>b</varname> 
pero no un primo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
+         <listitem>
+          <synopsis>Jacobi (a,b)</synopsis>
+          <para>Alias: <function>JacobiSymbol</function></para>
+          <para>Calcular el símbolo de Jacobi (a/b) (b debe ser impar).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
+         <listitem>
+          <synopsis>JacobiKronecker (a,b)</synopsis>
+          <para>Alias: <function>JacobiKroneckerSymbol</function></para>
+          <para>Calcular el símbolo de Jacobi (a/b) con extensión de Kronecker (a/2)=(2/a) cuando sea 
impar, o (a/2)=0 cuando sea par.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
+         <listitem>
+          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
+          <para>Devuelve el resto de <varname>a</varname> mod <varname>n</varname> con el último valor 
absoluto (en el intervalo -n/2 to n/2).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Legendre"/>Legendre</term>
+         <listitem>
+          <synopsis>Legendre (a,p)</synopsis>
+          <para>Alias: <function>LegendreSymbol</function></para>
+          <para>Calcular el símbolo de Legendre (a/p).</para>
+          <para>Consulte <ulink url="http://planetmath.org/LegendreSymbol";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/LegendreSymbol.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
+         <listitem>
+          <synopsis>LucasLehmer (p)</synopsis>
+          <para>Compruebe si 2<superscript>p</superscript>-1 es un primo de Mersenne utilizando la prueba de 
Lucas-Lehmer. Consulte también <link 
linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> y <link 
linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasLhemer";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Lucas-LehmerTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
+         <listitem>
+          <synopsis>LucasNumber (n)</synopsis>
+          <para>Devuelve el <varname>n</varname>-ésimo número de Lucas.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas_number";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasNumbers";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LucasNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
+         <listitem>
+          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
+          <para>Devuelve todos los factores primos de un número.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
+         <listitem>
+          <synopsis>MersennePrimeExponents</synopsis>
+          <para>Un vector de Mersenne de exponentes primos conocidos, esto es una lista de enteros positivos 
<varname>p</varname> tal que 2<superscript>p</superscript>-1 es un primo. Consulte también <link 
linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link> y <link 
linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
+         <listitem>
+          <synopsis>MillerRabinTest (n,reps)</synopsis>
+          <para>Utiliza la prueba de números primarios Miller-Rabin de <varname>n</varname>, 
<varname>reps</varname> número de veces. La probabilidad de falso positivo es 
<userinput>(1/4)^reps</userinput>. Probablemente es mejor usar <link 
linkend="gel-function-IsPrime"><function>IsPrime</function></link> ya que es más rápido y mejor sobre enteros 
más pequeños.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink> 
or
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
+         <listitem>
+          <synopsis>MillerRabinTestSure (n)</synopsis>
+          <para>Utiliza la prueba Miller-Rabin de números primos de <varname>n</varname> con las bases 
suficientes que asuman la hipótesis generalizada de Reimann, el resultado es determinista.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink>, or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
+         <listitem>
+          <synopsis>ModInvert (n,m)</synopsis>
+          <para>Devuelve el inverso de n módulo m.</para>
+          <para>Consulte <ulink url="http://mathworld.wolfram.com/ModularInverse.html";>Mathworld</ulink> 
para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
+         <listitem>
+          <synopsis>MoebiusMu (n)</synopsis>
+          <para>Devuelve la función de Moebius «mu» de <varname>n</varname>. Esto es, devuelve 0 si 
<varname>n</varname> no es un producto entre primos distintos y <userinput>(-1)^k</userinput> si es un 
producto de <varname>k</varname> primos distintos.</para>
+          <para>Consulte <ulink url="http://planetmath.org/MoebiusFunction";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/MoebiusFunction.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
+         <listitem>
+          <synopsis>NextPrime (n)</synopsis>
+          <para>Devuelve el primo menor más grande que <varname>n</varname>. Los primos negativos se 
consideran primos y así para obtener el primo anterior, puede usar 
<userinput>-NextPrime(-n)</userinput>.</para>
+          <para>Esta función utiliza las GMP <function>mpz_nextprime</function> la cual vuelve a utilizar la 
prueba probabilística de Miller-Rabin (consulte también <link 
linkend="gel-function-MillerRabinTest"><function>MillerRabinTest</function></link>). La probabilidad de un 
falso positivo no se da, pero es lo suficientemente baja para prácticamente todos los propósitos.</para>
+          <para>Consulte <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
+         <listitem>
+          <synopsis>PadicValuation (n,p)</synopsis>
+          <para>Devuelve la evaluación del número «p-adic» (número de ceros que va dejando en base 
<varname>p</varname>).</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/P-adic_order";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/PAdicValuation";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
+         <listitem>
+          <synopsis>PowerMod (a,b,m)</synopsis>
+          <para>Calcula <userinput>a^b mod m</userinput>. La potencia <varname>b</varname> de 
<varname>a</varname> módulo <varname>m</varname>. No es necesario utilizar esta función ya que se utiliza 
automáticamente en modo módulo. Por lo tanto <userinput>a^b mod m</userinput> es igual de rápido.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Prime"/>Prime</term>
+         <listitem>
+          <synopsis>Prime (n)</synopsis>
+          <para>Alias: <function>prime</function></para>
+          <para>Devuelve el <varname>n</varname>-ésimo primo (hasta un límite).</para>
+          <para>Consulte <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
+         <listitem>
+          <synopsis>PrimeFactors (n)</synopsis>
+          <para>Devuelve todos los factores primos de un número como un vector.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Prime_factor";>Wikipedia</ulink> o 
<ulink url="http://mathworld.wolfram.com/PrimeFactor.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
+         <listitem>
+          <synopsis>PseudoprimeTest (n,b)</synopsis>
+         <para>Prueba de pseudo-primo, devuelve <constant>true</constant> sólo si <userinput>b^(n-1) == 1  
mod n</userinput></para>
+          <para>Consulte <ulink url="http://planetmath.org/Pseudoprime";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/Pseudoprime.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
+         <listitem>
+          <synopsis>RemoveFactor (n,m)</synopsis>
+          <para>Elimina todas las instancias del factor <varname>m</varname> desde el número 
<varname>n</varname>. Esto es, lo divide por la potencia mas grande de <varname>m</varname>, que divide 
<varname>n</varname>.</para>
+          <para>Consulte <ulink url="http://planetmath.org/Divisibility";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/Factor.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
+         <listitem>
+          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
+          <para>Buscar el logaritmo sencillo de <varname>n</varname> base <varname>b</varname> en 
F<subscript>q</subscript>, de grupo de orden finito <varname>q</varname>, donde <varname>q</varname> es un 
primo que utiliza el algoritmo de Silver-Pohlig-Hellman, dado <varname>f</varname> es la factorización de 
<varname>q</varname>-1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
+         <listitem>
+          <synopsis>SqrtModPrime (n,p)</synopsis>
+          <para>Buscar la raíz cuadrada de <varname>n</varname> módulo <varname>p</varname> (donde 
<varname>p</varname> es un primo). Se devuelve «null» si el resto no es cuadrático.</para>
+          <para>Consulte <ulink url="http://planetmath.org/QuadraticResidue";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/QuadraticResidue.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
+         <listitem>
+          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
+          <para>Ejecutar la prueba del pseudo-primo fuerte en base <varname>b</varname> de 
<varname>n</varname>.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Strong_pseudoprime";>Wikipedia</ulink>, 
<ulink url="http://planetmath.org/StrongPseudoprime";>Planetmath</ulink>, o <ulink 
url="http://mathworld.wolfram.com/StrongPseudoprime.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-gcd"/>gcd</term>
+         <listitem>
+          <synopsis>gcd (a,args...)</synopsis>
+          <para>Alias: <function>GCD</function></para>
+          <para>Máximo común divisor de enteros. Puede introducir tantos enteros en la lista de argumentos, 
o puede introducir un vector o una matriz de enteros. Si introduce más de una matriz del mismo tamaño, 
entonces el máximo común divisor se realiza elemento a elemento.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Greatest_common_divisor";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/GreatestCommonDivisor";>Planetmath</ulink>, o <ulink 
url="http://mathworld.wolfram.com/GreatestCommonDivisor.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-lcm"/>lcm</term>
+         <listitem>
+          <synopsis>lcm (a,args...)</synopsis>
+          <para>Alias: <function>LCM</function></para>
+          <para>Mínimo común múltiplo de enteros. Puede introducir tantos enteros en la lista de argumentos, 
o introducir un vector o matriz de enteros. Si introduce mas de una matriz del mismo tamaño, entonces el 
mínimo común múltiplo se realiza elemento a elemento.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Least_common_multiple";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/LeastCommonMultiple";>Planetmath</ulink>, o <ulink 
url="http://mathworld.wolfram.com/LeastCommonMultiple.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-matrix">
+      <title>Manipulación de matrices</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix (a,func)</synopsis>
+          <para>Aplicar una función sobre todos los elementos de una matriz y devolver una matriz con los 
resultados.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix2 (a,b,func)</synopsis>
+          <para>Aplicar una función sobre todos los elementos de dos matrices (o un valor y una matriz) y 
devolver una matriz con los resultados.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
+         <listitem>
+          <synopsis>ColumnsOf (M)</synopsis>
+          <para>Obtener las columnas de una matriz como un vector horizontal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
+         <listitem>
+          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
+          <para>Eliminar filas y columnas de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
+         <listitem>
+          <synopsis>CompoundMatrix (k,A)</synopsis>
+          <para>Calcular la k-ésima matriz compuesta de A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
+         <listitem>
+          <synopsis>CountZeroColumns (M)</synopsis>
+          <para>
+          Count the number of zero columns in a matrix.  For example,
+          once you column-reduce a matrix, you can use this to find
+          the nullity.  See <link linkend="gel-function-cref"><function>cref</function></link>
+          and <link linkend="gel-function-Nullity"><function>Nullity</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
+         <listitem>
+          <synopsis>DeleteColumn (M,col)</synopsis>
+          <para>Eliminar una columna de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
+         <listitem>
+          <synopsis>DeleteRow (M,row)</synopsis>
+          <para>Eliminar una fila de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
+         <listitem>
+          <synopsis>DiagonalOf (M)</synopsis>
+          <para>Obtener las entradas diagonales de una matriz como un vector columna.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_of_a_matrix#Matrices";>Wikipedia</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
+         <listitem>
+          <synopsis>DotProduct (u,v)</synopsis>
+         <para>Obtener el producto escalar de dos vectores. Los vectores serán del mismo tamaño. Se toman no 
conjugados por lo que tendrá forma bilineal incluso si se trabaja con números complejos. Esto es el producto 
escalar bilineal, no el producto escalar sesquilienal. Consulte <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link> para el producto interno estándar 
sesquilinear.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Dot_product";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/DotProduct";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
+         <listitem>
+          <synopsis>ExpandMatrix (M)</synopsis>
+          <para>Expandir una matriz de la misma manera que hacemos con la entrada sin comillas de la matriz. 
Esto es, se expande cualquier matriz interna como bloques. Esto es una manera de construir matrices fuera de 
las mas pequeñas y se hace de manera automática en la entrada a menos que la matriz se entrecomille.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
+         <listitem>
+          <synopsis>HermitianProduct (u,v)</synopsis>
+          <para>Alias: <function>InnerProduct</function></para>
+          <para>Obtener el producto de Hermitian de dos vectores. Los vectores serán del mismo tamaño. Esto 
es una forma «sesquilinear» para utilizar la identidad de la matriz.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Sesquilinear_form";>Wikipedia</ulink> o 
<ulink url="http://mathworld.wolfram.com/HermitianInnerProduct.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-I"/>I</term>
+         <listitem>
+          <synopsis>I (n)</synopsis>
+          <para>Alias: <function>eye</function></para>
+         <para>Devolver una matriz identidad del tamaño dado, es decir, de <varname>n</varname> por 
<varname>n</varname>. Si <varname>n</varname> es cero, devuelve <constant>null</constant>.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Identity_matrix";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/IdentityMatrix";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
+         <listitem>
+          <synopsis>IndexComplement (vec,msize)</synopsis>
+          <para>Devuelve el complemento índice de un vector de índices. Todo en base a uno. Por ejemplo para 
el vector <userinput>[2,3]</userinput> y tamaño <userinput>5</userinput>, devolverá 
<userinput>[1,4,5]</userinput>. Si <varname>msize</varname> es 0, siempre devolverá 
<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
+         <listitem>
+          <synopsis>IsDiagonal (M)</synopsis>
+          <para>Es una matriz diagonal.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
+         <listitem>
+          <synopsis>IsIdentity (x)</synopsis>
+          <para>Comprobar si una matriz es la matriz de identidad. Automáticamente devuelve 
<constant>false</constant> si la matriz no es cuadrada. También trabaja con números, en cualquier caso este 
es equivalente a <userinput>x==1</userinput>. Cuando <varname>x</varname> es <constant>null</constant> 
(imaginemos que es como una matriz de 0 por 0), no se genera error y se devuelve 
<constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
+         <listitem>
+          <synopsis>IsLowerTriangular (M)</synopsis>
+          <para>Es una matriz triangular inferior. Esto es, todas las entradas están por encima de la 
diagonal cero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
+         <listitem>
+          <synopsis>IsMatrixInteger (M)</synopsis>
+          <para>Comprobar si una matriz es una matriz de enteros (no compleja).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
+         <listitem>
+          <synopsis>IsMatrixNonnegative (M)</synopsis>
+          <para>Comprobar si una matriz no es negativa, es decir, si cada elemento no es negativo. No 
confunda matrices positivas con matrices semidefinidas positivas.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
+         <listitem>
+          <synopsis>IsMatrixPositive (M)</synopsis>
+         <para>Comprobar si una matriz es positiva, es decir, si cada elemento es positivo (y por lo tanto 
real). Individualmente, ningún elemento es 0. No confunda matrices positivas con matrices definidas 
positivas.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
+         <listitem>
+          <synopsis>IsMatrixRational (M)</synopsis>
+          <para>Comprobar si el argumento es una matriz de números racionales (no complejos)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
+         <listitem>
+          <synopsis>IsMatrixReal (M)</synopsis>
+          <para>Comprobar si el argumento es una matriz de números reales (no complejos).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
+         <listitem>
+          <synopsis>IsMatrixSquare (M)</synopsis>
+          <para>Comprobar si una matriz es cuadrada, es decir, si su altura es igual a su anchura.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
+         <listitem>
+          <synopsis>IsUpperTriangular (M)</synopsis>
+          <para>¿Es una matriz triangular superior?. Esto se cumple si todas las entradas por debajo de la 
diagonal son cero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
+         <listitem>
+          <synopsis>IsValueOnly (M)</synopsis>
+          <para>Comprobar si una matriz es una matriz de sólo números. Muchas funciones internas hacen esta 
comprobación. Los valores pueden ser cualquier número, incluyendo números complejos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsVector"/>IsVector</term>
+         <listitem>
+          <synopsis>IsVector (v)</synopsis>
+          <para>Indica si el argumento de un vector es horizontal o vertical. Genius no distingue entre una 
matriz y un vector, y un vector es justo una matriz 1 por <varname>n</varname> o <varname>n</varname> por 
1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsZero"/>IsZero</term>
+         <listitem>
+          <synopsis>IsZero (x)</synopsis>
+          <para>Comprobar si una matriz está compuesta toda por ceros. También trabaja con números, en 
cualquier caso esto es equivalente a <userinput>x==0</userinput>. Cuando <varname>x</varname> es 
<constant>null</constant> (imagine que es una matriz de 0 por 0), no se genera ningún error y devuelve 
<constant>true</constant> que indica que la matriz está compuesta de ceros.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
+         <listitem>
+          <synopsis>LowerTriangular (M)</synopsis>
+          <para>Devuelve una copia de la matriz <varname>M</varname> con todas las entradas por encima de la 
diagonal establecidas a cero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
+         <listitem>
+          <synopsis>MakeDiagonal (v,arg...)</synopsis>
+          <para>Alias: <function>diag</function></para>
+         <para>Hacer una matriz diagonal desde un vector. Alternativamente puede pasarle los valores como 
argumentos para la diagonal. Así <userinput>MakeDiagonal([1,2,3])</userinput> es lo mismo que 
<userinput>MakeDiagonal(1,2,3)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
+         <listitem>
+          <synopsis>MakeVector (A)</synopsis>
+          <para>Hacer un vector columna fuera de la matriz colocando columnas una encima de la otra. 
Devuelve <constant>null</constant> cuando se introduce <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
+         <listitem>
+          <synopsis>MatrixProduct (A)</synopsis>
+          <para>Calcular el producto de todos los elementos en una matriz o vector. Es decir, multiplicar 
todos los elementos y devolver un número que es el producto de todos los elementos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
+         <listitem>
+          <synopsis>MatrixSum (A)</synopsis>
+          <para>Calcular la suma de todos los elementos en una matriz o vector. Es decir, sumar todos los 
elementos y devolver un número que es el resultado de la suma de todos los elementos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
+         <listitem>
+          <synopsis>MatrixSumSquares (A)</synopsis>
+          <para>Calcular la suma de los cuadrados de todos los elementos en una matriz o vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroColumns"/>NonzeroColumns</term>
+         <listitem>
+          <synopsis>NonzeroColumns (M)</synopsis>
+          <para>Devuelve una fila vector de índices de columnas distintas de cero en la matriz 
<varname>M</varname>.</para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroElements"/>NonzeroElements</term>
+         <listitem>
+          <synopsis>NonzeroElements (v)</synopsis>
+          <para>Devuelve una fila vector de índices de elementos distintos de cero en el vector 
<varname>v</varname>.</para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
+         <listitem>
+          <synopsis>OuterProduct (u,v)</synopsis>
+          <para>Obtener el producto externo de dos vectores. Esto es, suponga que <varname>u</varname> y 
<varname>v</varname> son vectores verticales, entonces el producto externo es  <userinput>v * 
u.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
+         <listitem>
+          <synopsis>ReverseVector (v)</synopsis>
+         <para>Invierte el orden de los elementos de un vector (devuelve <constant>null</constant> si se le 
pasa <constant>null</constant>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSum"/>RowSum</term>
+         <listitem>
+          <synopsis>RowSum (m)</synopsis>
+          <para>Calcula la suma de cada fila de una matriz y devuelve el resultado en un vector vertical con 
el resultado</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
+         <listitem>
+          <synopsis>RowSumSquares (m)</synopsis>
+          <para>Calcular la suma de los cuadrados de cada fila de una matriz y devolver una matriz columna 
con los resultados.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
+         <listitem>
+          <synopsis>RowsOf (M)</synopsis>
+         <para>Obtiene las filas de una matriz como un vector vertical. Cada elemento del vector es un 
vector horizontal que se corresponde con la fila de <varname>M</varname>. Esta función es útil si se quiere 
recorrer las filas de una matriz. Por ejemplo, como en <userinput>for r in RowsOf(M) do
+something(r)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
+         <listitem>
+          <synopsis>SetMatrixSize (M,filas,columnas)</synopsis>
+          <para>Hacer una nueva matriz del mismo tamaño que otra. Es decir, devolverá una nueva matriz con 
la copia de otra. Las entradas que no caben, se recortan y el espacio adicional se rellena con ceros. Si 
<varname>rows</varname> o <varname>columns</varname> son cero, entonces se 
devuelve<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
+         <listitem>
+          <synopsis>ShuffleVector (v)</synopsis>
+         <para>Mezcla los elementos en un vector. Devuelve <constant>null</constant> si se le pasa 
<constant>null</constant>.</para>
+         <para>Desde la versión 1.0.13 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SortVector"/>SortVector</term>
+         <listitem>
+          <synopsis>SortVector (v)</synopsis>
+          <para>Ordenar los elementos del vector en orden ascendente.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
+         <listitem>
+          <synopsis>StripZeroColumns (M)</synopsis>
+          <para>Quita todas las columnas de ceros de <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
+         <listitem>
+          <synopsis>StripZeroRows (M)</synopsis>
+          <para>Quita todas las filas de ceros de <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
+         <listitem>
+          <synopsis>Submatrix (m,r,c)</synopsis>
+          <para>Devolver columnas y filas desde una matriz. Esto es equivalente a 
<userinput>m@(r,c)</userinput>. <varname>r</varname> y <varname>c</varname> serán vectores de filas y 
columnas (o números sencillos si sólo se necesita una fila o columna).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
+         <listitem>
+          <synopsis>SwapRows (m,fila1,fila2)</synopsis>
+          <para>Intercambiar dos columnas de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
+         <listitem>
+          <synopsis>UpperTriangular (M)</synopsis>
+          <para>Devuelve una copia de la matriz <varname>M</varname> con todas las entradas por debajo de la 
diagonal establecidas a cero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-columns"/>columns</term>
+         <listitem>
+          <synopsis>columns (M)</synopsis>
+          <para>Obtener el número de columnas de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-elements"/>elements</term>
+         <listitem>
+          <synopsis>elements (M)</synopsis>
+          <para>Obtener el número total de elementos de una matriz. Es decir, el número de columnas por el 
número de filas.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ones"/>ones</term>
+         <listitem>
+          <synopsis>ones (filas,columnas...)</synopsis>
+         <para>Hacer una matriz rellena de unos (o un vector fila si sólo se introduce un argumento). 
Devuelve <constant>null</constant> si cualquier fila o columna es cero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rows"/>rows</term>
+         <listitem>
+          <synopsis>rows (M)</synopsis>
+          <para>Obtener el número de filas de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-zeros"/>zeros</term>
+         <listitem>
+          <synopsis>zeros (filas,columnas...)</synopsis>
+         <para>Hacer una matriz llena de ceros (o un vector fila si se introduce sólo un argumento). 
Devuelve <constant>null</constant> si cualquier fila o columna es cero.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-linear-algebra">
+      <title>Álgebra lineal</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
+         <listitem>
+          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
+          <para>Obtener la matriz auxiliar de tamaño <varname>n</varname>. Esto es una matriz cuadrada que 
es toda ceros excepto la superdiagonal, que son todos unos. Es la matriz de bloques de Jordan de un cero como 
valor propio.</para>
+          <para>Consulte <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> o 
<ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> para obtener más información 
sobre la forma canónica de Jordan.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
+         <listitem>
+          <synopsis>BilinearForm (v,A,w)</synopsis>
+          <para>Evaluar (v,w) con respecto a la forma bilineal dada por la matriz A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
+         <listitem>
+          <synopsis>BilinearFormFunction (A)</synopsis>
+          <para>Devolver una función que evalúa dos vectores con respecto a la forma bilineal dada por 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomial (M)</synopsis>
+          <para>Alias: <function>CharPoly</function></para>
+         <para>Obtener el polinomio característico como un vector. Es decir, devuelve los coeficientes del 
polinomio empezando por el término constante. Este polinomio se define por <userinput>det(M-xI)</userinput>. 
Las raíces de este polinomio tienen como valor propio a <varname>M</varname>. Consulte <link 
linkend="gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</link>.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> o <ulink 
url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
+         <para>Obtener el polinomio característico como una función. Es decir, el polinomio se define por 
<userinput>det(M-xI)</userinput>. Las raíces de este polinomio tienen un valor propio de 
<varname>M</varname>. Consulte <link 
linkend="gel-function-CharacteristicPolynomial">CharacteristicPolynomial</link>.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> o <ulink 
url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
+         <listitem>
+          <synopsis>ColumnSpace (M)</synopsis>
+         <para>Obtener una matriz base para el espacio de la columna de una matriz. Es decir, devuelve una 
matriz la cual las columnas son las bases para el espacio de la columna <varname>M</varname>. Esto es el 
espacio generado por las columnas de <varname>M</varname>.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
+         <listitem>
+          <synopsis>CommutationMatrix (m, n)</synopsis>
+         <para>Devolver la matriz de conmutación <userinput>K(m,n)</userinput> que es la única matriz 
<userinput>m*n</userinput> por <userinput>m*n</userinput> tal que <userinput>K(m,n) * MakeVector(A) = 
MakeVector(A.')</userinput> para todas las matrices <varname>A</varname> <varname>m</varname> por 
<varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
+         <listitem>
+          <synopsis>CompanionMatrix (p)</synopsis>
+          <para>Matriz acompañante de un polinomio (como vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
+         <listitem>
+          <synopsis>ConjugateTranspose (M)</synopsis>
+          <para>Conjugada traspuesta de una matriz (adjunta). Es lo mismo que el operador 
<userinput>'</userinput>.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Conjugate_transpose";>Wikipedia</ulink> 
o <ulink url="http://planetmath.org/ConjugateTranspose";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Convolution"/>Convolution</term>
+         <listitem>
+          <synopsis>Convolution (a,b)</synopsis>
+          <para>Alias: <function>convol</function></para>
+          <para>Calcular la convolución de dos vectores horizontales.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
+         <listitem>
+          <synopsis>ConvolutionVector (a,b)</synopsis>
+          <para>Calcular la convolución de dos vectores horizontales. Devuelve el resultado como un vector y 
no se suman.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
+         <listitem>
+          <synopsis>CrossProduct (v,w)</synopsis>
+         <para>Producto cruzado de dos vectores en R<superscript>3</superscript> como un vector 
columna.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Cross_product";>Wikipedia</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
+         <listitem>
+          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
+          <para>Obtiene determinantes divisores de una matriz de enteros.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
+         <listitem>
+          <synopsis>DirectSum (M,N...)</synopsis>
+          <para>Suma directa de matrices.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
+         <listitem>
+          <synopsis>DirectSumMatrixVector (v)</synopsis>
+          <para>Suma directa de un vector de matrices.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
+         <listitem>
+          <synopsis>Eigenvalues (M)</synopsis>
+          <para>Alias: <function>eig</function></para>
+          <para>Obtener los valores propios de una matriz cuadrada. En la actualidad solo funciona con 
matrices de tamaño 4 por 4 como máximo, o para matrices triangulares (cuyo valores propios están en la 
diagonal).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvalue";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvalue";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvalue.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
+         <listitem>
+          <synopsis>Eigenvectors (M)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues, &amp;multiplicities)</synopsis>
+         <para>Obtener los autovectores de una matriz cuadrada. Opcionalmente, obtener los autovalores y su 
multiplicidad algebraica. Actualmente funciona sólo para matrices de hasta 2x2.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvector";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvector";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvector.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
+         <listitem>
+          <synopsis>GramSchmidt (v,B...)</synopsis>
+         <para>Aplicar el proceso de Gram-Schmidt (a las columnas) con respecto al propio producto dado por 
<varname>B</varname>. Si <varname>B</varname> no se da, entonces se utiliza el producto Hermitiano estándar. 
<varname>B</varname> también puede ser una función sesquilineal de dos argumentos o puede ser una matriz que 
devuelve una forma sesquilineal. Los vectores serán ortonormales con respecto a <varname>B</varname>.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process";>Wikipedia</ulink> o <ulink 
url="http://planetmath.org/GramSchmidtOrthogonalization";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
+         <listitem>
+          <synopsis>HankelMatrix (c,r)</synopsis>
+         <para>La matriz de Hankel es una matriz cuyas diagonales (de izquierda a derecha) son constantes. 
La primera fila es <varname>c</varname> y  la última colúmna es <varname>r</varname>. Se considera que ambos 
argumentos son vectores y que el último elemento de la fila <varname>c</varname> es el mismo que el primer 
elemento de la columna <varname>r</varname>.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hankel_matrix";>Wikipedia</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
+         <listitem>
+          <synopsis>HilbertMatrix (n)</synopsis>
+          <para>Matriz de Hilbert de orden <varname>n</varname>.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Image"/>Image</term>
+         <listitem>
+          <synopsis>Image (T)</synopsis>
+          <para>Obtener la imagen (espacio columna) de una transformación lineal.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
+         <listitem>
+          <synopsis>InfNorm (v)</synopsis>
+          <para>Obtener el operador norma de un vector, a veces también se denomina norma suprema o norma 
máxima.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
+         <listitem>
+          <synopsis>InvariantFactorsInteger (M)</synopsis>
+          <para>Obtiene los factores invariantes de una matriz cuadrada de enteros.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
+         <listitem>
+          <synopsis>InverseHilbertMatrix (n)</synopsis>
+          <para>Matriz inversa de Hilbert de orden <varname>n</varname>.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
+         <listitem>
+          <synopsis>IsHermitian (M)</synopsis>
+          <para>Es una matriz Hermitian. Es decir, es igual a su traspuesta conjugada.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Hermitian_matrix";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/HermitianMatrix";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
+         <listitem>
+          <synopsis>IsInSubspace (v,W)</synopsis>
+          <para>Comprueba si un vector está en un subespacio.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
+         <listitem>
+          <synopsis>IsInvertible (n)</synopsis>
+          <para>Es una matriz (o número) invertible (La matriz de enteros es invertible si, y sólo si esta 
es invertible sobre los enteros).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
+         <listitem>
+          <synopsis>IsInvertibleField (n)</synopsis>
+          <para>Es una matriz (o un número) inversible sobre un campo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
+         <listitem>
+          <synopsis>IsNormal (M)</synopsis>
+          <para>Indica que <varname>M</varname> es una matriz normal. Es decir, realiza <userinput>M*M' == 
M'*M</userinput>.</para>
+          <para>Consulte <ulink url="http://planetmath.org/NormalMatrix";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/NormalMatrix.html";>Mathworld</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
+         <listitem>
+          <synopsis>IsPositiveDefinite (M)</synopsis>
+          <para>Indica que <varname>M</varname> es una matriz definida positiva Hermitiana. Esto es si 
<userinput>HermitianProduct(M*v,v)</userinput> es siempre estrictamente positivo para cualquier vector 
<varname>v</varname>. <varname>M</varname> será cuadrada y Hermitiana para ser definida positiva. La 
comprobación de que se lleva a cabo es que cada submatriz principal tiene un determinante no negativo. 
(Consulte <link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>Tenga en cuenta que algunos autores (por ejemplo Mathworld) no requieren que 
<varname>M</varname> sea Hermitiana, y entonces la condición está en la parte real del propio producto, pero 
aquí no se compartirá este punto de vista. Si quiere comprobarlo, hacer sólo la parte Hermitiana de la matriz 
<varname>M</varname> como sigue: <userinput>IsPositiveDefinite(M+M')</userinput>.</para>
+          <para>Consulte la <ulink 
url="https://en.wikipedia.org/wiki/Positive-definite_matrix";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/PositiveDefinite";>Planetmath</ulink>, o <ulink 
url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
+         <listitem>
+          <synopsis>IsPositiveSemidefinite (M)</synopsis>
+          <para>Indica si <varname>M</varname> es una matriz semidefinida positiva Hermitiana. Esto es si 
<userinput>HermitianProduct(M*v,v)</userinput> es siempre no negativo para cualquier vector 
<varname>v</varname>. <varname>M</varname> será cuadrada y Hermitiana para ser semidefinida positiva. La 
comprobación que se lleva a cabo es que cada submatriz principal tenga un determinante no negativo. (Consulte 
<link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>Tenga en cuenta que algunos autores no requieren que <varname>M</varname> sea Hermitiana, y 
entonces la condición está en la parte real del propio producto, pero aquí no se compartirá este punto de 
vista. Si quiere comprobarlo, hacer sólo la parte Hermitiana de la matriz <varname>M</varname> como sigue: 
<userinput>IsPositiveSemidefinite(M+M')</userinput>.</para>
+          <para>Consulte <ulink url="http://planetmath.org/PositiveSemidefinite";>Planetmath</ulink> o <ulink 
url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
+         <listitem>
+          <synopsis>IsSkewHermitian (M)</synopsis>
+          <para>Es matriz antihermítica. Esto es, la transposición conjugada es igual al negativo de la 
matriz.</para>
+          <para>Consulte <ulink url="http://planetmath.org/SkewHermitianMatrix";>Planetmath</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
+         <listitem>
+          <synopsis>IsUnitary (M)</synopsis>
+          <para>¿Es una matriz unitaria?. Esto es, hacer <userinput>M'*M</userinput> y 
<userinput>M*M'</userinput> igual a la identidad.</para>
+          <para>Consulte <ulink url="http://planetmath.org/UnitaryTransformation";>Planetmath</ulink> o 
<ulink url="http://mathworld.wolfram.com/UnitaryMatrix.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
+         <listitem>
+          <synopsis>JordanBlock (n,lambda)</synopsis>
+          <para>Alias: <function>J</function></para>
+          <para>Obtener el bloque de Jordan correspondiente al valor propio  <varname>lambda</varname> con 
multiplicidad <varname>n</varname>.</para>
+          <para>Consulte <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> o 
<ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Kernel"/>Kernel</term>
+         <listitem>
+          <synopsis>Kernel (T)</synopsis>
+          <para>Obtener el núcleo (espacio nulo) de una trasformación lineal.</para>
+         <para>(Consulte <link linkend="gel-function-NullSpace">NullSpace</link>)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerProduct"/>KroneckerProduct</term>
+         <listitem>
+          <synopsis>KroneckerProduct (M, N)</synopsis>
+          <para>Alias: <function>TensorProduct</function></para>
+         <para>Calcula el producto de Kronecker (producto tensorial en base estándar) de dos matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Kronecker_product";>Wikipedia</ulink>, 
+           <ulink url="http://planetmath.org/KroneckerProduct";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/KroneckerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
+         <listitem>
+          <synopsis>LUDecomposition (A, L, U)</synopsis>
+          <para>Obtener la descomposición de LU de <varname>A</varname> es decir, encontrar una matriz 
triangular inferior y la matriz triangular superior cuyo producto es <varname>A</varname>. Guarda el 
resultado en <varname>L</varname> y <varname>U</varname> que son referencias. Devuelve 
<constant>true</constant> si se completó con éxito. Por ejemplo, suponga que «A» es una matriz cuadrada, 
entonces después ejecute: <screen><prompt>genius&gt;</prompt> 
<userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
+</screen> tendrá la matriz inferior guardada en una variable llamada <varname>L</varname> y la matriz 
superior en una variable llamada  <varname>U</varname>.</para>
+         <para>Esto es la descomposición de LU de una matriz también conocido como Crout y/o reducción de 
Cholesky. (ISBN 0-201-11577-8 pp.99-103) La matriz triangular superior cuenta con una diagonal de valores 1 
(uno). Esto no es el método de Doolittle en las que los unos de la diagonal están sobre la matriz 
inferior.</para>
+         <para>No todas las matrices tienen la descomposición de LU, por ejemplo 
<userinput>[0,1;1,0]</userinput> no lo hace y esta función devuelve <constant>false</constant> en este caso, 
y establece <varname>L</varname> y <varname>U</varname> a <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/LU_decomposition";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LUDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LUDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Minor"/>Minor</term>
+         <listitem>
+          <synopsis>Minor (M,i,j)</synopsis>
+          <para>Obtener el menor <varname>i</varname>-<varname>j</varname> de una matriz.</para>
+          <para>Consulte <ulink url="http://planetmath.org/Minor";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
+         <listitem>
+          <synopsis>NonPivotColumns (M)</synopsis>
+          <para>Devolver las columnas que no son las columnas pivotes de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Norm"/>Norm</term>
+         <listitem>
+          <synopsis>Norm (v,p...)</synopsis>
+          <para>Alias: <function>norm</function></para>
+          <para>Obtener la norma p (o 2 normas si no se suministra p) de un vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
+         <listitem>
+          <synopsis>NullSpace (T)</synopsis>
+          <para>Obtener el espacio nulo de una matriz. Ese es el núcleo de la aplicación lineal que 
representa la matriz. Esto se devuelve como una matriz cuyo espacio de columna es el espacio nulo de 
<varname>T</varname>.</para>
+          <para>Consulte <ulink url="http://planetmath.org/Nullspace";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Nullity"/>Nullity</term>
+         <listitem>
+          <synopsis>Nullity (M)</synopsis>
+          <para>Alias: <function>nullity</function></para>
+          <para>Obtener la nulidad de una matriz. Es decir, devuelve la dimensión del espacio nulo; la 
dimensión del núcleo de <varname>M</varname>.</para>
+          <para>Consulte <ulink url="http://planetmath.org/Nullity";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
+         <listitem>
+          <synopsis>OrthogonalComplement (M)</synopsis>
+          <para>Obtener el complemento ortogonal del espacio de columnas.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
+         <listitem>
+          <synopsis>PivotColumns (M)</synopsis>
+          <para>Devuelve las columnas pivote de una matriz, que son columnas que tienen un 1 en la fila 
forma reducida. También devuelve la fila en la que se producen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Projection"/>Projection</term>
+         <listitem>
+          <synopsis>Projection (v,W,B...)</synopsis>
+         <para>Proyección del vector <varname>v</varname> sobre el sub-espacio <varname>W</varname> con 
respecto al propio producto dado por <varname>B</varname>. Si <varname>B</varname> no se da, entonces se usa 
el producto estándar Hermitiano. <varname>B</varname> puede también ser una función sesquilineal de dos 
argumentos o puede ser una matriz que devuelve una forma sesquilineal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
+         <listitem>
+          <synopsis>QRDecomposition (A, Q)</synopsis>
+          <para>Obtener la descomposición QR de una matriz cuadrada <varname>A</varname>, devuelve la matriz 
triangular superior <varname>R</varname> y establece <varname>Q</varname> a la matriz ortogonal (unitaria). 
<varname>Q</varname> será una referencia o <constant>null</constant> si no quiere que se devuelva ningún 
valor. Por ejemplo: <screen><prompt>genius&gt;</prompt> <userinput>R = QRDecomposition(A,&amp;Q)</userinput>
+</screen> tendrá la matriz triangular superior guardada en una variable llamada <varname>R</varname> y la 
matriz ortogonal (unitaria) guardada en <varname>Q</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/QR_decomposition";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/QRDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QRDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
+         <listitem>
+          <synopsis>RayleighQuotient (A,x)</synopsis>
+          <para>Devuelve el cociente de Rayleigh (también llamado el cociente de Rayleigh-Ritz o ratio) de 
una matriz y un vector.</para>
+          <para>Consulte <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> para obtener 
más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
+         <listitem>
+          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</synopsis>
+          <para>Buscar valores propios de <varname>A</varname> utilizando el método de iteración de cociente 
de Rayleigh. <varname>x</varname> es una conjetura en un vector propio que será aleatoria. Esto tendrá una 
parte imaginaria no nula si es posible encontrar valores propios complejos. El código ejecutará en la mayoría 
de las interacciones <varname>maxiter</varname> y devuelve <constant>null</constant> si no se puede obtener 
un error de <varname>epsilon</varname>. <varname>vecref</varname> será o bién un <constant>null</constant> o 
una referencia a una variable donde se guarde el vector propio.</para>
+          <para>Conuslte <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> para obtener 
más información sobre el cociente de Rayleigh.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rank"/>Rank</term>
+         <listitem>
+          <synopsis>Rank (M)</synopsis>
+          <para>Alias: <function>rank</function></para>
+          <para>Obtener el rango de una matriz.</para>
+          <para>Consulte <ulink url="http://planetmath.org/SylvestersLaw";>Planetmath</ulink> para obtener 
más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
+         <listitem>
+          <synopsis>RosserMatrix ()</synopsis>
+          <para>Devolver la matriz de Rosser, que es un problemático y clásico test simétrico de valores 
propios.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
+         <listitem>
+          <synopsis>Rotation2D (ángulo)</synopsis>
+          <para>Alias: <function>RotationMatrix</function></para>
+          <para>Devolver la matriz correspondiente a la rotación alrededor del origen en 
R<superscript>2</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
+         <listitem>
+          <synopsis>Rotation3DX (ángulo)</synopsis>
+          <para>Devuelve la matriz correspondiente a la rotación alrededor del origen en 
R<superscript>3</superscript> sobre el eje x.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
+         <listitem>
+          <synopsis>Rotation3DY (ángulo)</synopsis>
+          <para>Devolver la matriz correspondiente a la rotación alrededor del origen en 
R<superscript>3</superscript> sobre el eje Y.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
+         <listitem>
+          <synopsis>Rotation3DZ (ángulo)</synopsis>
+          <para>Devolver la matriz correspondiente a la rotación alrededor del origen en 
R<superscript>3</superscript> sobre el eje Z.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
+         <listitem>
+          <synopsis>RowSpace (M)</synopsis>
+          <para>Obtener una matriz base para el espacio de filas de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
+         <listitem>
+          <synopsis>SesquilinearForm (v,A,w)</synopsis>
+          <para>Evaluar (v,w) con respecto a la forma sesquilineal dada por la matriz A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
+         <listitem>
+          <synopsis>SesquilinearFormFunction (A)</synopsis>
+          <para>Devolver una función que evalúa dos vectores con respecto a la forma sesquilineal dada por 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
+         <listitem>
+          <synopsis>SmithNormalFormField (A)</synopsis>
+          <para>Devuelve la forma normal de Smith de una matriz sobre los campos (terminará con unos en la 
diagonal).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
+         <listitem>
+          <synopsis>SmithNormalFormInteger (M)</synopsis>
+          <para>Devuelve la forma normal de Smith para matrices cuadradas sobre enteros.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
+         <listitem>
+          <synopsis>SolveLinearSystem (M,V,args...)</synopsis>
+         <para>Resuelve el sistema lineal Mx=V, devuelve la solución V si hay una única solución y 
<constant>null</constant> en cualquier otro caso. Opcionalmente, se pueden usar dos parámetros de referencia 
para obtener M y V reducidos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
+         <listitem>
+          <synopsis>ToeplitzMatrix (c, r...)</synopsis>
+         <para>Devuelve la matriz de Toeplitz que se construye con la primera columna «c» y (opcionalmente) 
la primera fila «r». Si sólo se da la columna «c», entonces esta es conjugada y la versión no conjugada la 
utiliza la primera fila para dar una matriz Hermitiana (si el primer elemento es real).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Toeplitz_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ToeplitzMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Trace"/>Trace</term>
+         <listitem>
+          <synopsis>Trace (M)</synopsis>
+          <para>Alias: <function>trace</function></para>
+          <para>Calcular la traza de una matriz. Esto es la suma de sus elementos diagonales.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trace_(linear_algebra)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Trace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Transpose"/>Transpose</term>
+         <listitem>
+          <synopsis>Transpose (M)</synopsis>
+          <para>Traspuesta de una matriz. Es lo mismo que el operador  <userinput>.'</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Transpose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
+         <listitem>
+          <synopsis>VandermondeMatrix (v)</synopsis>
+          <para>Alias: <function>vander</function></para>
+          <para>Devuelve la matriz de Vandermonde.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Vandermonde_matrix";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
+         <listitem>
+          <synopsis>VectorAngle (v,w,B...)</synopsis>
+          <para>El ángulo de dos vectores con respecto al propio producto viene dado por 
<varname>B</varname>. Si no se da <varname>B</varname>, entonces se usará el producto estándar Hermitiano. 
<varname>B</varname> puede ser una función sesquilineal de dos argumentos o bien, una matriz que devuelve una 
forma sesquilineal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
+         <listitem>
+          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
+          <para>Suma directa de los espacios vectoriales M y N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
+         <listitem>
+          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
+          <para>Intersección de subespacios dados por M y N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
+         <listitem>
+          <synopsis>VectorSubspaceSum (M,N)</synopsis>
+          <para>La suma de los espacios vectoriales M y N, esto es {w | w=m+n, m en M, n en N}.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-adj"/>adj</term>
+         <listitem>
+          <synopsis>adj (m)</synopsis>
+          <para>Alias: <function>Adjugate</function></para>
+          <para>Obtener el adjunto clásico de una matriz.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cref"/>cref</term>
+         <listitem>
+          <synopsis>cref (M)</synopsis>
+          <para>Alias: <function>CREF</function><function>ColumnReducedEchelonForm</function></para>
+          <para>Calcular la forma en escalón reducida por columnas.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-det"/>det</term>
+         <listitem>
+          <synopsis>det (M)</synopsis>
+          <para>Alias: <function>Determinant</function></para>
+          <para>Obtener el determinante de una matriz.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Determinant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Determinant2";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ref"/>ref</term>
+         <listitem>
+          <synopsis>ref (M)</synopsis>
+          <para>Alias: <function>REF</function><function>RowEchelonForm</function></para>
+         <para>Obtener la matriz escalonada por fila. Es decir, aplicar la eliminación gausiana pero no 
hacer la reducción a <varname>M</varname>. Las filas pivote están divididas para que todos los pivotes sean 
1.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rref"/>rref</term>
+         <listitem>
+          <synopsis>rref (M)</synopsis>
+          <para>Alias: <function>RREF</function><function>ReducedRowEchelonForm</function></para>
+          <para>Obtener la matriz escalonada reducida por filas. Es decir, aplicar la eliminación gausiana 
junto con la reducción a <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Reduced_row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ReducedRowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-combinatorics">
+      <title>Combinatoria</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Catalan"/>Catalan</term>
+         <listitem>
+          <synopsis>Catalan (n)</synopsis>
+          <para>Obtener el <varname>n</varname>-ésimo número de Catalan.</para>
+          <para>Consulte <ulink url="http://planetmath.org/CatalanNumbers";>Planetmath</ulink> para obtener 
más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Combinations"/>Combinations</term>
+         <listitem>
+          <synopsis>Combinations (k,n)</synopsis>
+          <para>Obtener todas las combinaciones de «k» números desde 1 a «n» como un vector de vectores. 
(Consulte <link linkend="gel-function-NextCombination">NextCombination</link>)</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
+         <listitem>
+          <synopsis>DoubleFactorial (n)</synopsis>
+          <para>Doble factorial: <userinput>n(n-2)(n-4)...</userinput></para>
+          <para>Consulte <ulink url="http://planetmath.org/DoubleFactorial";>Planetmath</ulink> para obtener 
más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorial"/>Factorial</term>
+         <listitem>
+          <synopsis>Factorial (n)</synopsis>
+          <para>Factorial: <userinput>n(n-1)(n-2)...</userinput></para>
+          <para>Consulte <ulink url="http://planetmath.org/Factorial";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
+         <listitem>
+          <synopsis>FallingFactorial (n,k)</synopsis>
+          <para>Factorial descendente: <userinput>(n)_k = n(n-1)...(n-(k-1))</userinput></para>
+          <para>Consulte la <ulink url="http://planetmath.org/FallingFactorial";>Planetmath</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
+         <listitem>
+          <synopsis>Fibonacci (x)</synopsis>
+          <para>Alias: <function>fib</function></para>
+          <para>Calcular el <varname>n</varname>-ésimo número de Fibonacci. El número se define 
recursivamente por <userinput>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</userinput> y 
<userinput>Fibonacci(1) = Fibonacci(2) = 1</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fibonacci_number";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/FibonacciSequence";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FibonacciNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
+         <listitem>
+          <synopsis>FrobeniusNumber (v,arg...)</synopsis>
+          <para>
+           Calculate the Frobenius number.  That is calculate largest
+           number that cannot be given as a non-negative integer linear
+           combination of a given vector of non-negative integers.
+           The vector can be given as separate numbers or a single vector.
+           All the numbers given should have GCD of 1.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coin_problem";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FrobeniusNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
+         <listitem>
+          <synopsis>GaloisMatrix (regla_de_combinación)</synopsis>
+          <para>Matriz de Galois dada una regla de combinación lineal (a_1*x_1+...+a_n*x_n=x_(n+1)).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
+         <listitem>
+          <synopsis>GreedyAlgorithm (n,v)</synopsis>
+          <para>Buscar el vector <varname>c</varname> de enteros no negativos de tal manera que al realizar 
el producto escalar con <varname>v</varname> es igual a n. Si no es posible, se devuelve 
<constant>null</constant>. <varname>v</varname> estará ordenada de forma incremental y estará constituida de 
enteros no negativos.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greedy_algorithm";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GreedyAlgorithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
+         <listitem>
+          <synopsis>HarmonicNumber (n,r)</synopsis>
+          <para>Alias: <function>HarmonicH</function></para>
+         <para>Harmonic Number, the <varname>n</varname>th harmonic number of order <varname>r</varname>.
+               That is, it is the sum of <userinput>1/k^r</userinput> for <varname>k</varname>
+               from 1 to n.  Equivalent to <userinput>sum k = 1 to n do 1/k^r</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Harmonic_number";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
+         <listitem>
+          <synopsis>Hofstadter (n)</synopsis>
+          <para>Función q(n) de Hofstadter definida por q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2)).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hofstadter_sequence";>Wikipedia</ulink> for more 
information.
+           The sequence is <ulink url="https://oeis.org/A005185";>A005185 in OEIS</ulink>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
+         <listitem>
+          <synopsis>LinearRecursiveSequence (seed_values,combining_rule,n)</synopsis>
+          <para>Calcular la sucesión lineal recursiva utilizando el escalamiento de Galois.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
+         <listitem>
+          <synopsis>Multinomial (v,arg...)</synopsis>
+          <para>Calcular los coeficientes multinomiales. Toma un vector de <varname>k</varname> enteros no 
negativos y calcula el coeficiente multinomial. Esto corresponde al coeficiente en el polinomio homogéneo en 
<varname>k</varname> variables con las correspondientes potencias.</para>
+         <para>La fórmula para <userinput>Multinomial(a,b,c)</userinput> se puede escribir como: 
<programlisting>(a+b+c)! / (a!b!c!)
+</programlisting>. En otras palabras, si sólo hay dos elementos, entonces 
<userinput>Multinomial(a,b)</userinput> es lo mismo que <userinput>Binomial(a+b,a)</userinput> o 
<userinput>Binomial(a+b,b)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Multinomial_theorem";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MultinomialTheorem";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/MultinomialCoefficient.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
+         <listitem>
+          <synopsis>NextCombination (v,n)</synopsis>
+         <para>Obtener las combinaciones que v devolverá después de su ejecución. La primera combinación 
será <userinput>[1:k]</userinput>. Esta función es útil si tiene muchas combinaciones que pasar y no quiere 
olvidarse de guardarlas todas.</para>
+         <para>Por ejemplo, con «Combinations» normalmente escribiría un bucle como sigue: 
<screen><userinput>for n in Combinations (4,6) do (
+  AlgunaFuncion (n)
+);</userinput>
+</screen> Pero con «NextCombination» escribiría algo como lo siguiente: <screen><userinput>n:=[1:4];
+do (
+  AlgunaFuncion (n)
+) while not IsNull(n:=NextCombination(n,6));</userinput>
+</screen> Consulte también <link linkend="gel-function-Combinations">Combinations</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Pascal"/>Pascal</term>
+         <listitem>
+          <synopsis>Pascal (i)</synopsis>
+          <para>Obtener el triángulo de Pascal como una matriz. Esto devolverá una <varname>i</varname>+1 
por <varname>i</varname>+1 la diagonal inferior de la matriz que es el triángulo de Pascal después de 
<varname>i</varname> iteraciones.</para>
+          <para>Consulte <ulink url="http://planetmath.org/PascalsTriangle";>Planetmath</ulink> para obtener 
más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Permutations"/>Permutations</term>
+         <listitem>
+          <synopsis>Permutations (k,n)</synopsis>
+          <para>Obtener todas las permutaciones de <varname>k</varname> números desde el 1 al 
<varname>n</varname> como un vector de vectores.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
+         <listitem>
+          <synopsis>RisingFactorial (n,k)</synopsis>
+          <para>Alias: <function>Pochhammer</function></para>
+          <para>(Puchhammer) factorial creciente: (n)_k = n(n+1)...(n+(k-1)).</para>
+          <para>Consulte <ulink url="http://planetmath.org/RisingFactorial";>Planetmath</ulink> para obtener 
más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
+         <listitem>
+          <synopsis>StirlingNumberFirst (n,m)</synopsis>
+          <para>Alias: <function>StirlingS1</function></para>
+          <para>Número de Stirling de primera clase.</para>
+          <para>Consulte <ulink url="http://planetmath.org/StirlingNumbersOfTheFirstKind";>Planetmath</ulink> 
o <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html";>Mathworld</ulink> para obtener 
más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
+         <listitem>
+          <synopsis>StirlingNumberSecond (n,m)</synopsis>
+          <para>Alias: <function>StirlingS2</function></para>
+          <para>Número de Stirling de segunda clase.</para>
+          <para>Consulte <ulink url="http://planetmath.org/StirlingNumbersSecondKind";>Planetmath</ulink> o 
<ulink url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html";>Mathworld</ulink> para obtener 
más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
+         <listitem>
+          <synopsis>Subfactorial (n)</synopsis>
+          <para>Subfactorial: n! times sum_{k=0}^n (-1)^k/k!.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Triangular"/>Triangular</term>
+         <listitem>
+          <synopsis>Triangular (nth)</synopsis>
+          <para>Calcular el <varname>n</varname>-ésimo número triangular.</para>
+          <para>Consulte <ulink url="http://planetmath.org/TriangularNumbers";>Planetmath</ulink>&gt; para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nCr"/>nCr</term>
+         <listitem>
+          <synopsis>nCr (n,r)</synopsis>
+          <para>Alias: <function>Binomial</function></para>
+          <para>Calcular combinaciones, es decir, el coeficiente del binomio. <varname>n</varname> puede ser 
cualquier número real.</para>
+          <para>Consulte <ulink url="http://planetmath.org/Choose";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nPr"/>nPr</term>
+         <listitem>
+          <synopsis>nPr (n,r)</synopsis>
+          <para>Calcular el número de permutaciones de tamaño <varname>r</varname> de números desde el 1 al 
<varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-calculus">
+      <title>Cálculo</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
+          <para>Integrar f usando la Regla Compuesta de Simpson en el intervalo [a,b] con n subintervalos y 
un error de max(f'''')*h^4*(b-a)/180, n debe ser entero.</para>
+          <para>Consulte <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,FourthDerivativeBound,Tolerance)</synopsis>
+          <para>Integración de F por la Regla compuesta de Simpson en el intervalo [a,b] con el número de 
pasos calculado por la cuarta derivada y la tolerancia deseada.</para>
+          <para>Consulte <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Derivative"/>Derivative</term>
+         <listitem>
+          <synopsis>Derivative (f,x0)</synopsis>
+          <para>Intentar calcular la derivada, primero simbólicamente y después numéricamente.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
+         <listitem>
+          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
+         <para>Devolver una función que es una extensión periódica par de <function>f</function> con medio 
periodo <varname>L</varname>. Esto es una función que se define en el intervalo <userinput>[0,L]</userinput> 
extendido para ser par en <userinput>[-L,L]</userinput> y entonces extendido para ser periódico con periodo 
<userinput>2*L</userinput>.</para>
+         <para>Consulte <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> y 
<link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
+         <listitem>
+          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
+         <para>Devuelve una función que es una serie de Fourier con coeficientes devueltos por los vectores 
<varname>a</varname> (senos) y <varname>b</varname> (cosenos). Tenga en cuenta que 
<userinput>a@(1)</userinput> es el coeficiente constante. Es decir, <userinput>a@(n)</userinput> se refiere 
al término <userinput>cos(x*(n-1)*pi/L)</userinput>, mientras que <userinput>b@(n)</userinput> se refiere al 
término <userinput>sin(x*n*pi/L)</userinput>. Tanto <varname>a</varname> o <varname>b</varname> puede ser 
<constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
+         <listitem>
+          <synopsis>InfiniteProduct (func,inicio,inc)</synopsis>
+          <para>Intenta calcular un producto infinito para una función de un sólo parámetro.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
+         <listitem>
+          <synopsis>InfiniteProduct2 (func,arg,inicio,inc)</synopsis>
+          <para>Intenta calcular un producto infinito para una función de dos parámetros con 
func(arg,n)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
+         <listitem>
+          <synopsis>InfiniteSum (func,inicio,inc)</synopsis>
+          <para>Intentar calcular una suma infinita para una función de un sólo parámetro.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
+         <listitem>
+          <synopsis>InfiniteSum2 (func,arg,inicio,inc)</synopsis>
+          <para>Intenta calcular una suma infinita para una función de dos parámetros con 
func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
+         <listitem>
+          <synopsis>IsContinuous (f,x0)</synopsis>
+          <para>Comprueba si una función real es continua en x0 calculando el límite en ese punto.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
+         <listitem>
+          <synopsis>IsDifferentiable (f,x0)</synopsis>
+          <para>Comprobar la diferenciabilidad aproximando los límites izquierdo y derecho y 
comparándolos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
+         <listitem>
+          <synopsis>LeftLimit (f,x0)</synopsis>
+          <para>Calcular el límite por la izquierda de una función real en x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Limit"/>Limit</term>
+         <listitem>
+          <synopsis>Limit (f,x0)</synopsis>
+          <para>Calcular el límite de una función real en x0. Intenta calcular tanto el límite por la 
derecha como por la izquierda.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
+         <listitem>
+          <synopsis>MidpointRule (f,a,b,n)</synopsis>
+          <para>Integración por la regla del punto medio.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
+         <listitem>
+          <synopsis>NumericalDerivative (f,x0)</synopsis>
+          <para>Alias: <function>NDerivative</function></para>
+          <para>Intentar calcular la derivada numérica.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
+         <para>Devuelve un vector de vectores <userinput>[a,b]</userinput> donde <varname>a</varname> son 
los coeficientes cosenos y <varname>b</varname> son los coeficientes senos de la serie de Fourier de 
<function>f</function> con medio periodo <varname>L</varname> (esto se define en 
<userinput>[-L,L]</userinput> y extendido periódicamente) con coeficientes hasta <varname>N</varname>-ésimo 
harmónico calculado numéricamente. Los coeficientes se calculan por la integración numérica al usar <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
+         <para>Devuelve una función que es la serie de Fourier de <function>f</function> con medio periodo 
<varname>L</varname> (esto se define en <userinput>[-L,L]</userinput> y extendido periódicamente) con 
coeficientes hasta <varname>N</varname>-ésimo harmónico calculado numéricamente. Esto es, la serie 
trigonométrica real compuesta de senos y cosenos. Los coeficientes se calculan por la integración numérica al 
utilizar <link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Devuelve un vector de coeficientes de coseno de la serie de Fourier de <function>f</function> 
con medio periodo <varname>L</varname>. Es decir, se toma <function>f</function> definida en 
<userinput>[0,L]</userinput> toma la extensión periódica par y calcula la serie de Fourier, que sólo tiene 
cosenos como términos. La serie se calcula hasta la <varname>N</varname>-ésima harmónica. Los coeficientes se 
calculan por la integración numérica al utilizar <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>. Tenga en cuenta que 
<userinput>a@(1)</userinput> es el coeficiente constante. Es decir, <userinput>a@(n)</userinput> se refiere a 
el término <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
+         <para>Devuelve una función que es el coseno de la serie de Fourier de <function>f</function> con 
medio periodo <varname>L</varname>. Es decir, se toma <function>f</function> definida en 
<userinput>[0,L]</userinput> toma la extensión periódica par y calcula la serie de Fourier, que sólo tiene 
coseno como términos. La serie se calcula hasta la <varname>N</varname>-ésima harmónica. Los coeficientes se 
calculan por la integración numérica al utilizar <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Devuelve un vector de coeficientes de senos de la serie de Fourier de <function>f</function> 
con medio periodo <varname>L</varname>. Es decir, se toma <function>f</function> definido en 
<userinput>[0,L]</userinput> toma la extensión periódica impar y calcula la serie de Fourier, que sólo tiene 
senos como términos. La serie se calcula hasta el <varname>N</varname>-ésimo harmónico. Los coeficientes se 
calculan por la integración numérica al utilizar <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
+         <para>Devuelve una función que es el seno de la serie de Fourier de <function>f</function> con 
medio periodo <varname>L</varname>. Es decir, se toma <function>f</function> definida en 
<userinput>[0,L]</userinput> toma la extensión periódica impar y calcula ls series de Fourier, que sólo tiene 
seno como términos. La serie se calcula hasta la <varname>N</varname>-ésima harmónica. Los coeficientes se 
calculan por la integración numérica al utilizar <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
+         <listitem>
+          <synopsis>NumericalIntegral (f,a,b)</synopsis>
+          <para>Integración por el conjunto de reglas en NumericalIntegralFunction de f desde «a» a «b» 
usando NumericalIntegralSteps pasos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
+         <listitem>
+          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
+          <para>Intentar calcular la derivada numérica por la izquierda.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
+         <listitem>
+          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerance,successive_for_success,N)</synopsis>
+          <para>Intentar calcular el límite de f(step_fun(i)), para i desde 1 hasta N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
+         <listitem>
+          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
+          <para>Intentar calcular la derivada numérica por la derecha.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
+         <listitem>
+          <synopsis>OddPeriodicExtension (f,L)</synopsis>
+         <para>Devuelve una función que es la extensión periódica impar de <function>f</function> con medio 
periodo <varname>L</varname>. Esto es una función definida en el intervalo <userinput>[0,L]</userinput> 
extendida para ser impar en <userinput>[-L,L]</userinput> y entonces extendida para ser periódica con periodo 
<userinput>2*L</userinput>.</para>
+         <para>Consulte también <link 
linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link> y <link 
linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Calcular la derivada de un lado usando una fórmula de 5 puntos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Calcular la derivada de un lado usando una fórmula de tres puntos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
+         <listitem>
+          <synopsis>PeriodicExtension (f,a,b)</synopsis>
+         <para>Devuelve una función que es la extensión periódica de <function>f</function> que se define en 
el intervalo <userinput>[a,b]</userinput> y tiene un periodo <userinput>b-a</userinput>.</para>
+         <para>Consulte también <link 
linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> y <link 
linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.</para>
+         <para>Desde la versión 1.0.7 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
+         <listitem>
+          <synopsis>RightLimit (f,x0)</synopsis>
+          <para>Calcular el límite por la derecha de una función real en x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Calcular la derivada de dos lados usando una fórmula de cinco puntos.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Calcular la derivada de dos lados usando una fórmula de tres puntos.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-functions">
+      <title>Funciones</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Argument"/>Argument</term>
+         <listitem>
+          <synopsis>Argument (z)</synopsis>
+          <para>Alias: <function>Arg</function><function>arg</function></para>
+          <para>argumento (ángulo) de un número complejo.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
+         <listitem>
+          <synopsis>BesselJ0 (x)</synopsis>
+          <para>Función de Bessel de primer tipo de orden 0. Implementada solo para números reales.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
+         <listitem>
+          <synopsis>BesselJ1 (x)</synopsis>
+          <para>Función de Bessel de primer tipo de orden 1. Implementada solo para números reales.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
+         <listitem>
+          <synopsis>BesselJn (n,x)</synopsis>
+         <para>Función de Bessel de primer tipo de orden <varname>n</varname>. Implementada solo para 
números reales.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
+         <listitem>
+          <synopsis>BesselY0 (x)</synopsis>
+          <para>Función de Bessel de segundo tipo de orden 0. Implementada solo para números reales.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
+         <listitem>
+          <synopsis>BesselY1 (x)</synopsis>
+          <para>Función de Bessel de segunto tipo de orden 1. Implementada solo para números reales.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
+         <listitem>
+          <synopsis>BesselYn (n,x)</synopsis>
+         <para>Función de Bessel de segundo tipo de orden <varname>n</varname>. Implementada solo para 
números reales.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
+         <listitem>
+          <synopsis>DirichletKernel (n,t)</synopsis>
+         <para>Núcleo de Dirichlet de orden <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
+         <listitem>
+          <synopsis>DiscreteDelta (v)</synopsis>
+          <para>Devuelve 1 si y sólo si todos los elementos son cero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
+         <listitem>
+          <synopsis>ErrorFunction (x)</synopsis>
+          <para>Alias: <function>erf</function></para>
+          <para>La función de error, 2/sqrt(pi) * int_0^x e^(-t^2) dt.</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Error_function";>Wikipedia</ulink> o 
<ulink url="http://planetmath.org/ErrorFunction";>Planetmath</ulink> para obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
+         <listitem>
+          <synopsis>FejerKernel (n,t)</synopsis>
+          <para>Núcleo de Fejer de orden <varname>n</varname> evaluado en <varname>t</varname></para>
+          <para>Consulte <ulink url="http://planetmath.org/FejerKernel";>Planetmath</ulink> para obtener más 
información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
+         <listitem>
+          <synopsis>GammaFunction (x)</synopsis>
+          <para>Alias: <function>Gamma</function></para>
+          <para>La función «Gamma». Actualmente sólo implementada para valores reales.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/GammaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Gamma_function";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
+         <listitem>
+          <synopsis>KroneckerDelta (v)</synopsis>
+          <para>Devuelve 1 si y sólo si todos los elementos son iguales.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertW"/>LambertW</term>
+         <listitem>
+          <synopsis>LambertW (x)</synopsis>
+         <para>La rama principal de la función de Lambert W calculada sólo para los valores reales más 
grandes o iguales que <userinput>-1/e</userinput>. Es decir, que la función <function>LambertW</function> es 
la inversa de la expresión <userinput>x*e^x</userinput>. Incluso para una variable real <varname>x</varname> 
esta expresión no es uno a uno y por lo tanto tiene dos ramas más <userinput>[-1/e,0)</userinput>. Consulte 
<link linkend="gel-function-LambertWm1"><function>LambertWm1</function></link> para otras ramas reales.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertWm1"/>LambertWm1</term>
+         <listitem>
+          <synopsis>LambertWm1 (x)</synopsis>
+         <para>La rama menos uno «-1» de la función de Lambert W calculada sólo para valores reales más 
grandes o igual a <userinput>-1/e</userinput> y menor que 0. Es decir, <function>LambertWm1</function> es la 
segunda rama de la inversa de <userinput>x*e^x</userinput>. Consulte <link 
linkend="gel-function-LambertW"><function>LambertW</function></link> para la rama principal.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
+         <listitem>
+          <synopsis>MinimizeFunction (func,x,incr)</synopsis>
+          <para>Buscar el primer valor donde f(x)=0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
+         <listitem>
+          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
+          <para>Mapa de Moebius del disco a sí mismo mapeando a 0.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
+         <listitem>
+          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
+          <para>Mapa de Moebius usando el radio cruzado z2,z3,z4 a 1,0 e infinito respectivamente.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
+          <para>Mapa de Moebius usando el radio cruzado tomando infinito a infinito y z2,z3 a 1 y 0 
respectivamente.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
+          <para>Mapa de Moebius usando la relación cruzada tomando de infinito a 1 y z3,z4 a 0 e infinito 
respectivamente.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
+          <para>Mapa de Moebius usando la relación cruzada tomando de infinito a 0 y z2,z4 a 1 e infinito 
respectivamente.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
+         <listitem>
+          <synopsis>PoissonKernel (r,sigma)</synopsis>
+          <para>El núcleo de Poisson en D(0,1) (no normalizado a 1, esto es, su integral es 2pi).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
+         <listitem>
+          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
+          <para>El núcleo de Poisson en D(0,R) (no normalizado a 1).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
+         <listitem>
+          <synopsis>RiemannZeta (x)</synopsis>
+          <para>Alias: <function>zeta</function></para>
+          <para>La función «zeta de Riemann». Actualmente sólo implementada para valores reales.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RiemannZetaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Riemann_zeta_function";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
+         <listitem>
+          <synopsis>UnitStep (x)</synopsis>
+          <para>La función escalón unitario es 0 para x&lt;0, 1 si no. Es la integral de la función delta de 
Dirac. También llamada función de Heaviside.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Unit_step";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cis"/>cis</term>
+         <listitem>
+          <synopsis>cis (x)</synopsis>
+          <para>La función <function>cis</function> es la misma que 
<userinput>cos(x)+1i*sin(x)</userinput></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
+         <listitem>
+          <synopsis>deg2rad (x)</synopsis>
+          <para>Convertir grados a radianes.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
+         <listitem>
+          <synopsis>rad2deg (x)</synopsis>
+          <para>Convertir radianes a grados.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinc"/>sinc</term>
+         <listitem>
+          <synopsis>sinc (x)</synopsis>
+         <para>Calcular la función sinc no normalizada, esto es <userinput>sin(x)/x</userinput>. Si quiere 
normalizar la función utilice <userinput>sinc(pi*x)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sinc";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-equation-solving">
+      <title>Resolución de ecuaciones</title>
+      <variablelist>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
+         <listitem>
+          <synopsis>CubicFormula (p)</synopsis>
+          <para>Calcular las raíces de un polinomio cúbico (de grado 3) utilizando la fórmula cúbica. El 
polinomio se dará como un vector de coeficientes. Esto es <userinput>4*x^3 + 2*x + 1</userinput> que 
corresponde al vector <userinput>[1,2,0,4]</userinput>. Devuelve un vector columna de tres soluciones. La 
primera solución siempre es la real como un cúbico siempre tiene una solución real.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CubicFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/CubicFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Cubic_equation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
+         <listitem>
+          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
+          <para>Utilizar el método clásico de Euler para resolver numéricamente y'=f(x,y) de forma inicial 
<varname>x0</varname>, <varname>y0</varname> pasan a <varname>x1</varname> con <varname>n</varname> 
incrementos, devuelve <varname>y</varname> junto con <varname>x1</varname>. Excepto que especifique 
explícitamente que quiere utilizar el método clásico de Euler, piense en utilizar <link 
linkend="gel-function-RungeKutta">RungeKutta</link> para resolver ODE.</para>
+         <para>Los sistemas se pueden resolver teniendo a <varname>y</varname> como un vector (columna) en 
cualquier parte. Es decir, <varname>y0</varname> puede ser un vector en cuyo caso <varname>f</varname> será 
un número <varname>x</varname> y un vector del mismo tamaño para el segundo argumento y devolverá un vector 
del mismo tamaño.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
+         <listitem>
+          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKuttaFull">RungeKuttaFull</link>
+           for solving ODE.
+           Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>Ejemplo: <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen></para>
+         <para>Los sistemas se pueden resolver teniendo a <varname>y</varname> como un vector (columna) en 
cualquier parte. Es decir, <varname>y0</varname> puede ser un vector en cuyo caso <varname>f</varname> será 
un número <varname>x</varname> y un vector del mismo tamaño para el segundo argumento y devolverá un vector 
del mismo tamaño.</para>
+         <para>La salida para un sistema es todavía una matriz de n por 2 siendo la segunda entrada un 
vector. Si quiere dibujar la línea, asegúrese de utilizar fila de vectores, y aplanar la matriz con <link 
linkend="gel-function-ExpandMatrix">ExpandMatrix</link>, y pulse sobre las columnas de la derecha. Ejemplo: 
<screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen></para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
+         <listitem>
+          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
+          <para>Buscar la raíz de una función utilizando el método de la bisección. <varname>a</varname> y 
<varname>b</varname> son los límites iniciales del intervalo, <userinput>f(a)</userinput> y 
<userinput>f(b)</userinput> deben tener signos opuestos. <varname>TOL</varname> es la tolerancia deseada y 
<varname>N</varname> es el límite del número de iteraciones a ejecutar, 0 indica sin límites. La función 
devuelve un vector <userinput>[success,value,iteration]</userinput>, donde <varname>success</varname> un 
booleano que indica el éxito, <varname>value</varname> es el último valor calculado, e 
<varname>iteration</varname> es el número de iteraciones realizadas.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
+         <listitem>
+          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
+          <para>Buscar la raíz de una función utilizando el método de la posición falsa. 
<varname>a</varname> y <varname>b</varname> son los valores iniciales del intervalo, 
<userinput>f(a)</userinput> y <userinput>f(b)</userinput> deben tener signos opuestos. <varname>TOL</varname> 
es la tolerancia deseada y <varname>N</varname> es el límite del número de iteraciones a ejecutar, 0 indica 
sin límites. La función devuelve un vector <userinput>[success,value,iteration]</userinput>, donde 
<varname>success</varname> es un booleano que indica el éxito, <varname>value</varname> es el último valor 
calculado, e <varname>iteration</varname> es el número de iteraciones realizadas.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
+         <listitem>
+          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
+          <para>Buscar la raíz de una función utilizando el método de Muller. <varname>TOL</varname> es la 
tolerancia deseada y <varname>N</varname> es el límite del número de iteraciones a ejecutar, 0 indica sin 
límites. La función devuelve un vector <userinput>[success,value,iteration]</userinput>, donde 
<varname>success</varname> un booleano que indica el éxito, <varname>value</varname> es el último valor 
calculado, e <varname>iteration</varname> es el número de iteraciones realizadas.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
+         <listitem>
+          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
+          <para>Buscar la raíz de una función utilizando el método de la secante. <varname>a</varname> y 
<varname>b</varname> son los límites iniciales del intervalo, <userinput>f(a)</userinput> y 
<userinput>f(b)</userinput> deben tener signos opuestos. <varname>TOL</varname> es la tolerancia deseada y 
<varname>N</varname> es el límite del número de iteraciones a ejecutar, 0 indica sin límites. La función 
devuelve un vector <userinput>[success,value,iteration]</userinput>, donde <varname>success</varname> es un 
booleano que indica el éxito, <varname>value</varname> es el último valor calculado, e 
<varname>iteration</varname> es el número de iteraciones realizadas.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
+         <listitem>
+          <synopsis>HalleysMethod (f,df,ddf,guess,epsilon,maxn)</synopsis>
+         <para>Encontrar ceros utilizando el método de Halleys. Siendo <varname>f</varname> la función, 
<varname>df</varname> es la derivada de <varname>f</varname>, y <varname>ddf</varname> es la segunda derivada 
de <varname>f</varname>. La variable <varname>guess</varname> es la aproximación inicial. La función devuelve 
después dos valores sucesivos que están dentro de los límites que marca <varname>epsilon</varname> o después 
de <varname>maxn</varname> iteraciones en cuyo caso devuelve <constant>null</constant> indicando un 
fallo.</para>
+         <para>Consulte también <link 
linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link> y <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.</para>
+         <para>Ejemplo para encontrar la raíz cuadrada de 10: <screen><prompt>genius&gt;</prompt> 
<userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Halley%27s_method";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethod"/>NewtonsMethod</term>
+         <listitem>
+          <synopsis>NewtonsMethod (f,df,guess,epsilon,maxn)</synopsis>
+         <para>Encontrar ceros utilizando el método de Newton. La variable <varname>f</varname> es la 
función y <varname>df</varname> es la derivada de <varname>f</varname>. La variable <varname>guess</varname> 
el supuesto inicial. La función devuelve después dos valores sucesivos que están dentro de los límites que 
marca <varname>epsilon</varname> o después de <varname>maxn</varname> iteraciones en cuyo caso devuelve 
<constant>null</constant> indicando un fallo.</para>
+         <para>Consulte también <link 
linkend="gel-function-NewtonsMethodPoly"><function>NewtonsMethodPoly</function></link> y <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.</para>
+         <para>Ejemplo para encontrar la raíz cuadrade de 10: <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
+         <listitem>
+          <synopsis>PolynomialRoots (p)</synopsis>
+          <para>Calcular las raíces de un polinomio (de grado 1 a 4) utilizando una de las fórmulas para 
cada polinomio. El polinomio entregará un vector de coeficientes. Esto es <userinput>4*x^3 + 2*x + 
1</userinput> que corresponde al vector <userinput>[1,2,0,4]</userinput>. Devuelve un vector columna de las 
soluciones.</para>
+         <para>La función llama a <link linkend="gel-function-QuadraticFormula">QuadraticFormula</link>, 
<link linkend="gel-function-CubicFormula">CubicFormula</link>, y a <link 
linkend="gel-function-QuarticFormula">QuarticFormula</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
+         <listitem>
+          <synopsis>QuadraticFormula (p)</synopsis>
+          <para>Calcular las raíces de una polinomio cuadrático (de grado 2) utilizando la fórmula 
cuadrática. El polinomio será un vector de coeficientes. Es es <userinput>3*x^2 + 2*x + 1</userinput> que 
corresponde con el vector <userinput>[1,2,3]</userinput>. Devuelve un vector columna de las dos 
soluciones.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticFormula";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/QuadraticFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quadratic_formula";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
+         <listitem>
+          <synopsis>QuarticFormula (p)</synopsis>
+          <para>Calcular las raíces de un polinomio cuadrático (de grado 4) utilizando la fórmula 
cuadrática. El polinomio será un vector de coeficientes. Esto es <userinput>5*x^4 + 2*x + 1</userinput> que 
corresponde con el vector <userinput>[1,2,0,0,5]</userinput>. Devuelve un vector columna de las cuatro 
soluciones.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuarticFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/QuarticEquation.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quartic_equation";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
+         <listitem>
+          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
+          <para>Utilizar el método clásico no adaptativo de cuarto orden Runge-Kutta para resolver 
numéricamente y'=f(x,y) que de forma inicial <varname>x0</varname>, <varname>y0</varname> tienden a 
<varname>x1</varname> con <varname>n</varname> incrementos, devuelve <varname>y</varname> en 
<varname>x1</varname>.</para>
+         <para>Los sistemas se pueden resolver teniendo a <varname>y</varname> como un vector (columna) en 
cualquier parte. Es decir, <varname>y0</varname> puede ser un vector en cuyo caso <varname>f</varname> será 
un número <varname>x</varname> y un vector del mismo tamaño para el segundo argumento y devolverá un vector 
del mismo tamaño.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
+         <listitem>
+          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.  Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>Example: <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen></para>
+         <para>Los sistemas se pueden resolver teniendo a <varname>y</varname> como un vector (columna) en 
cualquier parte. Es decir, <varname>y0</varname> puede ser un vector en cuyo caso <varname>f</varname> será 
un número <varname>x</varname> y un vector del mismo tamaño para el segundo argumento y devolverá un vector 
del mismo tamaño.</para>
+         <para>La salida de un sistema todavía es una matriz de n por 2 siendo la segunda entrada un vector. 
Si quiere dibujar la línea, asegúrese de utilizar filas de vectores, y aplane la matriz con <link 
linkend="gel-function-ExpandMatrix">ExpandMatrix</link>, y pulse a la derecha de las columnas. Ejemplo: 
<screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen></para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Desde la versión 1.0.10 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-statistics">
+      <title>Estadísticas</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Average"/>Average</term>
+         <listitem>
+          <synopsis>Average (m)</synopsis>
+          <para>Alias: <function>average</function><function>Mean</function><function>mean</function></para>
+          <para>Calculate average (the arithmetic mean) of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
+         <listitem>
+          <synopsis>GaussDistribution (x,sigma)</synopsis>
+         <para>Integral de la función de Gauss desde 0 a <varname>x</varname> (área debajo de la curva 
normal).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
+         <listitem>
+          <synopsis>GaussFunction (x,sigma)</synopsis>
+          <para>La función de distribución Gausiana normalizada (la curva normal).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Median"/>Median</term>
+         <listitem>
+          <synopsis>Median (m)</synopsis>
+          <para>Alias: <function>median</function></para>
+          <para>Calcular la mediana de una matriz entera.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>PopulationStandardDeviation (m)</synopsis>
+          <para>Alias: <function>stdevp</function></para>
+          <para>Calcular la desviación de población típica de una matriz completa.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
+         <listitem>
+          <synopsis>RowAverage (m)</synopsis>
+          <para>Alias: <function>RowMean</function></para>
+         <para>Calculate average of each row in a matrix.  That is, compute the
+         arithmetic mean.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
+         <listitem>
+          <synopsis>RowMedian (m)</synopsis>
+          <para>Calcular la mediana de cada fila en una matriz y devolver una vector columna de las 
medianas.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
+          <para>Alias: <function>rowstdevp</function></para>
+          <para>Calcular la desviación típica de las columnas de una matriz y devuelve una matriz 
columna.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
+         <listitem>
+          <synopsis>RowStandardDeviation (m)</synopsis>
+          <para>Alias: <function>rowstdev</function></para>
+          <para>Calcular la desviación estándar de las filas de una matriz y devuelve una matriz 
columna.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+        <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
+         <listitem>
+          <synopsis>StandardDeviation (m)</synopsis>
+          <para>Alias: <function>stdev</function></para>
+          <para>Calcular la desviación estándar de una matriz entera.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-polynomials">
+      <title>Polinomios</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
+         <listitem>
+          <synopsis>AddPoly (p1,p2)</synopsis>
+          <para>Suma dos polinomios (vectores).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
+         <listitem>
+          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
+          <para>Dividir dos polinomios (como vectores) utilizando la división larga. Devuelve el cociente de 
los dos polinomios. El argumento opcional <varname>r</varname> se utiliza para devolver el residuo. El 
residuo tendrá el grado más bajo que <varname>q</varname>.</para>
+          <para>Consulte <ulink url="http://planetmath.org/PolynomialLongDivision";>Planetmath</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
+         <listitem>
+          <synopsis>IsPoly (p)</synopsis>
+          <para>Comprobar si un vector se puede usar como un polinomio.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
+         <listitem>
+          <synopsis>MultiplyPoly (p1,p2)</synopsis>
+          <para>Multiplica dos polinomios (como vectores).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
+         <listitem>
+          <synopsis>NewtonsMethodPoly (poly,guess,epsilon,maxn)</synopsis>
+         <para>Encontrar una raíz de un polinomio utilizando el método de Newton. La variable 
<varname>poly</varname> es el polinomio en forma vectorial y <varname>guess</varname> es la suposición 
inicial. La función devuelve después dos valores sucesivos que están dentro de los límites que marca 
<varname>epsilon</varname> o después de <varname>maxn</varname> iteraciones en cuyo caso devuelve 
<constant>null</constant> indicando un fallo.</para>
+         <para>Consulte también <link 
linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link>.</para>
+         <para>Ejemplo para encontrar la raíz cuadrada de 10: <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
+         <listitem>
+          <synopsis>Poly2ndDerivative (p)</synopsis>
+          <para>Tomar la derivada segunda (como vector) polinómico.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
+         <listitem>
+          <synopsis>PolyDerivative (p)</synopsis>
+          <para>Tomar la derivada (como vector) polinómico.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
+         <listitem>
+          <synopsis>PolyToFunction (p)</synopsis>
+          <para>Extraer una función de un polinomio (como vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
+         <listitem>
+          <synopsis>PolyToString (p,var...)</synopsis>
+          <para>Extraer una cadena de un polinomio (como vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
+         <listitem>
+          <synopsis>SubtractPoly (p1,p2)</synopsis>
+          <para>Restar dos polinomios (como vectores).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
+         <listitem>
+          <synopsis>TrimPoly (p)</synopsis>
+          <para>Eliminar ceros de un polinomio (como vector).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-set-theory">
+      <title>Teoría de conjuntos</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Intersection"/>Intersection</term>
+         <listitem>
+          <synopsis>Intersection (X,Y)</synopsis>
+          <para>Devuelve la intersección de X e Y (X e Y son vectores que se tratan como conjuntos).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIn"/>IsIn</term>
+         <listitem>
+          <synopsis>IsIn (x,X)</synopsis>
+         <para>Devuelve <constant>true</constant> si <literal>X</literal> es un subconjunto de 
<literal>Y</literal> (<literal>X</literal> e <literal>Y</literal> son vectores que se tratan como 
conjuntos).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
+         <listitem>
+          <synopsis>IsSubset (X, Y)</synopsis>
+         <para>Devuelve <constant>true</constant> si <literal>X</literal> es un subconjunto de 
<literal>Y</literal> (<literal>X</literal> e <literal>Y</literal> son vectores que se tratan como 
conjuntos).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
+         <listitem>
+          <synopsis>MakeSet (X)</synopsis>
+          <para>Devuelve un vector donde cada elemento de X aparece una sola vez.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
+         <listitem>
+          <synopsis>SetMinus (X,Y)</synopsis>
+          <para>Devuelve un conjunto teorético de diferencia X-Y (X e Y son vectores que pretender ser 
conjuntos).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Union"/>Union</term>
+         <listitem>
+          <synopsis>Union (X,Y)</synopsis>
+          <para>Devuelve la unión de X e Y (X e Y son vectores que se tratan como conjuntos).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-commutative-algebra">
+      <title>Álgebra conmutativa</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
+         <listitem>
+          <synopsis>MacaulayBound (c,d)</synopsis>
+          <para>Para una función de Hilbert que es c de grado d, dada la función de Macaulay obligado por la 
función de Hilbert de grado d+1 (el c^&lt;d&gt; operador de la prueba de Green).</para>
+         <para>Desde la versión 1.0.15 en adelante.</para>
+         </listitem>
+        </varlistentry>
+       
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
+         <listitem>
+          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
+          <para>El operador c_&lt;d&gt; de la prueba de Green del teorema de Macaulay.</para>
+         <para>Desde la versión 1.0.15 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
+         <listitem>
+          <synopsis>MacaulayRep (c,d)</synopsis>
+          <para>Devolver la representación dth de Macaulay de un entero positivo c.</para>
+         <para>Desde la versión 1.0.15 en adelante.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-miscellaneous">
+      <title>Miscelánea</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
+         <listitem>
+          <synopsis>ASCIIToString (vec)</synopsis>
+          <para>Convert a vector of ASCII values to a string.
+                 See also
+                 <link linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
+= "abc"
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
+         <listitem>
+          <synopsis>AlphabetToString (vec,alfabeto)</synopsis>
+         <para>Convert a vector of 0-based alphabet values (positions in the alphabet string) to a string.  
A <constant>null</constant> vector results in an empty string.
+                 See also
+                 <link linkend="gel-function-StringToAlphabet"><function>StringToAlphabet</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>AlphabetToString([1,2,3,0,0],"abcd")</userinput>
+= "bcdaa"
+<prompt>genius&gt;</prompt> <userinput>AlphabetToString(null,"abcd")</userinput>
+= ""
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
+         <listitem>
+          <synopsis>StringToASCII (cad)</synopsis>
+         <para>Convert a string to a (row) vector of ASCII values.
+                 See also
+                 <link linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
+= [97, 98, 99]
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
+         <listitem>
+          <synopsis>StringToAlphabet (str,alfabeto)</synopsis>
+         <para>Convert a string to a (row) vector of 0-based alphabet values
+                 (positions in the alphabet string), -1's for unknown letters.
+                 An empty string results in a <constant>null</constant>.
+                 See also
+                 <link linkend="gel-function-AlphabetToString"><function>AlphabetToString</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToAlphabet("cca","abcd")</userinput>
+= [2, 2, 0]
+<prompt>genius&gt;</prompt> <userinput>StringToAlphabet("ccag","abcd")</userinput>
+= [2, 2, 0, -1]
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-symbolic">
+      <title>Operaciones simbólicas</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
+         <listitem>
+          <synopsis>SymbolicDerivative (f)</synopsis>
+          <para>Intentar diferenciar simbólicamente la función «f», donde «f» es una función de una 
variable.</para>
+          <para>Ejemplos: <screen><prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(sin)</userinput>
+= (`(x)=cos(x))
+<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
+= (`(x)=(7*(2*x)))
+</screen></para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicDerivativeTry (f)</synopsis>
+         <para>Intentar diferenciar simbólicamente la función f, donde f es una función de una variable, 
devuelve <constant>null</constant> si no es satisfactoria pero es silenciosa. (Consulte <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
+          <para>Intentar diferenciar simbólicamente una función n veces. (Consulte <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
+         <para>Intentar diferenciar simbólicamente una función n veces de manera silenciosa y devolver 
<constant>null</constant> en caso de fallo. (Consulte <link 
linkend="gel-function-SymbolicNthDerivative"><function>SymbolicNthDerivative</function></link>)</para>
+          <para>Consulte la <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> para 
obtener más información.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
+         <listitem>
+          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
+         <para>Intenta construir la aproximación de Taylor alrededor de x0 hasta grado n. (Consulte <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-plotting">
+      <title>Dibujar</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
+         <listitem>
+          <synopsis>ExportPlot (archivo,tipo)</synopsis>
+          <synopsis>ExportPlot (archivo)</synopsis>
+          <para>Exportar el contenido de la ventana de dibujado a un archivo. El tipo es una cadena que 
especifica el tipo de archivo que usar, «png», «eps» o «ps». Si no se especifica el tipo, se toma a partir de 
la extensión, en cuyo caso debe ser«.png», «.eps» o «.ps».</para>
+         <para>Tenga en cuneta que los archivos se sobreescriben sin preguntar.</para>
+         <para>Al exportar correctamente, se devuelve. Si falla algo, se muestra un error y se eleva una 
excepción.</para>
+          <para>Ejemplos: <screen><prompt>genius&gt;</prompt> 
<userinput>ExportPlot("archivo.png")</userinput>
+<prompt>genius&gt;</prompt> <userinput>ExportPlot("/carpeta/archivo","eps")</userinput>
+</screen></para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
+         <listitem>
+          <synopsis>LinePlot (func1,func2,func3,...)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2])</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2,y1,y2])</synopsis>
+          <para>Dibujar una función (o varias funciones) con una línea. Los 10 primeros argumentos son 
funciones, entonces opcionalmente puede especificar los límites de las gráficas como <varname>x1</varname>, 
<varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Si no se especifican los límites, 
entonces se aplican los límites actuales (Consulte <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Si no se especifican los 
límites de y, las funciones se calculan y se usan las áreas máxima y mínima.</para>
+          <para>El parámetro <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> controla el 
dibujado de la leyenda.</para>
+          <para>Ejemplos: <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
+         <listitem>
+          <synopsis>LinePlotClear ()</synopsis>
+          <para>Muestra la ventana de dibujo lineal y limpia las funciones y otras líneas que se hubiesen 
dibujado.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
+         <listitem>
+          <synopsis>LinePlotCParametric (func,...)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <para>Dibujar una función valorada paramétrica compleja con una línea. Primero vienen las 
funciones que devuelven <computeroutput>x+iy</computeroutput>, luego, opcionalmente, los <varname>t</varname> 
límites como <userinput>t1,t2,tinc</userinput>, y límites como <userinput>x1,x2,y1,y2</userinput>.</para>
+         <para>Si los límites no se especifican, entonces se aplican las configuraciones actuales (Consulte 
<link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Si en lugar de la 
cadena se da el valor «fit» para los límites x e y, los límites son la medida máxima de la gráfica.</para>
+          <para>El parámetro <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> controla el 
dibujado de la leyenda.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
+         <listitem>
+          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
+          <synopsis>LinePlotDrawLine (v,...)</synopsis>
+          <para>Dibuja una línea desde <varname>x1</varname>,<varname>y1</varname> a 
<varname>x2</varname>,<varname>y2</varname>. Es posible reemplazar 
<varname>x1</varname>,<varname>y1</varname>, <varname>x2</varname>,<varname>y2</varname> por una matriz de 
<varname>n</varname> por 2 para obtener una curva poligonal de mayor longitud. También el vector 
<varname>v</varname> puede ser un vector columna de números complejos, esto es una matriz 
<varname>n</varname> por 1 y cada número complejo se considera un punto en el plano.</para>
+          <para>Se pueden añadir parámetros adicionales para especificar el color de la línea, ancho, 
flechas, ventanas de dibujado o leyendas. Puede modificarlo añadiendo un valor a 
<userinput>«color»</userinput>, <userinput>«ancho»</userinput>, <userinput>«ventana»</userinput>, 
<userinput>«flecha»</userinput>, o <userinput>«leyenda»</userinput>, y después especificar su color, la 
anchura, la ventana como 4 vectores, tipo de flecha, o la leyenda. (Flecha y ventana están desde la versión 
1.0.6 y posteriores.)</para>
+         <para>Si la línea se considera como un polígono relleno, relleno con el color dado, se puede 
especificar el argumento <userinput>«llenado»</userinput>. Desde la versión 1.0.22 en adelante.</para>
+         <para>La denominación del color debe ser una cadena que identifique al color según el diccionario 
inglés que GTK reconocerá como <userinput>«red»</userinput>, <userinput>«blue»</userinput>, 
<userinput>«yellow»</userinput>, etc... De forma alternativa el color se puede especificar en formato RGB 
como por ejemplo <userinput>«#rgb»</userinput>, <userinput>«#rrggbb»</userinput>, o 
<userinput>«#rrrrggggbbbb»</userinput>, donde r, g, o b son dígitos hexadecimales de los colores rojo, verde 
y azul (red, green, blue) . Finalmente, desde la versión 1.0.18, los colores se pueden especificar como 
vectores siendo el rojo, verde y azul componentes con valores que solo pueden ser 0 o 1. Por ejemplo: 
<userinput>[1.0,0.5,0.1]</userinput>.</para>
+         <para>Los valores de entrada de la ventana deben ser del tipo <userinput>[x1,x2,y1,y2]</userinput>, 
o bien, pueden ser una cadena <userinput>«ajuste»</userinput>, en cualquier caso, el rango de x se 
establecerá con precisión y el rango y se puede ajustar con cinco por ciento alrededor del borde de la 
línea.</para>
+         <para>La especificación para la flecha debería ser <userinput>«origen»</userinput>, 
<userinput>«fin»</userinput>, <userinput>«ambos»</userinput>, o <userinput>«ninguno»</userinput>.</para>
+         <para>Finalmente, la leyenda debería ser una cadena que se pueda utilizar como leyenda en un 
gráfico. Es decir, si se imprimen las leyendas.</para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</userinput>
+</screen>
+          </para>
+         <para>A diferencia de muchas otras funciones que no les importa si toman una columna o un vector 
fila, si se especifican puntos como un vector de valores complejos, debido a las posibles ambigüedades, es 
preferible que sea un vector columna.</para>
+         <para>La especificación de <varname>v</varname> como un vector columna de números complejos, se 
implementa desde la versión 1.0.22 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
+         <listitem>
+          <synopsis>LinePlotDrawPoints (x,y,...)</synopsis>
+          <synopsis>LinePlotDrawPoints (v,...)</synopsis>
+          <para>Dibuja un punto en <varname>x</varname>,<varname>y</varname>. La entrada puede ser una 
matriz <varname>n</varname> por 2  para <varname>n</varname> puntos diferentes. Esta función es esencialmente 
la misma entrada que <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>. De forma 
alternativa, el vector <varname>v</varname> puede ser un vector columna de números complejos, esto es una 
matriz <varname>n</varname> por 1 y cada número complejo se considera un punto en el plano.</para>
+          <para>Se pueden añadir parámetros adicionales para especificar el color, ancho, ventanas de 
dibujado o leyendas. Puede modificarlo añadiendo la palabra <userinput>«color»</userinput>, 
<userinput>«ancho»</userinput>, <userinput>«ventana»</userinput>, o <userinput>«leyenda»</userinput>, y 
después especificar su color, la anchura, la ventana como 4 vectores, o la leyenda.</para>
+         <para>La denominación del color debe ser una cadena que identifique al color según el diccionario 
inglés que GTK reconocerá como <userinput>«red»</userinput>, <userinput>«blue»</userinput>, 
<userinput>«yellow»</userinput>, etc... De forma alternativa el color se puede especificar en formato RGB 
como por ejemplo <userinput>«#rgb»</userinput>, <userinput>«#rrggbb»</userinput>, o 
<userinput>«#rrrrggggbbbb»</userinput>, donde r, g, o b son dígitos hexadecimales de los colores rojo, verde 
y azul (red, green, blue) . Finalmente los colores se pueden especificar como vectores siendo el rojo, verde 
y azul componentes con valores que solo pueden ser 0 o 1.</para>
+         <para>Los valores de entrada de la ventana deben ser del tipo <userinput>[x1,x2,y1,y2]</userinput>, 
o bien, pueden ser una cadena <userinput>«ajuste»</userinput>, en cualquier caso, el rango de x se 
establecerá con precisión y el rango y se puede ajustar con cinco por ciento alrededor del borde de la 
línea.</para>
+         <para>Finalmente, la leyenda debería ser una cadena que se pueda utilizar como leyenda en un 
gráfico. Es decir, si se imprimen las leyendas.</para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The 7th 
roots of unity")</userinput>
+</screen>
+          </para>
+         <para>A diferencia de muchas otras funciones que no les importa si toman una columna o un vector 
fila, si se especifica los puntos como un vector de valores complejos, debido a las posibles ambigüedades, 
siempre debe ser suministrado como un vector columna. Por lo tanto, la notificación en el último ejemplo la 
transpuesta del vector <userinput>0:6</userinput> para convertirlo en un vector columna.</para>
+         <para>Disponible desde la versión 1.0.18 en adelante. La especificación de <varname>v</varname> 
como un vector columna de números complejos, se implementa desde la versión 1.0.22 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
+         <listitem>
+          <synopsis>LinePlotMouseLocation ()</synopsis>
+          <para>Devuelve un vector fila de un punto de la línea de la pantalla de dibujado correspondiente a 
la ubicación actual del ratón. Si la trama de línea no es visible, entonces imprime un error y devuelve 
<constant> null </constant>. En este caso se debe ejecutar <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> o <link 
linkend="gel-function-LinePlotClear"><function>LinePlotClear</function></link> para poner la ventana en el 
modo de dibujado de lineas. Consulte también <link 
linkend="gel-function-LinePlotWaitForClick"><function>LinePlotWaitForClick</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
+         <listitem>
+          <synopsis>LinePlotParametric (xfunc,yfunc,...)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")</synopsis>
+          <para>Dibujar una función paramétrica con una línea. Primero vienen las funciones para 
<varname>x</varname> e <varname>y</varname> luego opcionalmente los <varname>t</varname> límites como 
<userinput>t1,t2,tinc</userinput>, y luego, opcionalmente, los límites como 
<userinput>x1,x2,y1,y2</userinput>.</para>
+         <para>Si no se especifican los límites x e y, entonces se aplican las configuraciones actuales 
(Consulte <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Si en 
lugar de la cadena se da el valor «fit» para los límites x e y, los límites son la medida máxima de la 
gráfica.</para>
+          <para>El parámetro <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> controla el 
dibujado de la leyenda.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
+         <listitem>
+          <synopsis>LinePlotWaitForClick ()</synopsis>
+          <para>Si está en el modo de dibujado de lineas, espera por un clic en la ventana de dibujado de 
lineas y devuelve la ubicación del clic como un vector fila. Si se cierra la ventana de la función devuelve 
inmediatamente con <constant>null</constant>. Si la ventana no está en modo de dibujado de lineas, esta se 
pone de forma automática. Consulte también <link 
linkend="gel-function-LinePlotMouseLocation"><function>LinePlotMouseLocation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasFreeze"/>PlotCanvasFreeze</term>
+         <listitem>
+          <synopsis>PlotCanvasFreeze ()</synopsis>
+          <para>Congela el dibujo en el lienzo de dibujado de forma temporal. Esto es útil si necesita 
dibujar un grupo de elementos y quiere demorar el dibujado para no permitir el parpadeo de una animación. 
Después de terminar con el dibujo debería descongelar el lienzo de dibujado llamando a la función <link 
linkend="gel-function-PlotCanvasThaw"><function>PlotCanvasThaw</function></link>.</para>
+          <para>El lienzo está siempre desbloqueado hasta el final de cualquier proceso, así que nunca 
permanece bloqueado. El momento en que se muestra una nueva línea de comandos, por ejemplo, el lienzo de 
dibujado se descongela automáticamente. También tenga en cuenta que las llamadas a congelar y descongelar 
puede anidarse de manera segura.</para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
+         <listitem>
+          <synopsis>PlotCanvasThaw ()</synopsis>
+          <para>Descongela el lienzo de dibujado congelado por la función <link 
linkend="gel-function-PlotCanvasFreeze"><function>PlotCanvasFreeze</function></link> y volver a dibujar el 
lienzo inmediatamente. El lienzo también se descongelará al finalizar la ejecución de cualquier 
programa.</para>
+         <para>Desde la versión 1.0.18 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
+         <listitem>
+          <synopsis>PlotWindowPresent ()</synopsis>
+          <para>Muestra y eleva la ventana de dibujo, creándola si es necesario. Normalmente, la ventana se 
crea cuando se invoca a una de las funciones de dibujo, pero no siempre la eleva si está debajo de otra 
ventana. Esta función es buena para utilizar en un archivo de órdenes llamado «script» en inglés, donde la 
ventana de dibujo ha sido creada anteriormente, y por ahora, oculta detrás de la consola u otras 
ventanas.</para>
+         <para>Desde la versión 1.0.19 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
+         <listitem>
+          <synopsis>SlopefieldClearSolutions ()</synopsis>
+          <para>Borra las soluciones elaboradas por la función <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
+         <listitem>
+          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
+          <para>Cuando un campo de dibujo de gráficas está activo, dibuja una solución con las condiciones 
iniciales especificas. El método estándar de Runge-Kutta se usa con incremento <varname>dx</varname>. Las 
soluciones permanecen en la gráfica hasta que se muestre un dibujo diferente o se llame a <link 
linkend="gel-function-SlopefieldClearSolutions"><function>SlopefieldClearSolutions</function></link>. También 
puede utilizar la interfaz gráfica para dibujar soluciones y especificar las condiciones iniciales con el 
ratón.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
+         <listitem>
+          <synopsis>SlopefieldPlot (func)</synopsis>
+          <synopsis>SlopefieldPlot (func,x1,x2,y1,y2)</synopsis>
+          <para>Dibujar un campo inclinado. La función <varname>func</varname> tomará dos números reales 
<varname>x</varname> e <varname>y</varname>, o un número complejo. De manera opcional se especificarán los 
límites de la ventana de dibujo con <varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, 
<varname>y2</varname>. Si no se especifica ningún límite, se aplicarán los que estén configurados actualmente 
(Consulte <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
+          <para>El parámetro <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> controla el 
dibujado de la leyenda.</para>
+          <para>Ejemplos: <screen><prompt>genius&gt;</prompt> 
<userinput>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+       <varlistentry>
+        <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
+         <listitem>
+          <synopsis>SurfacePlot (func)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2)</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2])</synopsis>
+          <para>Dibujar una función superficial que tome entre dos argumentos o un número complejo. Primero 
vienen las funciones que las limitan de forma opcional <varname>x1</varname>, <varname>x2</varname>, 
<varname>y1</varname>, <varname>y2</varname>, <varname>z1</varname>, <varname>z2</varname>. Si no se 
especifican los límites, entonces las configuraciones actuales se aplicarán (Consulte <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>). Genius sólo puede 
dibujar una función superficial sencilla por el momento.</para>
+          <para>Si no se especifican los límites de z, se usan los valores máximo y mínimo de la 
función.</para>
+          <para>Ejemplos: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
+         <listitem>
+          <synopsis>SurfacePlotClear ()</synopsis>
+          <para>Muestra la ventana de dibujo lineal y limpia las funciones y otras líneas que se hubiesen 
dibujado.</para>
+          <para>Disponible en la versión 1.0.19 y posteriores.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
+         <listitem>
+          <synopsis>SurfacePlotData (datos)</synopsis>
+          <synopsis>SurfacePlotData (datos,etiqueta)</synopsis>
+          <synopsis>SurfacePlotData (datos,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (datos,etiqueta,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (datos,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotData (datos,etiqueta,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <para>Dibujar una superficie a partir de los datos. Los datos son una matriz de n x 3 cuyas filas 
son las coordenadas x, y, z. Los datos pueden ser un vector cuya longitud sea múltiplo de 3 y que contenga 
los triples de x, y z. Los datos deben contener al menos 3 puntos.</para>
+          <para>Opcionalmente, se pueden indicar una etiqueta y los límites. Si no se indican los límites, 
se calculan a partir de los datos, no se usa <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link> pero, si quiere 
usarla, debe pasarla explícitamente. Si no se indica una etiqueta, se usa una etiqueta vacía.</para>
+          <para>Ejemplos: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(datos,"Mis datos")</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(datos,-1,1,-1,1,0,10)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(datos,SurfacePlotWindow)</userinput>
+</screen></para>
+         <para>Esto es un ejemplo de cómo dibujar con coordenadas polares, en particular, cómo dibujar la 
función <userinput>-r^2 * theta</userinput>: <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>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
+</screen></para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
+         <listitem>
+          <synopsis>SurfacePlotDataGrid (datos,[x1,x2,y1,y2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (datos,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (datos,[x1,x2,y1,y2],etiqueta)</synopsis>
+          <synopsis>SurfacePlotDataGrid (datos,[x1,x2,y1,y2,z1,z2],etiqueta)</synopsis>
+          <para>Dibujar una superficie a partir de datos rectangulares regulares. Los datos se dan en una 
matriz matriz de n x m donde las filas son la coordenada x y las columnas son la coordenada y. La coordenada 
x se divide en n-1 subintervalos iguales y la coordenada y se divide en m-1 subintervalos iguales. Los 
límites <varname>x1</varname> y <varname>x2</varname> dan el intervalo en el eje x usado y los límites 
<varname>y1</varname> e <varname>y2</varname> dan el intervalo en el eje y usado. Si los límites 
<varname>z1</varname> y <varname>z2</varname> no se indican, se calculan a partir de los datos (para obtener 
valores extremos de los datos).</para>
+          <para>Opcionalmente se puede indicar la etiqueta; si no se indica ninguna, se unas una etiqueta 
vacía.</para>
+          <para>Ejemplos: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = 
(0.1*i-1)^2-(0.1*j)^2;</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"half a saddle")</userinput>
+</screen></para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
+          <synopsis>SurfacePlotDrawLine (v,...)</synopsis>
+          <para>Dibuja una línea desde <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname> 
hasta <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname>. 
<varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname>, 
<varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname> se puede reemplazar por una matriz de 
<varname>n</varname> por 3 para obtener una curva poligonal de mayor longitud.</para>
+          <para>Se pueden añadir parámetros adicionales para especificar el color de la línea, ancho, 
ventanas de dibujado o leyendas. Puede modificarlo añadiendo un valor a <userinput>«color»</userinput>, 
<userinput>«ancho»</userinput>, <userinput>«ventana»</userinput>,o <userinput>«leyenda»</userinput>, y 
después especificar su color, la anchura, la ventana como 6 vectores, o la leyenda.</para>
+         <para>La denominación del color debe ser una cadena que identifique al color según el diccionario 
inglés que GTK reconocerá como <userinput>«red»</userinput>, <userinput>«blue»</userinput>, 
<userinput>«yellow»</userinput>, etc... De forma alternativa el color se puede especificar en formato RGB 
como por ejemplo <userinput>«#rgb»</userinput>, <userinput>«#rrggbb»</userinput>, o 
<userinput>«#rrrrggggbbbb»</userinput>, donde r, g, o b son dígitos hexadecimales de los colores rojo, verde 
y azul (red, green, blue) . Finalmente, desde la versión 1.0.18, los colores se pueden especificar como 
vectores siendo el rojo, verde y azul componentes con valores que solo pueden ser 0 o 1. Por ejemplo: 
<userinput>[1.0,0.5,0.1]</userinput>.</para>
+         <para>Los valores de entrada de la ventana deben ser del tipo 
<userinput>[x1,x2,y1,y2,z1,z2]</userinput>, o bien, pueden ser una cadena <userinput>«ajuste»</userinput>, en 
cualquier caso, el rango de x se establecerá con precisión y el rango y se puede ajustar con cinco por ciento 
alrededor del borde de la línea.</para>
+         <para>Finalmente, la leyenda debería ser una cadena que se pueda utilizar como leyenda en un 
gráfico. Es decir, si se imprimen las leyendas.</para>
+         <para>Ejemplos: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])</userinput>
+</screen></para>
+         <para>Disponible desde la versión 1.0.19 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawPoints (x,y,z,...)</synopsis>
+          <synopsis>SurfacePlotDrawPoints (v,...)</synopsis>
+          <para>Dibuja un punto en <varname>x</varname>,<varname>y</varname>,<varname>z</varname>. La 
entrada puede ser una <varname>n</varname> por 3 matriz para <varname>n</varname> puntos diferentes. Esta 
función es esencialmente la misma entrada que <link 
linkend="gel-function-SurfacePlotDrawLine">SurfacePlotDrawLine</link>.</para>
+          <para>Se pueden añadir parámetros adicionales para especificar el color de la línea, ancho, 
ventanas de dibujado o leyendas. Puede modificarlo añadiendo un valor a <userinput>«color»</userinput>, 
<userinput>«ancho»</userinput>, <userinput>«ventana»</userinput>,o <userinput>«leyenda»</userinput>, y 
después especificar su color, la anchura, la ventana como 6 vectores, o la leyenda.</para>
+         <para>La denominación del color debe ser una cadena que identifique al color según el diccionario 
inglés que GTK reconocerá como <userinput>«red»</userinput>, <userinput>«blue»</userinput>, 
<userinput>«yellow»</userinput>, etc... De forma alternativa el color se puede especificar en formato RGB 
como por ejemplo <userinput>«#rgb»</userinput>, <userinput>«#rrggbb»</userinput>, o 
<userinput>«#rrrrggggbbbb»</userinput>, donde r, g, o b son dígitos hexadecimales de los colores rojo, verde 
y azul (red, green, blue) . Finalmente los colores se pueden especificar como vectores siendo el rojo, verde 
y azul componentes con valores que solo pueden ser 0 o 1.</para>
+         <para>Los valores de entrada de la ventana deben ser del tipo 
<userinput>[x1,x2,y1,y2,z1,z2]</userinput>, o bien, pueden ser una cadena <userinput>«ajuste»</userinput>, en 
cualquier caso, el rango de x se establecerá con precisión y el rango y se puede ajustar con cinco por ciento 
alrededor del borde de la línea.</para>
+         <para>Finalmente, la leyenda debería ser una cadena que se pueda utilizar como leyenda en un 
gráfico. Es decir, si se imprimen las leyendas.</para>
+         <para>Ejemplos: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])</userinput>
+</screen></para>
+         <para>Disponible desde la versión 1.0.19 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
+         <listitem>
+          <synopsis>VectorfieldClearSolutions ()</synopsis>
+          <para>Limpia las soluciones realizadas por la función <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>.</para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
+         <listitem>
+          <synopsis>VectorfieldDrawSolution (x, y, dt, tlen)</synopsis>
+          <para>Cuando un campo de dibujo vectorial está activo, dibuja una solución con las condición 
específica inicial. El método estándar de Runge-Kutta se utiliza con incremento <varname>dt</varname> para un 
intervalo de longitud <varname>tlen</varname>. Las soluciones permanecen en la gráfica hasta que se muestra 
un dibujo diferente o hasta que se llama a <link 
linkend="gel-function-VectorfieldClearSolutions"><function>VectorfieldClearSolutions</function></link>. Puede 
también utilizar la gráfica para dibujar soluciones y especificar las condiciones iniciales con el 
ratón.</para>
+         <para>Desde la versión 1.0.16 en adelante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
+         <listitem>
+          <synopsis>VectorfieldPlot (funcx, funcy)</synopsis>
+          <synopsis>VectorfieldPlot (funcx, funcy, x1, x2, y1, y2)</synopsis>
+          <para>Dibujar un vector bidimensional. La función <varname>funcx</varname> será la dx/dt del campo 
vectorial y la función <varname>funcy</varname> la dy/dt del campo vectorial. Las funciones tomarán dos 
números reales <varname>x</varname> e <varname>y</varname>, o un simple número complejo. Cuando el parámetro 
<link linkend="gel-function-VectorfieldNormalized"><function>VectorfieldNormalized</function></link> es 
<constant>true</constant>, la magnitud de los vectores se normaliza. Es decir, sólo se muestra la dirección y 
no la magnitud.</para>
+         <para>De manera opcional puede especificar los límites de la ventana de dibujo como 
<varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Si no se 
especifican los límites, entonces se aplicará los actuales (Consulte <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
+          <para>El parámetro <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> controla el 
dibujado de la leyenda.</para>
+          <para>Ejemplos: <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, 
`(x,y)=y^2-x, -1, 1, -1, 1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL examples ============================= -->
+  <chapter id="genius-gel-example-programs">
+    <title>Programas de ejemplo en GEL</title>
+
+    <para>Esto es una función que calcula factoriales: <programlisting><![CDATA[function f(x) = if x <= 1 
then 1 else (f(x-1)*x)
+]]></programlisting></para>
+    <para>Con sangría se convierte: <programlisting><![CDATA[function f(x) = (
+  if x <= 1 then
+    1
+  else
+    (f(x-1)*x)
+)
+]]></programlisting></para>
+    <para>Esto es un puerto directo de la función factorial desde la página principal 
<application>bc</application>. La sintaxis es similar a <application>bc</application>, pero diferente en que 
en GEL, la última expresión es la única que se devuelve. Utilizar la función <literal>return</literal> en su 
lugar, esto será: <programlisting><![CDATA[function f(x) = (
+  if (x <= 1) then return (1);
+  return (f(x-1) * x)
+)
+]]></programlisting></para>
+
+    <para>Con mucho, la manera más fácil de definir una función factorial será usar el lazo del producto 
como sigue. No es sólo la manera más corta y más rápida, sino probablemente la versión mas legible. 
<programlisting>function f(x) = prod k=1 to x do k
+</programlisting></para>
+
+    <para>He aquí un ejemplo más extenso, esto básicamente redefine la función interna <link 
linkend="gel-function-ref"><function>ref</function></link> para calcular la fila escalar de una matriz. La 
función <function>ref</function> se construye de manera mucho más rápida, pero este ejemplo demuestra algunas 
de las características más complejas de GEL. <programlisting><![CDATA[# Calculate the row-echelon form of a 
matrix
+function MyOwnREF(m) = (
+  if not IsMatrix(m) or not IsValueOnly(m) then
+    (error("MyOwnREF: argument not a value only matrix");bailout);
+  s := min(rows(m), columns(m));
+  i := 1;
+  d := 1;
+  while d <= s and i <= columns(m) do (
+
+    # This just makes the anchor element non-zero if at
+    # all possible
+    if m@(d,i) == 0 then (
+      j := d+1;
+      while j <= rows(m) do (
+        if m@(j,i) == 0 then
+          (j=j+1;continue);
+        a := m@(j,);
+        m@(j,) := m@(d,);
+        m@(d,) := a;
+        j := j+1;
+        break
+      )
+    );
+    if m@(d,i) == 0 then
+      (i:=i+1;continue);
+    
+    # Here comes the actual zeroing of all but the anchor
+    # element rows
+    j := d+1;
+    while j <= rows(m)) do (
+      if m@(j,i) != 0 then (
+        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
+      );
+      j := j+1
+    );
+    m@(d,) := m@(d,) * (1/m@(d,i));
+    d := d+1;
+    i := i+1
+  );
+  m
+)
+]]></programlisting></para>
+
+  </chapter>
+
+  <!-- ============= Customization ============================ -->
+  <chapter id="genius-prefs"> 
+    <title>Configuración</title> 
+
+    <para>Para configurar la <application>herramienta matemática Genius</application>, elija 
<menuchoice><guimenu>Configuración</guimenu><guimenuitem>Preferencias</guimenuitem></menuchoice>. Hay varios 
parámetros básicos proporcionados por la calculadora además de los proporcionados por la biblioteca estándar. 
Estos controlan cómo se comporta la calculadora.</para>
+
+    <note>
+      <title>Cambiar la configuración con GEL</title>
+      <para>Muchas de las configuraciones en Genius son simplemente variables globales, y que se pueden 
evaluar y asignar de la misma manera que las variables normales. Consulte la <xref 
linkend="genius-gel-variables"/> sobre evaluar y asignar a variables, y la <xref 
linkend="genius-gel-function-parameters"/> para una lista de configuraciones que se pueden modificar por este 
método.</para>
+      <para>Por ejemplo, puede establecer el número máximo de dígitos en un resultado a 12 escribiendo: 
<programlisting>MaxDigits = 12
+</programlisting></para>
+    </note>
+
+    <sect1 id="genius-prefs-output"> 
+      <title>Salida</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Número máximo de cifras que mostrar</guilabel>
+      </term> 
+         <listitem>
+                 <para>El número máximo de dígitos en un resultado (<link 
linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Resultados como números de coma flotante</guilabel>
+      </term> 
+         <listitem>
+                 <para>Indica si los resultados se imprimirán siempre como números flotantes (<link 
linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Números de coma flotante en notación científica</guilabel>
+      </term> 
+         <listitem>
+                 <para>Indica si los números flotantes están en notación científica (<link 
linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Imprimir siempre expresiones completas</guilabel>
+      </term> 
+         <listitem>
+                 <para>Indica si se imprimen expresiones completas para valores de retorno no numéricos (más 
largos que una línea) (<link 
linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>))</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Usar fracciones mixtas</guilabel>
+      </term> 
+         <listitem>
+                 <para>Indica si se imprimen las fracciones como fracciones mixtas utilizando la forma «1 
1/3» en vez de «4/3». (<link 
linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Mostrar 0.0 cuando el número en coma flotante es menor que 10^-x (0=no truncar 
nunca)</guilabel>
+      </term> 
+         <listitem>
+         <para>Indica cómo cortar la salida. Pero sólo cuando otros números pueden ser muy grandes. Consulte 
la documentación del parámetro <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+            <guilabel>Sólo truncar los números cuando otro número es mayor que 10^-x</guilabel>
+      </term> 
+         <listitem>
+                 <para>Indica cuándo se corta la salida. Esto lo configura el parámetro <link 
linkend="gel-function-OutputChopWhenExponent"><function>OutputChopWhenExponent</function></link>. Consulte la 
documentación del parámetro <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Recordar los ajustes de salida entre sesiones</guilabel>
+      </term> 
+         <listitem>
+        <para>Indica si la configuración de la salida en el campo <guilabel>Opciones de salida de 
número/expresión</guilabel> se recordarán para la próxima sesión. No se aplica al campo <guilabel>Opciones de 
salida de error/información</guilabel>.</para>
+             <para>Si no está activada, se usará el valor predeterminado o cualquier configuración guardada 
anteriormente cada vez que se inicie Genius. Tenga en cuenta que las configuraciones se guardan al final de 
la sesión, así que si quiere cambiar los valores predeterminados, active esta casilla, reinicie 
<application>herramienta matemática Genius</application> y entonces desactive la casilla de nuevo.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Mostrar los errores en una ventana de diálogo</guilabel>
+      </term> 
+         <listitem>
+        <para>Si se activan, los errores se mostrarán en un diálogo separado, si no se activan, los errores 
se imprimirán en la consola.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Mostrar los mensajes de información en un diálogo</guilabel>
+      </term> 
+         <listitem>
+       <para>Si se activan los mensajes de información se mostraran en un diálogo separado, si no se 
activan, los mensajes de información se imprimirán en la consola.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Máximo de errores que mostrar</guilabel>
+      </term> 
+         <listitem>
+        <para>El número máximo de errores que devolver por una prueba (<link 
linkend="gel-function-MaxErrors"><function>MaxErrors</function></link>). Si lo establece a 0, entonces todos 
los errores se devolverán siempre . En general, si algún bucle causa muchos errores, entonces es poco 
probable que se de cuenta nada más que de unos pocos fallos, y verá una larga lista de fallos no sirve de 
mucha ayuda.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+
+      <para>Además de estas preferencias, hay algunas preferencias que se pueden cambiar configurándolas en 
el área de trabajo de la consola. Para otras que puedan afectar a la salida consulte la <xref 
linkend="genius-gel-function-parameters"/>.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <function>IntegerOutputBase</function>
+      </term> 
+         <listitem>
+        <para>La base que se usará para mostrar enteros</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <function>OutputStyle</function>
+      </term> 
+         <listitem>
+       <para>Una cadena, puede ser <literal>"normal"</literal>, <literal>"latex"</literal>, 
<literal>"mathml"</literal> o <literal>"troff"</literal> y afectará a cómo se imprimen las matrices (y quizás 
otras cosas), útil para pegar en documentos. El estilo normal legible para los humanos,es el predeterminado 
por <application>herramienta matemática Genius</application>. Los otros estilos son para las tipografías de 
LaTeX, MathML (XML), o en Troff.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+   </sect1> 
+
+    <sect1 id="genius-prefs-precision"> 
+      <title>Precisión</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Precisión en coma flotante</guilabel>
+      </term> 
+         <listitem>
+        <para>Indica la precisión en bits de los números en coma flotante (<link 
linkend="gel-function-FloatPrecision"><function>FloatPrecision</function></link>). Tenga en cuenta que 
cambiar esto, sólo afecta a las cantidades calculadas más recientes. Los valores antiguos almacenados en 
variables, obviamente permanecerán en la precisión antigua y si quiere hacerlos más precisos, tendrá que 
volver a calcularlos. La excepción a esto son las constantes como <link 
linkend="gel-function-pi"><function>pi</function></link> o <link 
linkend="gel-function-e"><function>e</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Recordar los ajustes de precisión entre sesiones</guilabel>
+      </term> 
+         <listitem>
+        <para>Indicar si la configuración de la precisión se recordará para la próxima sesión. Si no está 
activada, la configuración predeterminada o la configuración guardada anteriormente se utilizarán cada vez 
que Genius se inicie. Tenga en cuenta que las configuraciones se guardan al final de la sesión, así que si 
quiere cambiar la configuración por defecto, active esta casilla, reinicie Genius y luego vuelva a 
desactivarla.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-terminal"> 
+      <title>Terminal</title> 
+
+      <para>«Terminal» se refiere a la consola en el área de trabajo.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Líneas de desplazamiento hacia atrás</guilabel>
+      </term> 
+         <listitem>
+        <para>Líneas de desfile hacia atrás en la terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Tipografía</guilabel>
+      </term> 
+         <listitem>
+        <para>La tipografía que usar en la terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Negro sobre blanco</guilabel>
+      </term> 
+         <listitem>
+        <para>Si usar blanco sobre negro en la terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Cursor parpadeante</guilabel>
+      </term> 
+         <listitem>
+        <para>Cuando la terminal tenga el foco, el cursor parpadeará en ella. Puede que a veces resulte 
molesto y genere tráfico innecesario si ejecuta Genius remotamente.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-memory"> 
+      <title>Memoria</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Número máximo de nodos que asignar</guilabel>
+      </term> 
+         <listitem>
+        <para>Internamente, todos los datos se ponen en pequeños nodos en la memoria. Esto da un límite 
máximo de nodos reservados para el procesado. Esto evita que se quede sin memoria si comete algún error que 
haga consumir al programa más memoria de lo normal, como podría ser una recursión sin fin. Esto podría 
ralentizar su máquina y complicar incluso la interrupción del programa.</para>
+        <para>Una vez se ha alcanzado el límite, la <application>herramienta matemática Genius</application> 
preguntará si desea interrumpir el proceso o si desea continuar. Si decide continuar, no se aplicará ningún 
límite y será posible que su máquina se quede sin memoria. El límite se aplicará en la siguiente ocasión que 
ejecuté un programa o una expresión en la consola sin importar la respuesta a la pregunta.</para>
+        <para>Establecer el límite a cero significa que no hay límite en la cantidad de memoria que usa 
Genius.</para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist> 
+    </sect1> 
+
+  </chapter>
+
+<!-- ============= About ====================================== -->
+  <chapter id="genius-about"> 
+    <title>Acerca de la <application>herramienta matemática Genius</application></title> 
+
+    <para>Jiří (George) Lebl (<email>jirka 5z com</email>) ha desarrollado la <application>Herramienta 
matemática Genius</application>. La historia de la <application>herramienta matemática Genius</application> 
se remonta a 1997. Fue el primer programa calculadora de Gnome, sin embargo evolucionó a algo más que una 
calculadora de escritorio. Para más información acerca de la <application>herramienta matemática 
Genius</application>, por favor, visite la <ulink url="http://www.jirka.org/genius.html"; type="http">página 
web de Genius</ulink>.</para>
+    <para>Para informar de un error o hacer una sugerencia sobre esta aplicación o sobre este manual, envíe 
un correo al autor o publique un mensaje en la lista de correo (consulte la página web).</para>
+
+    <para>Este programa se distribuye bajo los términos de la Licencia Pública General GNU (GPL) tal y 
como fue publicada por la Free Software Foundation, en la versión 3 ó (a su elección) cualquier versión 
posterior. Una copia de esta licencia puede encontrarse en <ulink url="http://www.gnu.org/copyleft/gpl.html"; 
type="http">link</ulink>, o en el archivo COPYING incluido con el código fuente de este programa.</para>
+
+    <para>Jiří Lebl recibió apoyo parcial de la NSF grant DMS 0900885, DMS 1362337,y la Universidad de 
Illinois en Urbana-Champaign, la Universidad de California en San Diego, la Universidad de Wisconsin-Madison, 
y la Universidad del estado de Oklahoma durante el desarrollo del proyecto. El software se ha utilizado tanto 
para docencia como para investigación.</para>
+
+  </chapter>
+
+</book>
diff --git a/help/es/html/ch11s20.html b/help/es/html/ch11s20.html
index 43f9d17..2d4ed84 100644
--- a/help/es/html/ch11s20.html
+++ b/help/es/html/ch11s20.html
@@ -19,7 +19,7 @@
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The
 7th roots of unity")</code></strong>
 </pre><p>
-          </p><p>A diferencia de muchas otras funciones que no les importa si toman una columna o un vector 
fila, si se especifica los puntos como un vector de valores complejos, debido a las posibles ambigüedades, 
siempre debe ser suministrado como un vector columna. Por lo tanto, la notificación en el último ejemplo la 
transpuesta del vector <strong class="userinput"><code> 0: 6 userinput&gt; para convertirlo en un vector 
columna.</code></strong></p><p>Disponible desde la versión 1.0.18 en adelante. La especificación de <code 
class="varname">v</code> como un vector columna de números complejos, se implementa desde la versión 1.0.22 
en adelante.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotMouseLocation"></a>LinePlotMouseLocation</span></dt><dd><pre 
class="synopsis">LinePlotMouseLocation ()</pre><p>Devuelve un vector fila de un punto de la línea de la 
pantalla de dibujado correspondiente a la ubicación actual del ratón. Si la trama de línea no es 
 visible, entonces imprime un error y devuelve <code class="constant"> null constant&gt;. En este caso se 
debe ejecutar LinePlot o LinePlotClear LinePlotClear </code></p></dd><dt><span class="term"><a 
name="gel-function-LinePlotParametric"></a>LinePlotParametric</span></dt><dd><pre 
class="synopsis">LinePlotParametric (xfunc,yfunc,...)</pre><pre class="synopsis">LinePlotParametric 
(xfunc,yfunc,t1,t2,tinc)</pre><pre class="synopsis">LinePlotParametric 
(xfunc,yfunc,t1,t2,tinc,x1,x2,y1,y2)</pre><pre class="synopsis">LinePlotParametric 
(xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</pre><pre class="synopsis">LinePlotParametric 
(xfunc,yfunc,t1,t2,tinc,"fit")</pre><p>Dibujar una función paramétrica con una línea. Primero vienen las 
funciones para <code class="varname">x</code> e <code class="varname">y</code> luego opcionalmente los <code 
class="varname">t</code> límites como <strong class="userinput"><code>t1,t2,tinc</code></strong>, y luego, 
opcionalmente, los límites como <strong cl
 ass="userinput"><code>x1,x2,y1,y2</code></strong>.</p><p>Si no se especifican los límites x e y, entonces se 
aplican las configuraciones actuales (Consulte <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">LinePlotWindow</code></a>). Si en 
lugar de la cadena se da el valor «fit» para los límites x e y, los límites son la medida máxima de la 
gráfica.</p><p>El parámetro <a class="link" href="ch11s03.html#gel-function-LinePlotDrawLegends"><code 
class="function">LinePlotDrawLegends</code></a> controla el dibujado de la leyenda.</p></dd><dt><span 
class="term"><a name="gel-function-LinePlotWaitForClick"></a>LinePlotWaitForClick</span></dt><dd><pre 
class="synopsis">LinePlotWaitForClick ()</pre><p>Si está en el modo de dibujado de lineas, espera por un clic 
en la ventana de dibujado de lineas y devuelve la ubicación del clic como un vector fila. Si se cierra la 
ventana de la función devuelve inmediatamente con <code class="constant">nu
 ll</code>. Si la ventana no está en modo de dibujado de lineas, esta se pone de forma automática. Consulte 
también <a class="link" href="ch11s20.html#gel-function-LinePlotMouseLocation"><code 
class="function">LinePlotMouseLocation</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-PlotCanvasFreeze"></a>PlotCanvasFreeze</span></dt><dd><pre 
class="synopsis">PlotCanvasFreeze ()</pre><p>Congela el dibujo en el lienzo de dibujado de forma temporal. 
Esto es útil si necesita dibujar un grupo de elementos y quiere demorar el dibujado para no permitir el 
parpadeo de una animación. Después de terminar con el dibujo debería descongelar el lienzo de dibujado 
llamando a la función <a class="link" href="ch11s20.html#gel-function-PlotCanvasThaw"><code 
class="function">PlotCanvasThaw</code></a>.</p><p>El lienzo está siempre desbloqueado hasta el final de 
cualquier proceso, así que nunca permanece bloqueado. El momento en que se muestra una nueva línea de 
comandos, p
 or ejemplo, el lienzo de dibujado se descongela automáticamente. También tenga en cuenta que las llamadas a 
congelar y descongelar puede anidarse de manera segura.</p><p>Desde la versión 1.0.18 en 
adelante.</p></dd><dt><span class="term"><a 
name="gel-function-PlotCanvasThaw"></a>PlotCanvasThaw</span></dt><dd><pre class="synopsis">PlotCanvasThaw 
()</pre><p>Descongela el lienzo de dibujado congelado por la función <a class="link" 
href="ch11s20.html#gel-function-PlotCanvasFreeze"><code class="function">PlotCanvasFreeze</code></a> y volver 
a dibujar el lienzo inmediatamente. El lienzo también se descongelará al finalizar la ejecución de cualquier 
programa.</p><p>Desde la versión 1.0.18 en adelante.</p></dd><dt><span class="term"><a 
name="gel-function-PlotWindowPresent"></a>PlotWindowPresent</span></dt><dd><pre 
class="synopsis">PlotWindowPresent ()</pre><p>Muestra y eleva la ventana de dibujo, creándola si es 
necesario. Normalmente, la ventana se crea cuando se invoca a 
 una de las funciones de dibujo, pero no siempre la eleva si está debajo de otra ventana. Esta función es 
buena para utilizar en un archivo de órdenes llamado «script» en inglés, donde la ventana de dibujo ha sido 
creada anteriormente, y por ahora, oculta detrás de la consola u otras ventanas.</p><p>Desde la versión 
1.0.19 en adelante.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldClearSolutions"></a>SlopefieldClearSolutions</span></dt><dd><pre 
class="synopsis">SlopefieldClearSolutions ()</pre><p>Borra las soluciones elaboradas por la función <a 
class="link" href="ch11s20.html#gel-function-SlopefieldDrawSolution"><code 
class="function">SlopefieldDrawSolution</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldDrawSolution"></a>SlopefieldDrawSolution</span></dt><dd><pre 
class="synopsis">SlopefieldDrawSolution (x, y, dx)</pre><p>Cuando un campo de dibujo de gráficas está activo, 
dibuja una solución con las condiciones iniciale
 s especificas. El método estándar de Runge-Kutta se usa con incremento <code class="varname">dx</code>. Las 
soluciones permanecen en la gráfica hasta que se muestre un dibujo diferente o se llame a <a class="link" 
href="ch11s20.html#gel-function-SlopefieldClearSolutions"><code 
class="function">SlopefieldClearSolutions</code></a>. También puede utilizar la interfaz gráfica para dibujar 
soluciones y especificar las condiciones iniciales con el ratón.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldPlot"></a>SlopefieldPlot</span></dt><dd><pre class="synopsis">SlopefieldPlot 
(func)</pre><pre class="synopsis">SlopefieldPlot (func,x1,x2,y1,y2)</pre><p>Dibujar un campo inclinado. La 
función <code class="varname">func</code> tomará dos números reales <code class="varname">x</code> e <code 
class="varname">y</code>, o un número complejo. De manera opcional se especificarán los límites de la ventana 
de dibujo con <code class="varname">x1</code>, <code class="
 varname">x2</code>, <code class="varname">y1</code>, <code class="varname">y2</code>. Si no se especifica 
ningún límite, se aplicarán los que estén configurados actualmente (Consulte <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">LinePlotWindow</code></a>).</p><p>El 
parámetro <a class="link" href="ch11s03.html#gel-function-LinePlotDrawLegends"><code 
class="function">LinePlotDrawLegends</code></a> controla el dibujado de la leyenda.</p><p>Ejemplos: </p><pre 
class="screen"><code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</code></strong>
+          </p><p>A diferencia de muchas otras funciones que no les importa si toman una columna o un vector 
fila, si se especifica los puntos como un vector de valores complejos, debido a las posibles ambigüedades, 
siempre debe ser suministrado como un vector columna. Por lo tanto, la notificación en el último ejemplo la 
transpuesta del vector <strong class="userinput"><code>0:6</code></strong> para convertirlo en un vector 
columna.</p><p>Disponible desde la versión 1.0.18 en adelante. La especificación de <code 
class="varname">v</code> como un vector columna de números complejos, se implementa desde la versión 1.0.22 
en adelante.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotMouseLocation"></a>LinePlotMouseLocation</span></dt><dd><pre 
class="synopsis">LinePlotMouseLocation ()</pre><p>Devuelve un vector fila de un punto de la línea de la 
pantalla de dibujado correspondiente a la ubicación actual del ratón. Si la trama de línea no es visible, 
entonce
 s imprime un error y devuelve <code class="constant"> null </code>. En este caso se debe ejecutar <a 
class="link" href="ch11s20.html#gel-function-LinePlot"><code class="function">LinePlot</code></a> o <a 
class="link" href="ch11s20.html#gel-function-LinePlotClear"><code class="function">LinePlotClear</code></a> 
para poner la ventana en el modo de dibujado de lineas. Consulte también <a class="link" 
href="ch11s20.html#gel-function-LinePlotWaitForClick"><code 
class="function">LinePlotWaitForClick</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-LinePlotParametric"></a>LinePlotParametric</span></dt><dd><pre 
class="synopsis">LinePlotParametric (xfunc,yfunc,...)</pre><pre class="synopsis">LinePlotParametric 
(xfunc,yfunc,t1,t2,tinc)</pre><pre class="synopsis">LinePlotParametric 
(xfunc,yfunc,t1,t2,tinc,x1,x2,y1,y2)</pre><pre class="synopsis">LinePlotParametric 
(xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</pre><pre class="synopsis">LinePlotParametric (xfunc,yfunc,t1,t2,tin
 c,"fit")</pre><p>Dibujar una función paramétrica con una línea. Primero vienen las funciones para <code 
class="varname">x</code> e <code class="varname">y</code> luego opcionalmente los <code 
class="varname">t</code> límites como <strong class="userinput"><code>t1,t2,tinc</code></strong>, y luego, 
opcionalmente, los límites como <strong class="userinput"><code>x1,x2,y1,y2</code></strong>.</p><p>Si no se 
especifican los límites x e y, entonces se aplican las configuraciones actuales (Consulte <a class="link" 
href="ch11s03.html#gel-function-LinePlotWindow"><code class="function">LinePlotWindow</code></a>). Si en 
lugar de la cadena se da el valor «fit» para los límites x e y, los límites son la medida máxima de la 
gráfica.</p><p>El parámetro <a class="link" href="ch11s03.html#gel-function-LinePlotDrawLegends"><code 
class="function">LinePlotDrawLegends</code></a> controla el dibujado de la leyenda.</p></dd><dt><span 
class="term"><a name="gel-function-LinePlotWaitFor
 Click"></a>LinePlotWaitForClick</span></dt><dd><pre class="synopsis">LinePlotWaitForClick ()</pre><p>Si está 
en el modo de dibujado de lineas, espera por un clic en la ventana de dibujado de lineas y devuelve la 
ubicación del clic como un vector fila. Si se cierra la ventana de la función devuelve inmediatamente con 
<code class="constant">null</code>. Si la ventana no está en modo de dibujado de lineas, esta se pone de 
forma automática. Consulte también <a class="link" 
href="ch11s20.html#gel-function-LinePlotMouseLocation"><code 
class="function">LinePlotMouseLocation</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-PlotCanvasFreeze"></a>PlotCanvasFreeze</span></dt><dd><pre 
class="synopsis">PlotCanvasFreeze ()</pre><p>Congela el dibujo en el lienzo de dibujado de forma temporal. 
Esto es útil si necesita dibujar un grupo de elementos y quiere demorar el dibujado para no permitir el 
parpadeo de una animación. Después de terminar con el dibujo debería d
 escongelar el lienzo de dibujado llamando a la función <a class="link" 
href="ch11s20.html#gel-function-PlotCanvasThaw"><code class="function">PlotCanvasThaw</code></a>.</p><p>El 
lienzo está siempre desbloqueado hasta el final de cualquier proceso, así que nunca permanece bloqueado. El 
momento en que se muestra una nueva línea de comandos, por ejemplo, el lienzo de dibujado se descongela 
automáticamente. También tenga en cuenta que las llamadas a congelar y descongelar puede anidarse de manera 
segura.</p><p>Desde la versión 1.0.18 en adelante.</p></dd><dt><span class="term"><a 
name="gel-function-PlotCanvasThaw"></a>PlotCanvasThaw</span></dt><dd><pre class="synopsis">PlotCanvasThaw 
()</pre><p>Descongela el lienzo de dibujado congelado por la función <a class="link" 
href="ch11s20.html#gel-function-PlotCanvasFreeze"><code class="function">PlotCanvasFreeze</code></a> y volver 
a dibujar el lienzo inmediatamente. El lienzo también se descongelará al finalizar la ejecució
 n de cualquier programa.</p><p>Desde la versión 1.0.18 en adelante.</p></dd><dt><span class="term"><a 
name="gel-function-PlotWindowPresent"></a>PlotWindowPresent</span></dt><dd><pre 
class="synopsis">PlotWindowPresent ()</pre><p>Muestra y eleva la ventana de dibujo, creándola si es 
necesario. Normalmente, la ventana se crea cuando se invoca a una de las funciones de dibujo, pero no siempre 
la eleva si está debajo de otra ventana. Esta función es buena para utilizar en un archivo de órdenes llamado 
«script» en inglés, donde la ventana de dibujo ha sido creada anteriormente, y por ahora, oculta detrás de la 
consola u otras ventanas.</p><p>Desde la versión 1.0.19 en adelante.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldClearSolutions"></a>SlopefieldClearSolutions</span></dt><dd><pre 
class="synopsis">SlopefieldClearSolutions ()</pre><p>Borra las soluciones elaboradas por la función <a 
class="link" href="ch11s20.html#gel-function-SlopefieldDrawSolutio
 n"><code class="function">SlopefieldDrawSolution</code></a>.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldDrawSolution"></a>SlopefieldDrawSolution</span></dt><dd><pre 
class="synopsis">SlopefieldDrawSolution (x, y, dx)</pre><p>Cuando un campo de dibujo de gráficas está activo, 
dibuja una solución con las condiciones iniciales especificas. El método estándar de Runge-Kutta se usa con 
incremento <code class="varname">dx</code>. Las soluciones permanecen en la gráfica hasta que se muestre un 
dibujo diferente o se llame a <a class="link" href="ch11s20.html#gel-function-SlopefieldClearSolutions"><code 
class="function">SlopefieldClearSolutions</code></a>. También puede utilizar la interfaz gráfica para dibujar 
soluciones y especificar las condiciones iniciales con el ratón.</p></dd><dt><span class="term"><a 
name="gel-function-SlopefieldPlot"></a>SlopefieldPlot</span></dt><dd><pre class="synopsis">SlopefieldPlot 
(func)</pre><pre class="synopsis">Slopefield
 Plot (func,x1,x2,y1,y2)</pre><p>Dibujar un campo inclinado. La función <code class="varname">func</code> 
tomará dos números reales <code class="varname">x</code> e <code class="varname">y</code>, o un número 
complejo. De manera opcional se especificarán los límites de la ventana de dibujo con <code 
class="varname">x1</code>, <code class="varname">x2</code>, <code class="varname">y1</code>, <code 
class="varname">y2</code>. Si no se especifica ningún límite, se aplicarán los que estén configurados 
actualmente (Consulte <a class="link" href="ch11s03.html#gel-function-LinePlotWindow"><code 
class="function">LinePlotWindow</code></a>).</p><p>El parámetro <a class="link" 
href="ch11s03.html#gel-function-LinePlotDrawLegends"><code class="function">LinePlotDrawLegends</code></a> 
controla el dibujado de la leyenda.</p><p>Ejemplos: </p><pre class="screen"><code 
class="prompt">genius&gt;</code> <strong 
class="userinput"><code>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</code></s
 trong>
 </pre></dd><dt><span class="term"><a name="gel-function-SurfacePlot"></a>SurfacePlot</span></dt><dd><pre 
class="synopsis">SurfacePlot (func)</pre><pre class="synopsis">SurfacePlot (func,x1,x2,y1,y2,z1,z2)</pre><pre 
class="synopsis">SurfacePlot (func,x1,x2,y1,y2)</pre><pre class="synopsis">SurfacePlot 
(func,[x1,x2,y1,y2,z1,z2])</pre><pre class="synopsis">SurfacePlot (func,[x1,x2,y1,y2])</pre><p>Dibujar una 
función superficial que tome entre dos argumentos o un número complejo. Primero vienen las funciones que las 
limitan de forma opcional <code class="varname">x1</code>, <code class="varname">x2</code>, <code 
class="varname">y1</code>, <code class="varname">y2</code>, <code class="varname">z1</code>, <code 
class="varname">z2</code>. Si no se especifican los límites, entonces las configuraciones actuales se 
aplicarán (Consulte <a class="link" href="ch11s03.html#gel-function-SurfacePlotWindow"><code 
class="function">SurfacePlotWindow</code></a>). Genius sólo puede dibujar 
 una función superficial sencilla por el momento.</p><p>Si no se especifican los límites de z, se usan los 
valores máximo y mínimo de la función.</p><p>Ejemplos: </p><pre class="screen"><code 
class="prompt">genius&gt;</code> <strong 
class="userinput"><code>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</code></strong>
 <code class="prompt">genius&gt;</code> <strong 
class="userinput"><code>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</code></strong>
diff --git a/help/es/html/index.html b/help/es/html/index.html
index 7e8f8d1..7ec27df 100644
--- a/help/es/html/index.html
+++ b/help/es/html/index.html
@@ -1,3 +1,3 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Manual de 
Genius</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="description" 
content="Manual de la herramienta matemática Genius."><link rel="home" href="index.html" title="Manual de 
Genius"><link rel="next" href="ch01.html" title="Capítulo 1. Introducción"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Manual de Genius</th></tr><tr><td width="20%" 
align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" 
href="ch01.html">Siguiente</a></td></tr></table><hr></div><div lang="es" class="book"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a>Manual de Genius</h1></div><div><div 
class="authorgroup"><div class="author"><h3 class="author"><sp
 an class="firstname">Jiří</span> <span class="surname">Lebl</span></h3><div class="affiliation"><span 
class="orgname">Universidad del estado de Oklahoma<br></span><div class="address"><p> <code 
class="email">&lt;<a class="email" href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code> 
</p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Kai</span> <span 
class="surname">Willadsen</span></h3><div class="affiliation"><span class="orgname">Universidad de 
Queensland, Australia<br></span><div class="address"><p> <code class="email">&lt;<a class="email" 
href="mailto:kaiw itee uq edu au">kaiw itee uq edu au</a>&gt;</code> 
</p></div></div></div></div></div><div><p class="releaseinfo">Este manual describe la versión 1.0.22 de 
Genius.</p></div><div><p class="copyright">Copyright © 1997-2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><p class="copyright">Copyright © 2011 Daniel 
Mustieles (d
 aniel mustieles gmail com)</p></div><div><div class="legalnotice"><a name="legalnotice"></a><p>Se concede 
permiso para copiar, distribuir o modificar este documento según las condiciones de la GNU Free 
Documentation License (GFDL), Versión 1.1 o cualquier versión posterior publicada por la Free Software 
Foundation sin Secciones invariantes, Textos de portada y Textos de contraportada. Encontrará una copia de 
la GFDL en este <a class="ulink" href="ghelp:fdl" target="_top">enlace</a> o en el archivo COPYING-DOCS 
distribuido con este manual.</p><p>Este manual es parte de la colección de manuales GNOME distribuidos bajo 
la GFDL. Si quiere distribuir este manual separadamente de la colección, puede hacerlo añadiendo una copia 
de la licencia al manual, tal como se describe en la sección 6 de la licencia.</p><p>Muchos de los nombres 
usados por empresas para distinguir sus productos y servicios se mencionan como marcas comerciales. Donde 
aparezcan dichos nombres en c
 ualquier documentación GNOME, y para que los miembros del proyecto de documentación reconozcan dichas 
marcas comerciales, dichos nombres se imprimen en mayúsculas o iniciales mayúsculas.</p><p>EL DOCUMENTO Y 
LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN CON SUJECIÓN A LOS TÉRMINOS DE LA GFDL, QUEDANDO BIEN 
ENTENDIDO, ADEMÁS, QUE: </p><div class="orderedlist"><ol class="orderedlist" type="1"><li 
class="listitem"><p>EL DOCUMENTO SE ENTREGA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, NI EXPLÍCITA NI 
IMPLÍCITA INCLUYENDO, SIN LIMITACIÓN, GARANTÍA DE QUE EL DOCUMENTO O VERSIÓN MODIFICADA DE ÉSTE CAREZCA 
DE DEFECTOS EN EL MOMENTO DE SU VENTA, SEA ADECUADO A UN FIN CONCRETO O INCUMPLA ALGUNA NORMATIVA. TODO EL 
RIESGO RELATIVO A LA CALIDAD, PRECISIÓN Y UTILIDAD DEL DOCUMENTO O SU VERSIÓN MODIFICADA RECAE EN USTED. SI 
CUALQUIER DOCUMENTO O VERSIÓN MODIFICADA DE AQUÉL RESULTARA DEFECTUOSO EN CUALQUIER ASPECTO, USTED (Y NO EL 
REDACTOR INICIAL, A
 UTOR O AUTOR DE APORTACIONES) ASUMIRÁ LOS COSTES DE TODA REPARACIÓN, MANTENIMIENTO O CORRECCIÓN 
NECESARIOS. ESTA EXENCIÓN DE RESPONSABILIDAD SOBRE LA GARANTÍA ES UNA PARTE ESENCIAL DE ESTA LICENCIA. NO 
SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DE ÉSTE POR EL PRESENTE, SALVO DENTRO DEL 
CUMPLIMIENTO DE LA EXENCIÓN DE RESPONSABILIDAD;Y</p></li><li class="listitem"><p>BAJO NINGUNA CIRCUNSTANCIA 
NI BAJO NINGUNA TEORÍA LEGAL, SEA POR ERROR (INCLUYENDO NEGLIGENCIA), CONTRATO O DE ALGÚN OTRO MODO, EL 
AUTOR, EL ESCRITOR INICIAL, CUALQUIER CONTRIBUIDOR, O CUALQUIER DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN 
MODIFICADA DEL DOCUMENTO, O CUALQUIER PROVEEDOR DE CUALQUIERA DE ESAS PARTES, SERÁ RESPONSABLE ANTE NINGUNA 
PERSONA POR NINGÚN DAÑO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O DERIVADO DE NINGÚN TIPO, INCLUYENDO, 
SIN LIMITACIÓN DAÑOS POR PÉRDIDA DE MERCANCÍAS, PARO TÉCNICO, FALLO INFORMÁTICO O MAL FUNCIONAMIENTO O 
CUALQUIER OT
 RO POSIBLE DAÑO O PÉRDIDAS DERIVADAS O RELACIONADAS CON EL USO DEL DOCUMENTO O SUS VERSIONES MODIFICADAS, 
AUNQUE DICHA PARTE HAYA SIDO INFORMADA DE LA POSIBILIDAD DE QUE SE PRODUJESEN DICHOS 
DAÑOS.</p></li></ol></div></div></div><div><div class="legalnotice"><a name="idm46229669502864"></a><p 
class="legalnotice-title"><b>Comentarios</b></p><p>Para informar de un fallo, o hacer alguna sugerencia sobre 
la aplicación <span class="application">herramienta matemática Genius</span>, o este manual, siga las 
instrucciones en la <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">página web de 
Genius</a> o envíe un correo electrónico a <code class="email">&lt;<a class="email" href="mailto:jirka 5z 
com">jirka 5z com</a>&gt;</code>.</p></div></div><div><div class="revhistory"><table 
style="border-style:solid; width:100%;" summary="Historial de revisiones"><tr><th align="left" valign="top" 
colspan="2"><b>Historial de revisiones</b></th></tr><tr><td align="l
 eft">Revisión 0.2</td><td align="left">Septiembre 2016</td></tr><tr><td align="left" colspan="2"> 
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Manual de 
Genius</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="description" 
content="Manual de la herramienta matemática Genius."><link rel="home" href="index.html" title="Manual de 
Genius"><link rel="next" href="ch01.html" title="Capítulo 1. Introducción"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Manual de Genius</th></tr><tr><td width="20%" 
align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" 
href="ch01.html">Siguiente</a></td></tr></table><hr></div><div lang="es" class="book"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a>Manual de Genius</h1></div><div><div 
class="authorgroup"><div class="author"><h3 class="author"><sp
 an class="firstname">Jiří</span> <span class="surname">Lebl</span></h3><div class="affiliation"><span 
class="orgname">Universidad del estado de Oklahoma<br></span><div class="address"><p> <code 
class="email">&lt;<a class="email" href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code> 
</p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Kai</span> <span 
class="surname">Willadsen</span></h3><div class="affiliation"><span class="orgname">Universidad de 
Queensland, Australia<br></span><div class="address"><p> <code class="email">&lt;<a class="email" 
href="mailto:kaiw itee uq edu au">kaiw itee uq edu au</a>&gt;</code> 
</p></div></div></div></div></div><div><p class="releaseinfo">Este manual describe la versión 1.0.22 de 
Genius.</p></div><div><p class="copyright">Copyright © 1997-2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><p class="copyright">Copyright © 2011 Daniel 
Mustieles (d
 aniel mustieles gmail com)</p></div><div><div class="legalnotice"><a name="legalnotice"></a><p>Se concede 
permiso para copiar, distribuir o modificar este documento según las condiciones de la GNU Free 
Documentation License (GFDL), Versión 1.1 o cualquier versión posterior publicada por la Free Software 
Foundation sin Secciones invariantes, Textos de portada y Textos de contraportada. Encontrará una copia de 
la GFDL en este <a class="ulink" href="ghelp:fdl" target="_top">enlace</a> o en el archivo COPYING-DOCS 
distribuido con este manual.</p><p>Este manual es parte de la colección de manuales GNOME distribuidos bajo 
la GFDL. Si quiere distribuir este manual separadamente de la colección, puede hacerlo añadiendo una copia 
de la licencia al manual, tal como se describe en la sección 6 de la licencia.</p><p>Muchos de los nombres 
usados por empresas para distinguir sus productos y servicios se mencionan como marcas comerciales. Donde 
aparezcan dichos nombres en c
 ualquier documentación GNOME, y para que los miembros del proyecto de documentación reconozcan dichas 
marcas comerciales, dichos nombres se imprimen en mayúsculas o iniciales mayúsculas.</p><p>EL DOCUMENTO Y 
LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN CON SUJECIÓN A LOS TÉRMINOS DE LA GFDL, QUEDANDO BIEN 
ENTENDIDO, ADEMÁS, QUE: </p><div class="orderedlist"><ol class="orderedlist" type="1"><li 
class="listitem"><p>EL DOCUMENTO SE ENTREGA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, NI EXPLÍCITA NI 
IMPLÍCITA INCLUYENDO, SIN LIMITACIÓN, GARANTÍA DE QUE EL DOCUMENTO O VERSIÓN MODIFICADA DE ÉSTE CAREZCA 
DE DEFECTOS EN EL MOMENTO DE SU VENTA, SEA ADECUADO A UN FIN CONCRETO O INCUMPLA ALGUNA NORMATIVA. TODO EL 
RIESGO RELATIVO A LA CALIDAD, PRECISIÓN Y UTILIDAD DEL DOCUMENTO O SU VERSIÓN MODIFICADA RECAE EN USTED. SI 
CUALQUIER DOCUMENTO O VERSIÓN MODIFICADA DE AQUÉL RESULTARA DEFECTUOSO EN CUALQUIER ASPECTO, USTED (Y NO EL 
REDACTOR INICIAL, A
 UTOR O AUTOR DE APORTACIONES) ASUMIRÁ LOS COSTES DE TODA REPARACIÓN, MANTENIMIENTO O CORRECCIÓN 
NECESARIOS. ESTA EXENCIÓN DE RESPONSABILIDAD SOBRE LA GARANTÍA ES UNA PARTE ESENCIAL DE ESTA LICENCIA. NO 
SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DE ÉSTE POR EL PRESENTE, SALVO DENTRO DEL 
CUMPLIMIENTO DE LA EXENCIÓN DE RESPONSABILIDAD;Y</p></li><li class="listitem"><p>BAJO NINGUNA CIRCUNSTANCIA 
NI BAJO NINGUNA TEORÍA LEGAL, SEA POR ERROR (INCLUYENDO NEGLIGENCIA), CONTRATO O DE ALGÚN OTRO MODO, EL 
AUTOR, EL ESCRITOR INICIAL, CUALQUIER CONTRIBUIDOR, O CUALQUIER DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN 
MODIFICADA DEL DOCUMENTO, O CUALQUIER PROVEEDOR DE CUALQUIERA DE ESAS PARTES, SERÁ RESPONSABLE ANTE NINGUNA 
PERSONA POR NINGÚN DAÑO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O DERIVADO DE NINGÚN TIPO, INCLUYENDO, 
SIN LIMITACIÓN DAÑOS POR PÉRDIDA DE MERCANCÍAS, PARO TÉCNICO, FALLO INFORMÁTICO O MAL FUNCIONAMIENTO O 
CUALQUIER OT
 RO POSIBLE DAÑO O PÉRDIDAS DERIVADAS O RELACIONADAS CON EL USO DEL DOCUMENTO O SUS VERSIONES MODIFICADAS, 
AUNQUE DICHA PARTE HAYA SIDO INFORMADA DE LA POSIBILIDAD DE QUE SE PRODUJESEN DICHOS 
DAÑOS.</p></li></ol></div></div></div><div><div class="legalnotice"><a name="idm51"></a><p 
class="legalnotice-title"><b>Comentarios</b></p><p>Para informar de un fallo, o hacer alguna sugerencia sobre 
la aplicación <span class="application">herramienta matemática Genius</span>, o este manual, siga las 
instrucciones en la <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">página web de 
Genius</a> o envíe un correo electrónico a <code class="email">&lt;<a class="email" href="mailto:jirka 5z 
com">jirka 5z com</a>&gt;</code>.</p></div></div><div><div class="revhistory"><table 
style="border-style:solid; width:100%;" summary="Historial de revisiones"><tr><th align="left" valign="top" 
colspan="2"><b>Historial de revisiones</b></th></tr><tr><td align="left">Revisi�
 �n 0.2</td><td align="left">Septiembre 2016</td></tr><tr><td align="left" colspan="2"> 
                        <p class="author">Jiri (George) Lebl <code class="email">&lt;<a class="email" 
href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code></p>
                </td></tr></table></div></div><div><div class="abstract"><p 
class="title"><b>Resumen</b></p><p>Manual de la herramienta matemática 
Genius.</p></div></div></div><hr></div><div class="toc"><p><b>Tabla de contenidos</b></p><dl 
class="toc"><dt><span class="chapter"><a href="ch01.html">1. Introducción</a></span></dt><dt><span 
class="chapter"><a href="ch02.html">2. Primeros pasos</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch02.html#genius-to-start">Para iniciar la <span class="application">herramienta matemática 
Genius</span></a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Al iniciar 
Genius</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Uso 
básico</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#genius-usage-workarea">Usar el área 
de trabajo</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">Crear un programa 
nuevo</a></span></dt><dt><span class="sect1"><a href="ch03s03.html">Abrir y ejecuta
 r un programa</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. 
Dibujar</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#genius-line-plots">Trazado de 
líneas</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Gráficos 
paramétricos</a></span></dt><dt><span class="sect1"><a href="ch04s03.html">Dibujos de campos de 
inclinación</a></span></dt><dt><span class="sect1"><a href="ch04s04.html">Gráficos de campos de 
vectores</a></span></dt><dt><span class="sect1"><a href="ch04s05.html">Gráficos de 
superficie</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. Conceptos de 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch05.html#genius-gel-values">Valores</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-numbers">Números</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-booleans">Booleanos</a></span></dt><dt><span class="sect2"><a hr
 ef="ch05.html#genius-gel-values-strings">Cadenas</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-null">Nulo</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="ch05s02.html">Usar variables</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05s02.html#genius-gel-variables-setting">Configurar variables</a></span></dt><dt><span 
class="sect2"><a href="ch05s02.html#genius-gel-variables-built-in">Variables 
integradas</a></span></dt><dt><span class="sect2"><a href="ch05s02.html#genius-gel-previous-result">Resultado 
de la variable anterior</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s03.html">Usar 
funciones</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-defining">Definir funciones</a></span></dt><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-variable-argument-lists">Listas de argumentos de 
variables</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#gen
 ius-gel-functions-passing-functions">Pasar funciones a funciones</a></span></dt><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-operations">Operaciones con 
funciones</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="ch05s04.html">Separador</a></span></dt><dt><span class="sect1"><a 
href="ch05s05.html">Comentarios</a></span></dt><dt><span class="sect1"><a href="ch05s06.html">Evaluación 
modular</a></span></dt><dt><span class="sect1"><a href="ch05s07.html">Lista de operadores 
GEL</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch06.html">6. Programar con 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch06.html#genius-gel-conditionals">Condicionales</a></span></dt><dt><span class="sect1"><a 
href="ch06s02.html">Bucles</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loops-while">Bucles «while»</a></span></dt><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loops-for">Bucles «for»</a></s
 pan></dt><dt><span class="sect2"><a href="ch06s02.html#genius-gel-loops-foreach">Bucles 
«foreach»</a></span></dt><dt><span class="sect2"><a href="ch06s02.html#genius-gel-loops-break-continue">Parar 
y continuar</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch06s03.html">Sumas y 
productos</a></span></dt><dt><span class="sect1"><a href="ch06s04.html">Operadores de 
comparación</a></span></dt><dt><span class="sect1"><a href="ch06s05.html">Variables globales y ámbito de 
variables</a></span></dt><dt><span class="sect1"><a href="ch06s06.html">Variables de 
parámetros</a></span></dt><dt><span class="sect1"><a href="ch06s07.html">Retorno</a></span></dt><dt><span 
class="sect1"><a href="ch06s08.html">Referencias</a></span></dt><dt><span class="sect1"><a 
href="ch06s09.html">Lvalues</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch07.html">7. 
Programación avanzada con GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch07.html#genius-gel-error-handl
 ing">Control de errores</a></span></dt><dt><span class="sect1"><a href="ch07s02.html">Sintaxis de nivel 
superior</a></span></dt><dt><span class="sect1"><a href="ch07s03.html">Devolver 
funciones</a></span></dt><dt><span class="sect1"><a href="ch07s04.html">Variables locales 
verdaderas</a></span></dt><dt><span class="sect1"><a href="ch07s05.html">Procedimiento de inicio de 
GEL</a></span></dt><dt><span class="sect1"><a href="ch07s06.html">Cargar 
programas</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch08.html">8. Matrices en 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch08.html#genius-gel-matrix-support">Introducir 
matrices</a></span></dt><dt><span class="sect1"><a href="ch08s02.html">Conjugada de la traspuesta y operador 
de trasposición</a></span></dt><dt><span class="sect1"><a href="ch08s03.html">Álgebra 
lineal</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch09.html">9. Polinomios en 
GEL</a></span></dt><dd><dl><dt><span class="s
 ect1"><a href="ch09.html#genius-gel-polynomials-using">Usar polinomios</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="ch10.html">10. Teoría de conjuntos en GEL</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="ch10.html#genius-gel-sets-using">Usar conjuntos</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="ch11.html">11. Lista de funciones GEL</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="ch11.html#genius-gel-function-list-commands">Comandos</a></span></dt><dt><span 
class="sect1"><a href="ch11s02.html">Básico</a></span></dt><dt><span class="sect1"><a 
href="ch11s03.html">Parámetros</a></span></dt><dt><span class="sect1"><a 
href="ch11s04.html">Constantes</a></span></dt><dt><span class="sect1"><a 
href="ch11s05.html">Numérico</a></span></dt><dt><span class="sect1"><a 
href="ch11s06.html">Trigonometría</a></span></dt><dt><span class="sect1"><a href="ch11s07.html">Teoría de 
números</a></span></dt><dt><span class="sect1"><a href="c
 h11s08.html">Manipulación de matrices</a></span></dt><dt><span class="sect1"><a 
href="ch11s09.html">Álgebra lineal</a></span></dt><dt><span class="sect1"><a 
href="ch11s10.html">Combinatoria</a></span></dt><dt><span class="sect1"><a 
href="ch11s11.html">Cálculo</a></span></dt><dt><span class="sect1"><a 
href="ch11s12.html">Funciones</a></span></dt><dt><span class="sect1"><a href="ch11s13.html">Resolución de 
ecuaciones</a></span></dt><dt><span class="sect1"><a 
href="ch11s14.html">Estadísticas</a></span></dt><dt><span class="sect1"><a 
href="ch11s15.html">Polinomios</a></span></dt><dt><span class="sect1"><a href="ch11s16.html">Teoría de 
conjuntos</a></span></dt><dt><span class="sect1"><a href="ch11s17.html">Álgebra 
conmutativa</a></span></dt><dt><span class="sect1"><a href="ch11s18.html">Miscelánea</a></span></dt><dt><span 
class="sect1"><a href="ch11s19.html">Operaciones simbólicas</a></span></dt><dt><span class="sect1"><a 
href="ch11s20.html">Dibujar</a></span></dt
</dl></dd><dt><span class="chapter"><a href="ch12.html">12. Programas de ejemplo en 
GEL</a></span></dt><dt><span class="chapter"><a href="ch13.html">13. 
Configuración</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch13.html#genius-prefs-output">Salida</a></span></dt><dt><span class="sect1"><a 
href="ch13s02.html">Precisión</a></span></dt><dt><span class="sect1"><a 
href="ch13s03.html">Terminal</a></span></dt><dt><span class="sect1"><a 
href="ch13s04.html">Memoria</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch14.html">14. 
Acerca de la <span class="application">herramienta matemática Genius</span></a></span></dt></dl></div><div 
class="list-of-figures"><p><b>Lista de figuras</b></p><dl><dt>2.1. <a 
href="ch02s02.html#mainwindow-fig">Ventana de la <span class="application">herramienta matemática 
Genius</span></a></dt><dt>4.1. <a href="ch04.html#lineplot-fig">Crear una ventana de 
dibujo</a></dt><dt>4.2. <a href="ch04.html#lineplot2-fig">Ventana de dibu
 jo</a></dt><dt>4.3. <a href="ch04s02.html#paramplot-fig">Pestaña dibujo paramétrico</a></dt><dt>4.4. <a 
href="ch04s02.html#paramplot2-fig">Gráfico paramétrico</a></dt><dt>4.5. <a 
href="ch04s05.html#surfaceplot-fig">Gráfico de superficie</a></dt></dl></div></div><div 
class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> 
</td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" 
href="ch01.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" 
align="center"> </td><td width="40%" align="right" valign="top"> Capítulo 1. 
Introducción</td></tr></table></div></body></html>
diff --git a/help/fr/genius.xml b/help/fr/genius.xml
new file mode 100644
index 0000000..84ee220
--- /dev/null
+++ b/help/fr/genius.xml
@@ -0,0 +1,8530 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY app "<application>Genius Mathematics Tool</application>">
+<!ENTITY appname "Genius">
+<!ENTITY appversion "1.0.22">
+<!ENTITY date "September 2016">
+<!ENTITY legal SYSTEM "legal.xml">
+<!ENTITY manrevision "0.2">
+<!ENTITY lt "&#60;">
+<!ENTITY gt "&#62;">
+<!ENTITY le "&#8804;">
+<!ENTITY ge "&#8805;">
+<!ENTITY lsquo "&#8216;">
+<!ENTITY rsquo "&#8217;">
+<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
+<!-- 
+      (Do not remove this comment block.)
+  Maintained by the GNOME Documentation Project
+  http://developer.gnome.org/projects/gdp
+  Template version: 2.0 beta
+  Template last modified Apr 11, 2002
+-->
+<!-- =============Document Header ============================= -->
+<book id="index" lang="fr">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <bookinfo>
+         <abstract role="description"><para>Manuel de l'Outil de maths Genius.</para></abstract>
+    <title>Manuel de Genius</title>       
+
+    <copyright>
+      <year>1997-2016</year>
+      <holder>Jiří (George) Lebl</holder>
+    </copyright>
+    <copyright>
+      <year>2004</year>
+      <holder>Kai Willadsen</holder>
+    </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>
+<!-- translators: uncomment this:
+  <copyright>
+   <year>2002</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+-->
+
+    <publisher> 
+      <publishername/> 
+    </publisher> 
+
+     <legalnotice id="legalnotice">
+       <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>
+         <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>
+
+       <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>
+
+       <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>
+               <listitem>
+                 <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>
+               </listitem>
+               <listitem>
+                 <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>
+               </listitem>
+         </orderedlist></para>
+  </legalnotice>
+
+
+   <!-- This file  contains link to license for the documentation (GNU FDL), and 
+        other legal stuff such as "NO WARRANTY" statement. Please do not change 
+       any of this. -->
+
+    <authorgroup> 
+      <author role="maintainer"> 
+               <firstname>Jiří</firstname> 
+               <surname>Lebl</surname> 
+               <affiliation> 
+                       <orgname>Oklahoma State University</orgname> 
+                       <address> <email>jirka 5z com</email> </address> 
+               </affiliation> 
+      </author> 
+      <author> 
+               <firstname>Kai</firstname> 
+               <surname>Willadsen</surname> 
+               <affiliation> 
+                       <orgname>Université de Queensland, Australie</orgname> 
+                       <address> <email>kaiw itee uq edu au</email> </address> 
+               </affiliation> 
+      </author> 
+      
+<!-- This is appropriate place for other contributors: translators,
+     maintainers,  etc. Commented out by default.
+     
+      <othercredit role="translator">
+               <firstname>Latin</firstname> 
+               <surname>Translator 1</surname> 
+               <affiliation> 
+                       <orgname>Latin Translation Team</orgname> 
+                       <address> <email>translator gnome org</email> </address> 
+               </affiliation>
+               <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+    </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+-->
+<!-- than the current revision. -->
+<!-- The revision numbering system for GNOME manuals is as follows: -->
+<!-- * the revision number consists of two components -->
+<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
+<!-- * the second component of the revision number is a decimal unit that is incremented with each revision 
of the manual. -->
+<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
+<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
+<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
+<!-- to V3.0, and so on. -->  
+<!--  This is unmaintained quite a bit so screw this it just makes things
+      ugly and we don't update the manrevision stuff anyway
+    <revhistory>
+      <revision> 
+               <revnumber>&manrevision;</revnumber> 
+               <date>&date;</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>0.1</revnumber> 
+               <date>September 2004</date> 
+               <revdescription> 
+                       <para role="author">Kai Willadsen
+               <email>kaiw itee uq edu au</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>Genius Calculator Manual</revnumber> 
+               <date>August 2004</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+    </revhistory> 
+-->
+
+    <revhistory>
+      <revision> 
+               <revnumber>0.2</revnumber> 
+               <date>September 2016</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl <email>jirka 5z com</email></para>
+               </revdescription> 
+      </revision> 
+    </revhistory>
+    <releaseinfo>This manual describes version 1.0.22 of Genius.
+    </releaseinfo> 
+    <legalnotice> 
+      <title>Votre avis</title> 
+      <para>
+             To report a bug or make a suggestion regarding the <application>Genius Mathematics 
Tool</application>
+             application or this manual, please visit the
+             <ulink url="http://www.jirka.org/genius.html"; type="http">Genius
+                     Web page</ulink>
+             or email me at <email>jirka 5z com</email>.
+      </para>
+<!-- Translators may also add here feedback address for translations -->
+    </legalnotice> 
+  </bookinfo> 
+
+<!-- ============= Introduction =============================== -->
+  <chapter id="genius-introduction"> 
+    <title>Introduction</title> 
+    <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 program
 mation autorise la définition de fonctions et de variables utilisateurs et la modification de certains 
paramètres.</para> 
+
+    <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> 
+
+    <para>
+           Parts of this manual describe the graphical version of the calculator,
+       but the language is of course the same.  The command line only version
+       lacks the graphing capabilities and all other capabilities that require
+       the graphical user interface.
+    </para>
+
+    <para>
+           Generally, when some feature of the language (function, operator, etc...)
+           is new in some version past 1.0.5, it is mentioned, but
+           below 1.0.5 you would have to look at the NEWS file.
+    </para>
+
+  </chapter>
+
+<!-- =========== Getting Started ============================== -->
+  <chapter id="genius-getting-started"> 
+    <title>Premiers pas</title> 
+
+    <sect1 id="genius-to-start">
+      <title>Lancement de l'<application>Outil de maths Genius</application></title>
+      <para>You can start <application>Genius Mathematics Tool</application> in the following ways:
+      </para> 
+      <variablelist>
+        <varlistentry>
+          <term>Menu <guimenu>Applications</guimenu></term>
+          <listitem>
+           <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>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Boîte de dialogue <guilabel>Lancer une application</guilabel></term>
+          <listitem>
+           <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>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>Ligne de commande</term>
+         <listitem>
+           <para>Pour démarrer la version GNOME de l'<application>Outil de maths Genius</application>, 
saisissez <command>gnome-genius</command>.</para>
+           <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> 
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-when-start">
+    <title>Démarrage de Genius</title>
+      <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>
+
+      <figure id="mainwindow-fig"> 
+        <title>Fenêtre de l'<application>Outil de maths Genius</application></title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+             <phrase>Shows <application>Outil de maths Genius</application> main window. Contains titlebar, 
menubar,
+toolbar and working area. Menubar contains <guilabel>Fichier</guilabel>,
+<guilabel>Édition</guilabel>, <guilabel>Calculatrice</guilabel>,
+<guilabel>Examples</guilabel>,
+<guilabel>Programs</guilabel>,
+<guilabel>Paramètres</guilabel>, and <guilabel>Aide</guilabel> menus.</phrase> 
+            </textobject> 
+          </mediaobject>
+        </screenshot> 
+      </figure>
+
+      <para>La fenêtre de l'<application>Outil de maths Genius</application> contient les éléments suivants 
:</para>
+      <variablelist>
+        <varlistentry>
+          <term>Barre de menus</term>
+          <listitem>
+            <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>
+           <para>
+               The <guilabel>Calculator</guilabel> menu controls the
+calculator engine.  It allows you to run the currently selected program or to
+interrupt the current calculation.  You can also look at the full expression of
+the last answer (useful if the last answer was too large to fit onto the
+console), or you can view a listing of the values of all user defined
+variables.  You can also monitor user variables, which is especially useful
+while a long calculation is running, or to debug a certain program.
+                   Finally the <guilabel>Calculator</guilabel> allows plotting functions using a user 
friendly dialog box.
+          </para>
+          <para>
+                  The <guilabel>Examples</guilabel> menu is a list of example
+                  programs or demos.  If you open the menu, it will load the
+                  example into a new program, which you can run, edit, modify,
+                  and save.  These programs should be well documented
+                  and generally demonstrate either some feature of <application>Genius Mathematics 
Tool</application>
+                  or some mathematical concept.
+          </para>
+          <para>
+                  The <guilabel>Programs</guilabel> menu lists
+                  the currently open programs and allows you to switch
+                  between them.
+          </para>
+          <para>Les autres menus contiennent les mêmes fonctions classiques qui apparaissent dans d'autres 
applications.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Barre d'outils</term>
+          <listitem>
+            <para>La barre d'outils contient un sous-ensemble des commandes accessibles à partir de la barre 
de menus.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Zone de travail</term>
+          <listitem>
+            <para>La zone de travail est la principale méthode d'interaction avec l'application.</para>
+           <para>
+               The working area initially has just the <guilabel>Console</guilabel> tab, which is
+               the main way of interacting with the calculator.  Here you
+               type expressions and the results are immediately returned
+               after you hit the Enter key.
+           </para>
+           <para>
+               Alternatively you can write longer programs and those can
+               appear in separate tabs.  The programs are a set of commands or
+               functions that can be run all at once rather than entering them
+               at the command line.  The programs can be saved in files for later
+               retrieval.
+           </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+<!-- ================ Usage =================================== -->
+  <chapter id="genius-usage"> 
+    <title>Utilisation de base</title> 
+
+    <sect1 id="genius-usage-workarea"> 
+      <title>Utilisation de la zone de travail</title> 
+
+      <para>
+        Normally you interact with the calculator in the <guilabel>Console</guilabel> tab of the
+       work area.  If you are running the text only version then the console
+       will be the only thing that is available to you.  If you want to use
+       <application>Genius Mathematics Tool</application> as a calculator only, just type in your expression 
in the console, it
+       will be evaluated, and the returned value will be printed.
+      </para>
+
+      <para>
+             To evaluate an expression, type it into the <guilabel>Console</guilabel> work area and press 
enter.
+             Expressions are written in a
+language called GEL.  The most simple GEL expressions just looks like
+mathematics.  For example
+<screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
+</screen>
+(Last is the harmonic sum from 1 to 70)
+</para>
+<para>Pour obtenir une liste des fonctions et commandes, saisissez : <screen><prompt>genius&gt; 
</prompt><userinput>help</userinput>
+</screen> Si vous souhaitez obtenir plus d'aide sur une fonction précise, saisissez : 
<screen><prompt>genius&gt; </prompt><userinput>help NomDeLaFonction</userinput>
+</screen> Pour afficher ce manuel, saisissez : <screen><prompt>genius&gt; 
</prompt><userinput>manual</userinput>
+</screen></para>
+<para>
+Suppose you have previously saved some GEL commands as a program to a file and
+you now want to execute them.
+To load this program from the file <filename>path/to/program.gel</filename>,
+type
+<screen><prompt>genius&gt; </prompt><userinput>load path/to/program.gel</userinput>
+</screen>
+<application>Genius Mathematics Tool</application> keeps track of the current directory.
+To list files in the current directory type <command>ls</command>, to change directory
+do <userinput>cd directory</userinput> as in the UNIX command shell.
+</para>
+    </sect1>
+
+    <sect1 id="genius-usage-create-program"> 
+      <title>Création d'un programme</title> 
+      <para>
+             If you wish to enter several more complicated commands, or perhaps write a complicated
+             function using the <link linkend="genius-gel">GEL</link> language, you can create a new
+            program.
+      </para>
+      <para>
+To start writing a new program, choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>New
+Program</guimenuitem></menuchoice>. A new tab will appear in the work area. You
+can write a <link linkend="genius-gel">GEL</link> program in this work area.
+Once you have written your program you can run it by 
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice> (or
+the <guilabel>Run</guilabel> toolbar button).
+This will execute your program and will display any output on the <guilabel>Console</guilabel> tab.
+Executing a program is equivalent of taking the text of the program and
+typing it into the console.  The only difference is that this input is done
+independent of the console and just the output goes onto the console.
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice>
+will always run the currently selected program even if you are on the <guilabel>Console</guilabel>
+tab.  The currently selected program has its tab in bold type.  To select a
+program, just click on its tab.
+      </para>
+      <para>
+To save the program you've just written, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save 
As...</guimenuitem></menuchoice>.
+Similarly as in other programs you can choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice> to save a program that 
already has
+a filename attached to it.  If you have many opened programs you have edited and wish to save you can also 
choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save All Unsaved</guimenuitem></menuchoice>.
+      </para>
+      <para>
+             Programs that have unsaved changes will have a "[+]" next to their filename.  This way you can 
see if the file
+             on disk and the currently opened tab differ in content.  Programs which have not yet had a 
filename associated
+             with them are always considered unsaved and no "[+]" is printed.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-usage-open-program"> 
+      <title>Ouverture et lancement d'un programme</title> 
+      <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>
+      <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>
+      <para>
+             If you have made edits to a file you wish to throw away and want to reload to the version 
that's on disk,
+             you can choose the
+             <menuchoice><guimenu>File</guimenu><guimenuitem>Reload from Disk</guimenuitem></menuchoice> 
menuitem.  This is useful for experimenting
+             with a program and making temporary edits, to run a program, but that you do not intend to keep.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Plotting ============================== -->
+  <chapter id="genius-gel-plotting">
+    <title>Tracé de graphiques</title>
+
+    <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>
+
+    <sect1 id="genius-line-plots">
+      <title>Tracé de lignes</title>
+      <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>
+      <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>
+
+      <figure id="lineplot-fig"> 
+        <title>Fenêtre Création de graphiques</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Affiche la fenêtre pour tracer des graphiques.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       Type expressions with <userinput>x</userinput> as
+       the independent variable into the textboxes.  Alternatively you can give names of functions such as
+       <userinput>cos</userinput> rather then having to type <userinput>cos(x)</userinput>.
+       You can graph up to ten functions.  If you make a mistake and Genius cannot
+       parse the input it will signify this with a warning icon on the right of the text
+       input box where the error occurred, as well as giving you an error dialog.
+       You can change the ranges of the dependent and independent variables in the bottom
+       part of the dialog.
+       The <varname>y</varname> (dependent) range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+       checkbox.
+       The names of the variables can also be changed.
+       Pressing the <guilabel>Plot</guilabel> button produces the graph shown in <xref 
linkend="lineplot2-fig"/>.
+      </para>
+      <para>
+             The variables can be renamed by clicking the <guilabel>Change variable names...</guilabel> 
button, which is useful if you wish to print or save the figure and don't want to use the standard
+             names.  Finally you can also avoid printing the legend and the axis labels completely,
+             which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="lineplot2-fig"> 
+        <title>Fenêtre contenant une courbe</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Le graphe produit.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <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>
+
+      <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>
+    </sect1>
+
+    <sect1 id="genius-parametric-plots">
+      <title>Courbes paramétriques</title>
+      <para>
+       In the create plot window, you can also choose the <guilabel>Parametric</guilabel> notebook
+        tab to create two dimensional parametric plots.  This way you can
+       plot a single parametric function.  You can either specify the
+       points as <varname>x</varname> and <varname>y</varname>, or giving a single complex number
+       as a function of the variable <varname>t</varname>.
+       The range of the variable <varname>t</varname> is given explicitly, and the function is sampled
+       according to the given increment.
+       The <varname>x</varname> and <varname>y</varname> range can be set
+       automatically by turning on the <guilabel>Fit dependent axis</guilabel>
+       checkbox, or it can be specified explicitly.
+       See <xref linkend="paramplot-fig"/>.
+      </para>
+
+      <figure id="paramplot-fig"> 
+        <title>Onglet pour les courbes paramétriques</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Onglet pour tracer paramétrique dans la fenêtre <guilabel>Création de 
graphiques</guilabel>.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       An example of a parametric plot is given in
+       <xref linkend="paramplot2-fig"/>.
+       Similar operations can be
+       done on such graphs as can be done on the other line plots.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> or
+        <link linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link> 
function.
+      </para>
+
+      <figure id="paramplot2-fig"> 
+        <title>Courbe paramétrique</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Courbe paramétrique produite</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+    </sect1>
+
+    <sect1 id="genius-slopefield-plots">
+      <title>Champ de directions</title>
+      <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>
+
+      <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>
+
+      <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>
+
+    </sect1>
+
+    <sect1 id="genius-vectorfield-plots">
+      <title>Champ de vecteurs</title>
+      <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>
+
+      <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>
+
+      <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>
+
+      <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>
+
+    </sect1>
+
+    <sect1 id="genius-surface-plots">
+      <title>Tracé de surfaces</title>
+      <para>
+       Genius can also plot surfaces.  Select the <guilabel>Surface plot</guilabel> tab in the
+       main notebook of the <guilabel>Create Plot</guilabel> window.  Here you can specify a single
+       expression that should use either <varname>x</varname> and <varname>y</varname> as real independent 
variables
+       or <varname>z</varname> as a complex variable (where <varname>x</varname> is the real part of 
<varname>z</varname> and <varname>y</varname> is the
+       imaginary part).  For example to plot the modulus of the cosine
+       function for complex parameters,
+       you could enter <userinput>|cos(z)|</userinput>.  This would be
+       equivalent to <userinput>|cos(x+1i*y)|</userinput>.
+       See <xref linkend="surfaceplot-fig"/>.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link> function.
+      </para>
+      <para>
+             The <varname>z</varname> range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+             checkbox.  The variables can be renamed by clicking the <guilabel>Change variable 
names...</guilabel> button, which is useful if you wish to print or save the figure and don't want to use the 
standard
+             names.  Finally you can also avoid printing the legend, which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="surfaceplot-fig"> 
+        <title>Graphique de surface</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Module de la fonction cosinus complex.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+             In surface mode, left and right arrow keys on your keyboard will rotate the
+             view along the z axis.  Alternatively you can rotate along any axis by
+             selecting <guilabel>Rotate axis...</guilabel> in the <guilabel>View</guilabel> 
+             menu.  The <guilabel>View</guilabel> menu also has a top view mode which rotates the
+             graph so that the z axis is facing straight out, that is, we view the graph from the top
+             and get essentially just the colors that define the values of the function getting a
+             temperature plot of the function.  Finally you should
+             try <guilabel>Start rotate animation</guilabel>, to start a continuous slow rotation.
+             This is especially good if using <application>Genius Mathematics Tool</application> to present 
to an audience.
+      </para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL ====================================== -->
+  <chapter id="genius-gel"> 
+    <title>Fondamentaux GEL</title> 
+
+       <para>
+         GEL stands for Genius Extension Language.    It is the language you use
+         to write programs in Genius. A program in GEL is simply an
+         expression that evaluates to a number, a matrix, or another object
+         in GEL.
+         <application>Genius Mathematics Tool</application> can be used as a simple calculator, or as a
+         powerful theoretical research tool.  The syntax is meant to
+         have as shallow of a learning curve as possible, especially for use
+         as a calculator.
+       </para>
+
+    <sect1 id="genius-gel-values">
+      <title>Types de données</title>
+
+      <para>
+             Values in GEL can be <link linkend="genius-gel-values-numbers">numbers</link>, <link 
linkend="genius-gel-values-booleans">Booleans</link>, or <link 
linkend="genius-gel-values-strings">strings</link>.   GEL also treats 
+<link linkend="genius-gel-matrices">matrices</link> as values.
+             Values can be used in calculations, assigned to variables and returned from functions, among 
other uses.
+      </para>
+
+      <sect2 id="genius-gel-values-numbers">
+        <title>Nombres</title>
+        <para>Les entiers sont les premiers types de nombres GEL. Les entiers s'écrivent de façon 
habituelle. <programlisting>1234
+</programlisting> Les nombres hexadécimaux et octaux peuvent être écrit à la manière du langage C. Par 
exemple : <programlisting>0x123ABC
+01234
+</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
+</programlisting></para>
+
+        <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
+</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
+</programlisting></para>
+
+        <para>
+The next type of number is floating point. These are entered in a similar fashion to C notation. You can use 
<literal>E</literal>, <literal>e</literal> or <literal>@</literal> as the exponent delimiter. Note that using 
the exponent delimiter gives a float even if there is no decimal point in the number. Examples:
+<programlisting>1.315
+7.887e77
+7.887e-77
+.3
+0.3
+77e5
+</programlisting>
+       When Genius prints a floating point number it will always append a
+       <computeroutput>.0</computeroutput> even if the number is whole.  This is to indicate that
+       floating point numbers are taken as imprecise quantities.  When a number is written in the
+       scientific notation, it is always a floating point number and thus Genius does not
+       print the <computeroutput>.0</computeroutput>.
+        </para>
+
+        <para>
+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:
+<programlisting>1+2i
+8.01i
+77*e^(1.3i)
+</programlisting>
+        </para>
+
+        <important>
+          <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>
+
+          <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>
+        </important>
+
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-booleans">
+        <title>Booléens</title>
+        <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>
+        <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>
+        <para>Vous pouvez également faire des calculs avec des données booléennes. Par exemple : 
<programlisting>( (1 + true) - false ) * true
+</programlisting> est identique à : <programlisting>( (true or true) or not false ) and true
+</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
+</programlisting> vaut toujours <constant>true</constant> puisque 1 est converti en 
<constant>true</constant> avant d'être comparé à <constant>true</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-strings">
+        <title>Chaînes de caractères</title>
+        <para>
+Like numbers and Booleans, strings in GEL can be stored as values inside variables and passed to functions. 
You can also concatenate a string with another value using the plus operator. For example:
+<programlisting>a=2+3;"Le résultat est : "+a
+</programlisting>
+will create the string:
+<programlisting>Le résultat est : 5
+</programlisting>
+You can also use C-like escape sequences such as 
<literal>\n</literal>,<literal>\t</literal>,<literal>\b</literal>,<literal>\a</literal> and 
<literal>\r</literal>. To get a <literal>\</literal> or <literal>"</literal> into the string you can quote it 
with a <literal>\</literal>. For example:
+<programlisting>"Barre oblique : \\ Guillemets : \" Tabulations : \t1\t2\t3"
+</programlisting>
+will make a string:
+<programlisting>Barre oblique : \ Guillemets : " Tabulations :         1       2       3
+</programlisting>
+Do note however that when a string is returned from a function, escapes are
+quoted, so that the output can be used as input.  If you wish to print the
+string as it is (without escapes), use the 
+<link linkend="gel-function-print"><function>print</function></link>
+or
+<link linkend="gel-function-printn"><function>printn</function></link> functions.
+        </para>
+        <para>
+               In addition, you can use the library function <link 
linkend="gel-function-string"><function>string</function></link> to convert anything to a string. For example:
+<programlisting>string(22)
+</programlisting>
+will return
+<programlisting>"22"
+</programlisting>
+Strings can also be compared with <literal>==</literal> (equal), <literal>!=</literal> (not equal) and 
<literal>&lt;=&gt;</literal> (comparison) operators
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-null">
+        <title>Null</title>
+        <para>
+There is a special value called
+<constant>null</constant>. No operations can be performed on
+it, and nothing is printed when it is returned. Therefore,
+<constant>null</constant> is useful when you do not want output from an
+expression.  The value <constant>null</constant> can be obtained as an expression when you
+type <literal>.</literal>, the constant <constant>null</constant> or nothing.
+By nothing we mean that if you end an expression with
+a separator <literal>;</literal>, it is equivalent to ending it with a
+separator followed by a <constant>null</constant>.
+        </para>
+        <para>Exemple : <programlisting>x=5;.
+x=5;
+</programlisting></para>
+<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>
+      </sect2>
+
+    </sect1>
+
+    <sect1 id="genius-gel-variables">
+      <title>Utilisation des variables</title>
+
+      <para>Syntaxe : <programlisting>NomDeVariable
+</programlisting> Exemple : <screen><prompt>genius&gt; </prompt><userinput>e</userinput>
+= 2.71828182846
+</screen></para>
+
+      <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>
+
+      <tip>
+        <title>Utilisation de la complétion à l'aide de la touche Tab</title>
+        <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>
+      </tip>
+
+      <important>
+        <title>Noms de variable sensibles à la casse</title>
+        <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>
+      </important>
+
+
+      <sect2 id="genius-gel-variables-setting">
+        <title>Attribution de variables</title>
+        <para>Syntaxe : <programlisting><![CDATA[<identifier> = <value>
+<identifier> := <value>]]>
+</programlisting> Exemple: <programlisting>x = 3
+x := 3
+</programlisting></para>
+
+        <para>
+To assign a value to a variable, use the <literal>=</literal> or <literal>:=</literal> operators. These 
operators set the value of the variable and return the value you set, so you can do things like
+<programlisting>a = b = 5
+</programlisting>
+This will set <varname>b</varname> to 5 and then also set <varname>a</varname> to 5.
+        </para>
+
+        <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>
+
+       <para>
+         For more information about the scope of variables, that is when are what variables visible, see 
<xref linkend="genius-gel-variables-global"/>.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-variables-built-in">
+        <title>Variables internes</title>
+        <para>
+GEL has a number of built-in ‘variables’, such as
+<varname>e</varname>, <varname>pi</varname> or <varname>GoldenRatio</varname>.  These are widely used 
constants with a preset value, and
+they cannot be assigned new values.
+There are a number of other built-in variables.
+See <xref linkend="genius-gel-function-list-constants"/> for a full list.  Note that <varname>i</varname> is 
not by default
+the square root of negative one (the imaginary number), and is undefined to allow its use as a counter.  If 
you wish to write the imaginary number you need to
+use <userinput>1i</userinput>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-previous-result">
+        <title>Variable « Résultat précédent »</title>
+        <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
+</programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-functions">
+      <title>Utilisation des fonctions</title>
+
+      <para>Syntaxe : <programlisting>NomDeLaFonction(argument1, argument2, ...)
+</programlisting> Exemple : <programlisting>Factorial(5)
+cos(2*pi)
+gcd(921,317)
+</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>
+
+      <para>
+             There are many built-in functions, such as <link 
linkend="gel-function-sin"><function>sin</function></link>, <link 
linkend="gel-function-cos"><function>cos</function></link> and <link 
linkend="gel-function-tan"><function>tan</function></link>. You can use the <link 
linkend="gel-command-help"><function>help</function></link> built-in command to get a list of available 
functions, or see <xref linkend="genius-gel-function-list"/> for a full listing.
+      </para>
+
+      <tip>
+        <title>Utilisation de la complétion à l'aide de la touche Tab</title>
+        <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>
+      </tip>
+
+      <important>
+        <title>Noms de fonction sensibles à la casse</title>
+        <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>
+      </important>
+
+
+      <sect2 id="genius-gel-functions-defining">
+        <title>Définition de fonctions</title>
+        <para>Syntaxe : <programlisting><![CDATA[function <identifier>(<comma separated arguments>) = 
<function body>
+<identifier> = (`() = <function body>)
+]]></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>
+
+        <para>
+A function takes zero or more comma separated arguments, and returns the result of the function body. 
Defining your own functions is primarily a matter of convenience; one possible use is to have sets of 
functions defined in GEL files that Genius can load in order to make them available.
+Example:
+<programlisting>function addup(a,b,c) = a+b+c
+</programlisting>
+then <userinput>addup(1,4,9)</userinput> yields 14
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-functions-variable-argument-lists">
+        <title>Liste d'arguments variable</title>
+        <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
+</programlisting> alors <userinput>f(1,2,3)</userinput> donne <computeroutput>[2,3]</computeroutput> tandis 
que <userinput>f(1)</userinput> donne <constant>null</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-functions-passing-functions">
+        <title>Une fonction comme argument d'une autre fonction</title>
+
+        <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>
+
+        <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;
+function b(x) = x*x;
+f(b,2)
+</programlisting></para>
+        <para>
+To pass functions that are not defined,
+you can use an anonymous function (see <xref linkend="genius-gel-functions-defining"/>).  That is, you want 
to pass a function without giving it a name.
+Syntax:
+<programlisting><![CDATA[function(<comma separated arguments>) = <function body>
+`(<comma separated arguments>) = <function body>
+]]></programlisting>
+Example:
+<programlisting>function f(a,b) = a(b)+1;
+f(`(x) = x*x,2)
+</programlisting>
+This will return 5.
+        </para>
+      </sect2>
+
+
+    <sect2 id="genius-gel-functions-operations">
+      <title>Opérations sur les fonctions</title>
+      <para>
+             Some functions allow arithmetic operations, and some single argument functions such as <link 
linkend="gel-function-exp"><function>exp</function></link> or <link 
linkend="gel-function-ln"><function>ln</function></link>, to operate on the function. For example,
+<programlisting>exp(sin*cos+4)
+</programlisting>
+will return a function that takes <varname>x</varname> and returns 
<userinput>exp(sin(x)*cos(x)+4)</userinput>.  It is functionally equivalent
+to typing
+<programlisting>`(x) = exp(sin(x)*cos(x)+4)
+</programlisting>
+
+This operation can be useful when quickly defining functions. For example to create a function called 
<varname>f</varname>
+to perform the above operation, you can just type:
+<programlisting>f = exp(sin*cos+4)
+</programlisting>
+It can also be used in plotting. For example, to plot sin squared you can enter:
+<programlisting>LinePlot(sin^2)
+</programlisting>
+      </para>
+
+      <warning>
+        <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>
+      </warning>
+    </sect2>
+
+
+    </sect1>
+
+    <sect1 id="genius-gel-separator">
+      <title>Séparateur</title>
+      <para>
+             GEL is somewhat different from other languages in how it deals with multiple commands and 
functions.
+             In GEL you must chain commands together with a separator operator.
+That is, if you want to type more than one expression you have to use
+the <literal>;</literal> operator in between the expressions.   This is
+a way in which both expressions are evaluated and the result of the second one (or the last one
+if there is more than two expressions) is returned.
+Suppose you type the following:
+<programlisting>3 ; 5
+</programlisting>
+This expression will yield 5.
+      </para>
+      <para>
+This will require some parenthesizing to make it unambiguous sometimes,
+especially if the <literal>;</literal> is not the top most primitive. This slightly differs from
+other programming languages where the <literal>;</literal> is a terminator of statements, whereas
+in GEL it’s actually a binary operator. If you are familiar with pascal
+this should be second nature. However genius can let you pretend it is a
+terminator to some degree.  If a <literal>;</literal> is found at the end of a parenthesis or a block,
+genius will append a null to it as if you would have written
+<userinput>;null</userinput>.
+This is useful in case you do not want to return a value from say a loop,
+or if you handle the return differently. Note that it will slightly slow down
+the code if it is executed too often as there is one more operator involved.
+      </para>
+      <para>
+             If you are typing expressions in a program you do not have to add a semicolon.  In this case
+             genius will simply print the return value whenever it executes the expression.  However, do 
note that if you are defining a
+             function, the body of the function is a single expression.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comments">
+      <title>Commentaires</title>
+      <para>
+             GEL is similar to other scripting languages in that <literal>#</literal> denotes
+             a comment, that is text that is not meant to be evaluated.  Everything beyond the
+             pound sign till the end of line will just be ignored.  For example,
+<programlisting># This is just a comment
+# every line in a comment must have its own pound sign
+# in the next line we set x to the value 123
+x=123;
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-modular-evaluation">
+      <title>Évaluation modulaire</title>
+      <para>
+             Genius implements modular arithmetic.
+To use it you just add "mod &lt;integer&gt;" after
+the expression.  Example:
+<userinput>2^(5!) * 3^(6!) mod 5</userinput>
+It could be possible to do modular arithmetic by computing with integers and then modding in the end with
+the <literal>%</literal> operator, which simply gives the remainder, but
+that may be time consuming if not impossible when working with larger numbers.
+For example, <userinput>10^(10^10) % 6</userinput> will simply not work (the exponent
+will be too large), while
+<userinput>10^(10^10) mod 6</userinput> is instantaneous.  The first expression first tries to compute the 
integer
+<userinput>10^(10^10)</userinput> and then find remainder after division by 6, while the second expression 
evaluates
+everything modulo 6 to begin with.
+      </para>
+      <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
+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]
+B = A^-1 mod 5
+A*B mod 5</programlisting> Cela doit donner la matrice identité car B est l'inverse de A modulo 5.</para>
+      <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
+=
+[2, 5]
+genius&gt; 2*2 mod 7
+= 4</programlisting>La fonction <function>sqrt</function> renvoie en fait toutes les racines carrées 
possibles.</para>
+      <para>
+             Do not chain mod operators, simply place it at the end of the computation, all computations in 
the expression on the left
+             will be carried out in mod arithmetic.  If you place a mod inside
+             a mod, you will get unexpected results.  If you simply want to
+             mod a single number and control exactly when remainders are
+             taken, best to use the <literal>%</literal> operator.  When you
+             need to chain several expressions in modular arithmetic with
+             different divisors, it may be best to just split up the expression into several and use
+             temporary variables to avoid a mod inside a mod.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-operator-list">
+      <title>Liste des opérateurs GEL</title>
+
+      <para>
+             Everything in GEL is really just an expression.  Expressions are stringed together with
+             different operators.  As we have seen, even the separator is simply a binary operator
+             in GEL.  Here is a list of the operators in GEL. 
+      </para>
+
+      <variablelist>
+        <varlistentry>
+         <term><userinput>a;b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a=b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:=b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>|a|</userinput></term>
+         <listitem>
+           <para>
+                  Absolute value.
+                  In case the expression is a complex number the result will be the modulus
+(distance from the origin).  For example:
+<userinput>|3 * e^(1i*pi)|</userinput>
+returns 3.
+         </para>
+          <para>Consultez <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld</ulink> 
pour plus d'informations.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a^b</userinput></term>
+         <listitem>
+           <para>Exposant, met <varname>a</varname> à la puissance <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.^b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a+b</userinput></term>
+         <listitem>
+           <para>
+             Addition.  Adds two numbers, matrices, functions or strings.  If
+            you add a string to anything the result will just be a string.  If one is
+            a square matrix and the other a number, then the number is multiplied by
+            the identity matrix.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a-b</userinput></term>
+         <listitem>
+           <para>Soustraction. Soustrait deux nombres, matrices ou fonctions.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a*b</userinput></term>
+         <listitem>
+           <para>Multiplication. C'est la multiplication matricielle normale.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.*b</userinput></term>
+         <listitem>
+           <para>Multiplication élément par élément si <varname>a</varname> et <varname>b</varname> sont des 
matrices.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a/b</userinput></term>
+         <listitem>
+           <para>
+                  Division.  When <varname>a</varname> and <varname>b</varname> are just numbers
+                  this is the normal division.  When they are matrices, then this is
+                  equivalent to <userinput>a*b^-1</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a./b</userinput></term>
+         <listitem>
+           <para>
+                  Element by element division.  Same as <userinput>a/b</userinput> for
+                  numbers, but operates element by element on matrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a\b</userinput></term>
+         <listitem>
+           <para>Division arrière. C'est donc la même chose que <userinput>b/a</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.\b</userinput></term>
+         <listitem>
+           <para>Division arrière élément par élément.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a%b</userinput></term>
+         <listitem>
+           <para>
+            The mod operator.  This does not turn on the <link 
linkend="genius-gel-modular-evaluation">modular mode</link>, but
+             just returns the remainder of integer division
+             <userinput>a/b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.%b</userinput></term>
+         <listitem>
+           <para>
+             Element by element mod operator.  Returns the remainder
+            after element by element integer division
+            <userinput>a./b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a mod b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!</userinput></term>
+         <listitem>
+           <para>Opérateur factoriel. Il s'agit de <userinput>1*...*(n-2)*(n-1)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!!</userinput></term>
+         <listitem>
+           <para>Opérateur double factoriel. Il s'agit de <userinput>1*...*(n-4)*(n-2)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a==b</userinput></term>
+         <listitem>
+           <para>
+            Equality operator.
+            Returns <constant>true</constant> or <constant>false</constant>
+            depending on <varname>a</varname> and <varname>b</varname> being equal or not.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!=b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;&gt;b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>
+             Less than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt;= b &lt;= c</userinput> (can
+            also be combined with the less than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>
+             Greater than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt;= b &gt;= c</userinput>
+            (and they can also be combined with the greater than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a&lt;b</userinput></term>
+         <listitem>
+           <para>
+             Less than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt; b &lt; c</userinput>
+            (they can also be combined with the less than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;b</userinput></term>
+         <listitem>
+           <para>
+             Greater than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt; b &gt; c</userinput>
+            (they can also be combined with the greater than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=&gt;b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a and b</userinput></term>
+         <listitem>
+           <para>
+                  Logical and.  Returns true if both
+                  <varname>a</varname> and <varname>b</varname> are true,
+                  else returns false.  If given numbers, nonzero numbers
+                  are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a or b</userinput></term>
+         <listitem>
+           <para>
+             Logical or.
+            Returns true if either
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a xor b</userinput></term>
+         <listitem>
+           <para>
+             Logical xor.
+            Returns true if exactly one of
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>not a</userinput></term>
+         <listitem>
+           <para>
+                  Logical not.  Returns the logical negation of <varname>a</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>-a</userinput></term>
+         <listitem>
+           <para>
+             Negation operator.  Returns the negative of a number or a matrix (works element-wise on a 
matrix).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>&amp;a</userinput></term>
+         <listitem>
+           <para>
+             Variable referencing (to pass a reference to a variable).
+            See <xref linkend="genius-gel-references"/>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>*a</userinput></term>
+         <listitem>
+           <para>
+             Variable dereferencing (to access a referenced variable).
+            See <xref linkend="genius-gel-references"/>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a'</userinput></term>
+         <listitem>
+           <para>
+                  Matrix conjugate transpose.  That is, rows and columns get swapped and we take complex 
conjugate of all entries.  That is
+                  if the i,j element of <varname>a</varname> is x+iy, then the j,i element of 
<userinput>a'</userinput> is x-iy.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.'</userinput></term>
+         <listitem>
+           <para>
+             Matrix transpose, does not conjugate the entries.  That is, 
+            the i,j element of <varname>a</varname>  becomes the j,i element of <userinput>a.'</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,c)</userinput></term>
+         <listitem>
+           <para>
+            Get element of a matrix in row <varname>b</varname> and column
+            <varname>c</varname>.   If <varname>b</varname>,
+            <varname>c</varname> are vectors, then this gets the corresponding
+            rows, columns or submatrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,)</userinput></term>
+         <listitem>
+           <para>Renvoie une ligne de matrice (ou plusieurs lignes si <varname>b</varname> est un 
vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,:)</userinput></term>
+         <listitem>
+           <para>Comme ci-dessus.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(,c)</userinput></term>
+         <listitem>
+           <para>Renvoie une colonne de matrice (ou des colonnes si <varname>c</varname> est un 
vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(:,c)</userinput></term>
+         <listitem>
+           <para>Comme ci-dessus.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b)</userinput></term>
+         <listitem>
+           <para>Renvoie un élément d'une matrice en le traitant comme un vecteur. Cela parcourt la matrice 
dans le sens des lignes.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b</userinput></term>
+         <listitem>
+           <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,)
+            </programlisting> puisque <userinput>2:4</userinput> renvoie un vecteur 
<userinput>[2,3,4]</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b:c</userinput></term>
+         <listitem>
+           <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
+=
+`[1, 3, 5, 7, 9]
+</programlisting></para>
+          <para>
+            When the numbers involved are floating point numbers, for example
+            <userinput>1.0:0.4:3.0</userinput>, the output is what is expected
+            even though adding 0.4 to 1.0 five times is actually just slightly
+            more than 3.0 due to the way that floating point numbers are
+            stored in base 2 (there is no 0.4, the actual number stored is
+            just ever so slightly bigger).  The way this is handled is the
+            same as in the for, sum, and prod loops.  If the end is within
+            <userinput>2^-20</userinput> times the step size of the endpoint,
+            the endpoint is used and we assume there were roundoff errors.
+            This is not perfect, but it handles the majority of the cases.
+            This check is done only from version 1.0.18 onwards, so execution
+            of your code may differ on older versions.  If you want to avoid
+            dealing with this issue, use actual rational numbers, possibly
+            using the <function>float</function> if you wish to get floating
+            point numbers in the end.  For example
+            <userinput>1:2/5:3</userinput> does the right thing and
+            <userinput>float(1:2/5:3)</userinput> even gives you floating
+            point numbers and is ever so slightly more precise than
+            <userinput>1.0:0.4:3.0</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>(a)i</userinput></term>
+         <listitem>
+           <para>
+            Make <varname>a</varname> into an imaginary number (multiply <varname>a</varname> by the
+            imaginary).  Normally the imaginary number <varname>i</varname> is
+            written as <userinput>1i</userinput>.  So the above is equal to
+            <programlisting>(a)*1i
+            </programlisting>
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>`a</userinput></term>
+         <listitem>
+           <para>Apostropher un identifiant afin qu'il ne soit pas évalué. Ou apostropher une matrice afin 
qu'elle ne soit pas étendue.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a swapwith b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a by b</userinput></term>
+         <listitem>
+           <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>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+
+<note>
+<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>
+</note>
+
+<note>
+<para>
+The comparison operators (except for the &lt;=&gt; operator, which behaves normally), are not strictly 
binary operators, they can in fact be grouped in the normal mathematical way, e.g.: (1&lt;x&lt;=y&lt;5) is a 
legal boolean expression and means just what it should, that is (1&lt;x and x≤y and y&lt;5)
+</para>
+</note>
+
+<note>
+<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>
+</note>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL Programming ========================== -->
+  <chapter id="genius-gel-programming">
+    <title>Programmation avec GEL</title>
+
+    <sect1 id="genius-gel-conditionals">
+      <title>Tests</title>
+      <para>Syntaxe : <programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
+]]></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>
+      <para>Exemples : <programlisting><![CDATA[if(a==5)then(a=a-1)
+if b<a then b=a
+if c>0 then c=c-1 else c=0
+a = ( if b>0 then b else 1 )
+]]></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
+</programlisting> est interprété comme : <programlisting>if a==5 then a:=a-1
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loops">
+      <title>Boucles</title>
+
+      <sect2 id="genius-gel-loops-while">
+        <title>Boucles tant que (while) et jusqu'à (until)</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[while <expression1> do <expression2>
+until <expression1> do <expression2>
+do <expression2> while <expression1>
+do <expression2> until <expression1>]]></programlisting>
+
+       These are similar to other languages.  However, as in GEL it is simply an expression that must have 
some return value, these
+       constructs will simply return the result of the last iteration or <literal>NULL</literal> if no 
iteration was done.  In the boolean expression, <literal>=</literal> is translated into <literal>==</literal> 
just as for the <literal>if</literal> statement.
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-for">
+        <title>Boucles pour (for)</title>
+        <para>Syntaxe : <programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
+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 jamai
 s 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)
+</programlisting></para>
+        <para>
+               When one of the values is a floating point number, then the
+               final check is done to within 2^-20 of the step size.  That is,
+               even if we overshoot by 2^-20 times the "by" above, we still execute the last
+               iteration.  This way 
+<programlisting>for x = 0 to 1 by 0.1 do print(x)
+</programlisting>
+does the expected even though adding 0.1 ten times becomes just slightly more than 1.0 due to the way that 
floating point numbers
+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
+the majority of the cases.  If you want to avoid dealing with this issue, use actual rational numbers for 
example:
+<programlisting>for x = 0 to 1 by 1/10 do print(x)
+</programlisting>
+               This check is done only from version 1.0.16 onwards, so execution of your code may differ on 
older versions.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-foreach">
+        <title>Boucles pour chaque (foreach)</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting>
+
+                       For each element in the matrix, going row by row from left to right we execute the 
body
+                      with the identifier set to the current element. To
+print numbers 1,2,3 and 4 in this order you could do:
+<programlisting>for n in [1,2:3,4] do print(n)
+</programlisting>
+If you wish to run through the rows and columns of a matrix, you can use
+the RowsOf and ColumnsOf functions, which return a vector of the rows or
+columns of the matrix.  So,
+<programlisting>for n in RowsOf ([1,2:3,4]) do print(n)
+</programlisting>
+will print out [1,2] and then [3,4].
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-break-continue">
+        <title>Instructions « break » et « continue »</title>
+        <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 (
+  if(<expression2>) break
+  else if(<expression3>) continue;
+  <expression4>
+)
+]]></programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-sums-products">
+      <title>Sommes et produits</title>
+      <para>Syntaxe : <programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
+sum <identifier> = <from> to <to> by <increment> do <body>
+sum <identifier> in <matrix> do <body>
+prod <identifier> = <from> to <to> do <body>
+prod <identifier> = <from> to <to> by <increment> do <body>
+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>
+      <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>
+      <para>
+             For floating point numbers the same roundoff error protection is done as in the for loop.
+            See <xref linkend="genius-gel-loops-for"/>.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comparison-operators">
+      <title>Opérateurs de comparaison</title>
+      <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>
+
+      <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
+if a==b then c
+</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>
+
+      <para>
+       All the comparison operators (except for the
+       <literal>&lt;=&gt;</literal> operator, which
+       behaves normally), are not strictly binary operators, they can in fact
+       be grouped in the normal mathematical way, e.g.:
+       (<literal>1&lt;x&lt;=y&lt;5</literal>) is
+       a legal boolean expression and means just what it should, that is
+       (1&lt;x and x≤y and y&lt;5)
+      </para>
+      <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>
+    </sect1>
+
+      <sect1 id="genius-gel-variables-global">
+        <title>Variables globales et portée des variables</title>
+       <para>
+         GEL is a
+         <ulink url="https://en.wikipedia.org/wiki/Scope_%28programming%29";>
+         dynamically scoped language</ulink>.  We will explain what this
+         means below.  That is, normal variables and functions are dynamically
+         scoped.  The exception are 
+         <link linkend="genius-gel-parameters">parameter variables</link>,
+         which are always global.
+       </para>
+       <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());
+function g() = print(a);
+f();
+</programlisting></para>
+        <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());
+function g() = print(a);
+a:=10;
+f();
+</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>
+       <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>
+       <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>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
+= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
+<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
+= 1e20
+</screen></para>
+       <para>
+         Functions and variables defined at the top level are
+         considered global.  They are visible from anywhere.  As we
+         said the following function <function>f</function>
+         will not change the value of <varname>a</varname> to 5.
+<programlisting>a=6;
+function f() = (a:=5);
+f();
+</programlisting>
+         Sometimes, however, it is necessary to set
+a global variable from inside a function.  When this behavior is needed,
+use the
+<link linkend="gel-function-set"><function>set</function></link> function. Passing a string or a quoted 
identifier to
+this function sets the variable globally (on the top level).
+For example, to set
+<varname>a</varname> to the value 3 you could call:
+<programlisting>set(`a,3)
+</programlisting>
+or:
+<programlisting>set("a",3)
+</programlisting>
+        </para>
+        <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>
+       <para>
+               See also the
+               <link linkend="gel-function-SetElement"><function>SetElement</function></link> and
+               <link linkend="gel-function-SetVElement"><function>SetVElement</function></link> functions.
+       </para>
+       <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>
+       <para>
+         There are also true local variables that are not seen from
+         anywhere but the current context.  Also when returning functions
+         by value it may reference variables not visible from higher context
+         and this may be a problem.  See the sections
+         <link linkend="genius-gel-true-local-variables">True
+         Local Variables</link> and
+         <link linkend="genius-gel-returning-functions">Returning
+         Functions</link>.
+       </para>
+      </sect1>
+
+      <sect1 id="genius-gel-parameters">
+        <title>Variables paramètres</title>
+       <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
+]]></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>
+        <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>
+        <para>
+         Some parameters are built-in and modify the behavior of genius.
+        </para>
+      </sect1>
+
+    <sect1 id="genius-gel-returning">
+      <title>Sortie de fonction</title>
+       <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>
+      <para>Exemple : <programlisting><![CDATA[function f(x) = (
+  y=1;
+  while true do (
+    if x>50 then return y;
+    y=y+1;
+    x=x+1
+  )
+)
+]]></programlisting></para>
+    </sect1>
+
+
+    <sect1 id="genius-gel-references">
+      <title>Références</title>
+      <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>
+      <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)
+]]></programlisting></para>
+      <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>
+      <para>Les références s'expliquent mieux par un exemple : <programlisting><![CDATA[a=1;
+b=&a;
+*b=2;
+]]></programlisting> Maintenant <varname>a</varname> contient 2. Vous pouvez également référencer des 
fonctions : <programlisting><![CDATA[function f(x) = x+1;
+t=&f;
+*t(3)
+]]></programlisting> donne 4.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-lvalues">
+      <title>Valeurs à gauche (lvalues)</title>
+      <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>
+  <varlistentry>
+    <term><userinput>a</userinput></term>
+    <listitem>
+      <para>Identifiant. Ici nous attribuons une valeur à la variable de nom <varname>a</varname>.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>*a</userinput></term>
+    <listitem>
+      <para>Déréférence un identifiant. Cela attribue une valeur à ce que vers quoi la variable 
<varname>a</varname> pointe.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>a@(&lt;région&gt;)</userinput></term>
+    <listitem>
+      <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>
+    </listitem>
+  </varlistentry>
+</variablelist></para>
+      <para>
+Examples:
+<programlisting>a:=4
+*tmp := 89
+a@(1,1) := 5
+a@(4:8,3) := [1,2,3,4,5]'
+</programlisting>
+Note that both <literal>:=</literal> and <literal>=</literal> can be used
+interchangeably.  Except if the assignment appears in a condition.
+It is thus always safer to just use
+<literal>:=</literal> when you mean assignment, and <literal>==</literal>
+when you mean comparison.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <chapter id="genius-gel-programming-advanced">
+    <title>Programmation avancée avec GEL</title>
+
+    <sect1 id="genius-gel-error-handling">
+      <title>Gestion des erreurs</title>
+      <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>
+      <para>Par exemple, si vous voulez vérifier les arguments de votre fonction. Vous pouvez utiliser le 
code suivant. <programlisting>function f(M) = (
+  if not IsMatrix (M) then (
+    error ("M n'est pas une matrice !");
+    bailout
+  );
+  ...
+)
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-toplevel-syntax">
+      <title>Syntaxe de haut-niveau</title>
+      <para>
+       The syntax is slightly different if you enter statements on
+       the top level versus when they are inside parentheses or
+       inside functions.  On the top level, enter acts the same as if
+       you press return on the command line.  Therefore think of programs
+       as just a sequence of lines as if they were entered on the command line.
+       In particular, you do not need to enter the separator at the end of the
+       line (unless it is of course part of several statements inside
+       parentheses).  When a statement does not end with a separator on the
+       top level, the result is printed after being executed.
+      </para>
+      <para>
+       For example,
+       <programlisting>function f(x)=x^2
+f(3)
+</programlisting>
+       will print first the result of setting a function (a representation of
+       the function, in this case <computeroutput>(`(x)=(x^2))</computeroutput>)
+       and then the expected 9.  To avoid this, enter a separator
+       after the function definition.
+       <programlisting>function f(x)=x^2;
+f(3)
+</programlisting>
+       If you need to put a separator into your function then you have to surround with
+       parenthesis.  For example:
+<programlisting>function f(x)=(
+  y=1;
+  for j=1 to x do
+    y = y+j;
+  y^2
+);
+</programlisting>
+      </para>
+      <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
+  FaireQuelqueChose()
+else
+  FaireAutreChose()
+</programlisting></para>
+      <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(
+  FaireQuelqueChose()
+) else (
+  FaireAutreChose()
+)
+</programlisting></para>
+    </sect1>
+
+     <sect1 id="genius-gel-returning-functions">
+       <title>Renvoi de fonction</title>
+       <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() = (
+  k = 5;
+  `(x) = (x+k)
+)
+</programlisting> Notez que la fonction ajoute <varname>k</varname> à <varname>x</varname>. Vous pouvez 
l'utiliser ainsi. <programlisting>g = f();
+g(5)
+</programlisting> et <userinput>g(5)</userinput> doit renvoyer 10.</para>
+       <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() = (
+  k := 5;
+  function r(x) = (x+k);
+  k := 10;
+  r
+)
+</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éfini
 tion 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>
+       <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() = (
+  k := 5;
+  function r(x) [k] = (x+k);
+  k := 10;
+  r
+)
+</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>
+       <para>
+         When you want the function to not have any private dictionary
+         then put empty square brackets after the argument list.  Then
+         no private dictionary will be created at all.  Doing this is
+         good to increase efficiency when a private dictionary is not
+         needed or when you want the function to lookup all variables
+         as it sees them when called.  For example suppose you want
+         the function returned from <function>f</function> to see
+         the value of <varname>k</varname> from the toplevel despite
+         there being a local variable of the same name during definition.
+         So the code
+<programlisting>function f() = (
+  k := 5;
+  function r(x) [] = (x+k);
+  r
+);
+k := 10;
+g = f();
+g(10)
+</programlisting>
+         will return 20 and not 15, which would happen if
+         <varname>k</varname> with a value of 5 was added to the private
+         dictionary.
+       </para>
+    </sect1>
+
+    <sect1 id="genius-gel-true-local-variables">
+      <title>Variables locales vraies</title>
+      <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;
+function r(x) = (x+k);
+function f(g,x) = (
+  k := 5;
+  g(x)
+);
+f(r,1)
+</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>
+      <para>
+       But there is another solution.  Since version 1.0.7 there are
+       true local variables.  These are variables that are visible only
+       from the current context and not from any called functions.
+       We could define <varname>k</varname> as a local variable in the
+       function <function>f</function>.  To do this add a
+       <command>local</command> statement as the first statement in the
+       function (it must always be the first statement in the function).
+       You can also make any arguments be local variables as well.
+       That is,
+<programlisting>function f(g,x) = (
+  local g,x,k;
+  k := 5;
+  g(x)
+);
+</programlisting>
+       Then the code will work as expected and prints out 11.
+       Note that the <command>local</command> statement initializes
+       all the referenced variables (except for function arguments) to
+       a <constant>null</constant>.
+      </para>
+      <para>
+       If all variables are to be created as locals you can just pass an
+       asterisk instead of a list of variables.  In this case the variables
+       will not be initialized until they are actually set of course.
+       So the following definition of <function>f</function>
+       will also work:
+<programlisting>function f(g,x) = (
+  local *;
+  k := 5;
+  g(x)
+);
+</programlisting>
+      </para>
+      <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>
+    </sect1>
+
+    <sect1 id="genius-gel-startup-procedure">
+      <title>Procédure de démarrage de GEL</title>
+      <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>
+      <para>
+If you ever change the library in its installed place, you’ll have to
+first compile it with <command>genius --compile loader.gel &gt; lib.cgel</command>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-loading-programs">
+      <title>Chargement de programmes</title>
+      <para>
+Sometimes you have a larger program you wrote into a file and want to read that file into 
<application>Genius Mathematics Tool</application>. In these situations, you have two options. You can keep 
the functions you use most inside the <filename>~/.geniusinit</filename> file. Or if you want to load up a 
file in a middle of a session (or from within another file), you can type <command>load &lt;list of 
filenames&gt;</command> at the prompt. This has to be done on the top level and not inside any function or 
whatnot, and it cannot be part of any expression. It also has a slightly different syntax than the rest of 
genius, more similar to a shell. You can enter the file in quotes. If you use the '' quotes, you will get 
exactly the string that you typed, if you use the "" quotes, special characters will be unescaped as they are 
for strings. Example:
+<programlisting>load programme1.gel programme2.gel
+load "Etrange nom de fichier avec des ESPACES.gel"
+</programlisting>
+There are also <command>cd</command>, <command>pwd</command> and <command>ls</command> commands built in. 
<command>cd</command> will take one argument, <command>ls</command> will take an argument that is like the 
glob in the UNIX shell (i.e., you can use wildcards). <command>pwd</command> takes no arguments. For example:
+<programlisting>cd repertoire_contenant_des_programmes_gel
+ls *.gel
+</programlisting>
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Matrices ================================= -->
+  <chapter id="genius-gel-matrices">
+    <title>Matrices en GEL</title>
+
+    <para>
+      Genius has support for vectors and matrices and possesses a sizable library of
+      matrix manipulation and linear algebra functions.
+    </para>
+
+    <sect1 id="genius-gel-matrix-support">
+      <title>Saisie de matrices</title>
+      <para>
+To enter matrices, you can use one of the following two syntaxes. You can either enter
+the matrix on one line, separating values by commas and rows by semicolons.  Or you
+can enter each row on one line, separating
+values by commas.
+You can also just combine the two methods.
+So to enter a 3x3 matrix
+of numbers 1-9 you could do
+<programlisting>[1,2,3;4,5,6;7,8,9]
+</programlisting>
+or
+<programlisting>[1, 2, 3
+ 4, 5, 6
+ 7, 8, 9]
+</programlisting>
+Do not use both ';' and return at once on the same line though.
+      </para>
+
+      <para>
+You can also use the matrix expansion functionality to enter matrices.
+For example you can do:
+<programlisting>a = [ 1, 2, 3
+      4, 5, 6
+      7, 8, 9]
+b = [ a,  10
+      11, 12]
+</programlisting>
+and you should get
+<programlisting>[1,   2,  3, 10
+ 4,   5,  6, 10
+ 7,   8,  9, 10
+ 11, 11, 11, 12]
+</programlisting>
+similarly you can build matrices out of vectors and other stuff like that.
+      </para>
+
+      <para>Notez que les éléments non spécifiés sont initialisés à 0, donc <programlisting>[1, 2, 3
+ 4, 5
+ 6]
+</programlisting> donne au final <programlisting>
+[1, 2, 3
+ 4, 5, 0
+ 6, 0, 0]
+</programlisting></para>
+
+      <para>
+       When matrices are evaluated, they are evaluated and traversed row-wise.  This is just
+       like the <literal>M@(j)</literal> operator, which traverses the matrix row-wise.
+      </para>
+
+      <note>
+        <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>
+      </note>
+
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-transpose">
+      <title>Opérateur de transposition conjuguée et de transposition</title>
+      <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]'
+</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].'
+</programlisting></para>
+       <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>
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-linalg">
+      <title>Algèbre linéaire</title>
+      <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>
+      <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>
+      <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>
+      <para>
+       In general when Genius computes the basis of a certain vectorspace
+       (for example with the <link linkend="gel-function-NullSpace"><function>NullSpace</function></link>) 
it will give the basis as
+a matrix, in which the columns are the vectors of the basis.  That is, when
+Genius talks of a linear subspace it means a matrix whose column space is
+the given linear subspace.
+      </para>
+      <para>
+       It should be noted that Genius can remember certain properties of a
+matrix.  For example, it will remember that a matrix is in row reduced form.
+If many calls are made to functions that internally use row reduced form of
+the matrix, we can just row reduce the matrix beforehand once.  Successive
+calls to <link linkend="gel-function-rref"><function>rref</function></link> will be very fast.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Polynomials ============================== -->
+  <chapter id="genius-gel-polynomials">
+    <title>Polynômes en GEL</title>
+
+    <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>
+
+    <sect1 id="genius-gel-polynomials-using">
+      <title>Utilisation des polynômes</title>
+      <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]
+</programlisting> représente le polynôme <programlisting>1 + 2*x + 3*x^2
+</programlisting></para>
+      <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")
+</programlisting> donne <programlisting>3*y^2 + 2*y + 1
+</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])
+f(2)
+</programlisting></para>
+      <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>
+      <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>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Set Theory ============================== -->
+  <chapter id="genius-gel-settheory">
+    <title>Théorie des ensembles en GEL</title>
+
+    <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>
+
+    <sect1 id="genius-gel-sets-using">
+      <title>Utilisation des ensembles</title>
+      <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>
+      <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>
+= [1, 2, 3]
+</screen></para>
+
+       <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>
+= [1, 2, 4, 3]
+</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>
+
+       <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>
+= true
+</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>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL function list ======================== -->
+  <chapter id="genius-gel-function-list">
+    <title>Liste des fonctions GEL</title>
+
+    <!--&gel-function-list;-->
+
+    <para>Pour obtenir de l'aide sur une fonction spécifique à partir de la console, saisissez : 
<programlisting>help NomDeLaFonction
+</programlisting></para>
+
+    <sect1 id="genius-gel-function-list-commands">
+      <title>Commandes</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-command-help"/>help</term>
+         <listitem>
+          <synopsis>help</synopsis>
+          <synopsis>help NomDeLaFonction</synopsis>
+          <para>Affiche l'aide (ou l'aide d'une fonction/commande).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-load"/>load</term>
+         <listitem>
+          <synopsis>load "fichier.gel"</synopsis>
+          <para>Load a file into the interpreter.  The file will execute
+as if it were typed onto the command line.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-cd"/>cd</term>
+         <listitem>
+          <synopsis>cd /nom/de/repertoire</synopsis>
+          <para>Change le répertoire de travail en <filename>/nom/de/repertoire</filename>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-pwd"/>pwd</term>
+         <listitem>
+          <synopsis>pwd</synopsis>
+          <para>Affiche le répertoire de travail.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-ls"/>ls</term>
+         <listitem>
+          <synopsis>ls</synopsis>
+          <para>Affiche les fichiers dans le répertoire.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-plugin"/>plugin</term>
+         <listitem>
+          <synopsis>plugin nom_du_greffon</synopsis>
+          <para>Charge un greffon. Le greffon portant ce nom doit être installé sur votre système dans le 
répertoire correct.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-basic">
+      <title>Basique</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
+         <listitem>
+          <synopsis>AskButtons (requête)</synopsis>
+          <synopsis>AskButtons (requête, bouton1, ...)</synopsis>
+         <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>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AskString"/>AskString</term>
+         <listitem>
+          <synopsis>AskString (requête)</synopsis>
+          <synopsis>AskString (requête, défaut)</synopsis>
+          <para>Asks a question and lets the user enter a string, which
+it then returns.  If the user cancels or closes the window, then
+<constant>null</constant> is returned.  The execution of the program
+is blocked until the user responds.  If <varname>default</varname> is given, then it is pre-typed in for the 
user to just press enter on (version 1.0.6 onwards).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Compose"/>Compose</term>
+         <listitem>
+          <synopsis>Compose (f,g)</synopsis>
+          <para>Compose deux fonctions et renvoie une fonction qui est la composition de 
<function>f</function> par <function>g</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
+         <listitem>
+          <synopsis>ComposePower (f,n,x)</synopsis>
+          <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>
+<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
+= 5764801
+<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
+= 5764801
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
+         <listitem>
+          <synopsis>Evaluate (chaîne)</synopsis>
+          <para>Analyse et évalue une chaîne.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
+         <listitem>
+          <synopsis>GetCurrentModulo</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Identity"/>Identity</term>
+         <listitem>
+          <synopsis>Identity (x)</synopsis>
+         <para>Identity function, returns its argument.  It is equivalent to <userinput>function 
Identity(x)=x</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
+         <listitem>
+          <synopsis>IntegerFromBoolean (val_bool)</synopsis>
+         <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
+         <listitem>
+          <synopsis>IsBoolean (param)</synopsis>
+          <para>Vérifie que l'argument est un booléen (et pas un nombre).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
+         <listitem>
+          <synopsis>IsDefined (id)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
+         <listitem>
+          <synopsis>IsFunction (param)</synopsis>
+          <para>Vérifie que l'argument est une fonction.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
+         <listitem>
+          <synopsis>IsFunctionOrIdentifier (param)</synopsis>
+          <para>Vérifie que l'argument est une fonction ou un identificateur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
+         <listitem>
+          <synopsis>IsFunctionRef (param)</synopsis>
+          <para>Vérifie que l'argument est une référence de fonction. Cela inclut les références de 
variable.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
+         <listitem>
+          <synopsis>IsMatrix (param)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNull"/>IsNull</term>
+         <listitem>
+          <synopsis>IsNull (param)</synopsis>
+         <para>Vérifie que l'argument est <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsString"/>IsString</term>
+         <listitem>
+          <synopsis>IsString (param)</synopsis>
+          <para>Vérifie que l'argument est une chaîne de caractères.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValue"/>IsValue</term>
+         <listitem>
+          <synopsis>IsValue (param)</synopsis>
+          <para>Vérifie que l'argument est un nombre.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Parse"/>Parse</term>
+         <listitem>
+          <synopsis>Parse (chaîne)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
+         <listitem>
+          <synopsis>SetFunctionFlags (id,drapeau...)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
+         <listitem>
+          <synopsis>SetHelp (id,categorie,desc)</synopsis>
+          <para>Définit une catégorie et une ligne de description d'aide pour une fonction.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
+         <listitem>
+          <synopsis>SetHelpAlias (id,alias)</synopsis>
+          <para>Met en place un pseudonyme pour l'aide.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-chdir"/>chdir</term>
+         <listitem>
+          <synopsis>chdir (rep)</synopsis>
+          <para>Change le répertoire actuel, tout comme la commande <command>cd</command>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
+         <listitem>
+          <synopsis>CurrentTime</synopsis>
+          <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>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-display"/>display</term>
+         <listitem>
+          <synopsis>display (chaîne,expr)</synopsis>
+          <para>Affiche une chaîne de caractères et une expression séparées par deux points.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DisplayVariables"/>DisplayVariables</term>
+         <listitem>
+          <synopsis>DisplayVariables (var1,var2,...)</synopsis>
+         <para>Display set of variables.  The variables can be given as
+                 strings or identifiers.  For example:
+           <programlisting>DisplayVariables(`x,`y,`z)
+           </programlisting>
+         </para>
+         <para>
+                 If called without arguments (must supply empty argument list) as
+           <programlisting>DisplayVariables()
+           </programlisting>
+           then all variables are printed including a stacktrace similar to
+           <guilabel>Show user variables</guilabel> in the graphical version.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-error"/>error</term>
+         <listitem>
+          <synopsis>error (chaîne)</synopsis>
+          <para>Affiche une chaîne vers la sortie erreur (dans la console).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exit"/>exit</term>
+         <listitem>
+          <synopsis>exit</synopsis>
+          <para>Alias : <function>quit</function></para>
+          <para>Quitte le programme.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-false"/>false</term>
+         <listitem>
+          <synopsis>false</synopsis>
+          <para>Alias : <function>False</function>, <function>FALSE</function></para>
+         <para>La valeur booléenne <constant>false</constant> (faux).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-manual"/>manual</term>
+         <listitem>
+          <synopsis>manual</synopsis>
+          <para>Affiche le manuel utilisateur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-print"/>print</term>
+         <listitem>
+          <synopsis>print (chaîne)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-printn"/>printn</term>
+         <listitem>
+          <synopsis>printn (chaîne)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrintTable"/>PrintTable</term>
+         <listitem>
+          <synopsis>PrintTable (f,v)</synopsis>
+         <para>Print a table of values for a function.  The values are in the 
+                 vector <varname>v</varname>.  You can use the vector
+                 building notation as follows:
+                 <programlisting>PrintTable (f,[0:10])
+           </programlisting>
+           If <varname>v</varname> is a positive integer, then the table of
+           integers from 1 up to and including v will be used.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-protect"/>protect</term>
+         <listitem>
+          <synopsis>protect (id)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
+         <listitem>
+          <synopsis>ProtectAll ()</synopsis>
+          <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>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-set"/>set</term>
+         <listitem>
+          <synopsis>set (id,val)</synopsis>
+          <para>Set a global variable.  The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>set(`x,1)
+           </programlisting>
+           will set the global variable <varname>x</varname> to the value 1.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetElement"/>SetElement</term>
+         <listitem>
+          <synopsis>SetElement (id,row,col,val)</synopsis>
+         <para>Set an element of a global variable which is a matrix.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,3,1)
+           </programlisting>
+           will set the second row third column element of the global variable <varname>x</varname> to the 
value 1.  If no global variable of the name exists, or if it is set to something that's not a matrix, a new 
zero matrix of appropriate size will be created.
+         </para>
+         <para>The <varname>row</varname> and <varname>col</varname> can also be ranges, and the semantics 
are the same as for regular setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetVElement"/>SetVElement</term>
+         <listitem>
+          <synopsis>SetElement (id,elt,val)</synopsis>
+         <para>Set an element of a global variable which is a vector.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,1)
+           </programlisting>
+           will set the second element of the global vector variable <varname>x</varname> to the value 1.  
If no global variable of the name exists, or if it is set to something that's not a vector (matrix), a new 
zero row vector of appropriate size will be created.
+         </para>
+         <para>The <varname>elt</varname> can also be a range, and the semantics are the same as for regular 
setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-string"/>string</term>
+         <listitem>
+          <synopsis>string (s)</synopsis>
+          <para>Crée une chaîne de caractères à partir de n'importe quel argument.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-true"/>true</term>
+         <listitem>
+          <synopsis>true</synopsis>
+          <para>Alias : <function>True</function>, <function>TRUE</function></para>
+         <para>La valeur booléenne <constant>true</constant> (vrai).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-undefine"/>undefine</term>
+         <listitem>
+          <synopsis>undefine (id)</synopsis>
+          <para>Alias : <function>Undefine</function></para>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
+         <listitem>
+          <synopsis>UndefineAll ()</synopsis>
+         <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>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-unprotect"/>unprotect</term>
+         <listitem>
+          <synopsis>unprotect (id)</synopsis>
+          <para>Annule la protection d'une variable contre sa modification.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
+         <listitem>
+          <synopsis>UserVariables ()</synopsis>
+          <para>Renvoie un vecteur d'identifiants des variables globales définies par l'utilisateur (non 
protégées).</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-wait"/>wait</term>
+         <listitem>
+          <synopsis>wait (secs)</synopsis>
+          <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>
+         <para>Since version 1.0.18, <varname>secs</varname> can be a noninteger number, so
+                 <userinput>wait(0.1)</userinput> will wait for one tenth of a second.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-version"/>version</term>
+         <listitem>
+          <synopsis>version</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-warranty"/>warranty</term>
+         <listitem>
+          <synopsis>warranty</synopsis>
+          <para>Renvoie les informations sur la garantie.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+
+    </sect1>
+
+    <sect1 id="genius-gel-function-parameters">
+      <title>Paramètres</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
+         <listitem>
+          <synopsis>ChopTolerance = nombre</synopsis>
+          <para>Tolérance pour la fonction <function>Chop</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
+         <listitem>
+          <synopsis>ContinuousNumberOfTries = nombre</synopsis>
+          <para>Nombre d'itérations à essayer pour rechercher la continuité et les limites d'une 
fonction.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
+         <listitem>
+          <synopsis>ContinuousSFS = nombre</synopsis>
+          <para>Nombre d'étapes successives pour atteindre la tolérance pour le calcul de la 
continuité.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
+         <listitem>
+          <synopsis>ContinuousTolerance = nombre</synopsis>
+          <para>Tolérance pour la continuité d'une fonction et pour le calcul de la limite.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
+         <listitem>
+          <synopsis>DerivativeNumberOfTries = nombre</synopsis>
+          <para>Nombre d'itérations à essayer pour trouver la limite pour la dérivée.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
+         <listitem>
+          <synopsis>DerivativeSFS = nombre</synopsis>
+          <para>Nombre d'étapes successives pour atteindre la tolérance pour le calcul de la dérivée.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
+         <listitem>
+          <synopsis>DerivativeTolerance = nombre</synopsis>
+          <para>Tolérance pour le calcul de la dérivée des fonctions.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
+         <listitem>
+          <synopsis>ErrorFunctionTolerance = nombre</synopsis>
+         <para>Tolerance of the <link 
linkend="gel-function-ErrorFunction"><function>ErrorFunction</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
+         <listitem>
+          <synopsis>FloatPrecision = nombre</synopsis>
+          <para>Précision en virgule flottante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
+         <listitem>
+          <synopsis>FullExpressions = booléen</synopsis>
+          <para>Affiche les expressions complètes, même celles de plus d'une ligne.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
+         <listitem>
+          <synopsis>GaussDistributionTolerance = nombre</synopsis>
+         <para>Tolerance of the <link 
linkend="gel-function-GaussDistribution"><function>GaussDistribution</function></link> function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
+         <listitem>
+          <synopsis>IntegerOutputBase = nombre</synopsis>
+          <para>Base de sortie pour les entiers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
+         <listitem>
+          <synopsis>IsPrimeMillerRabinReps = nombre</synopsis>
+         <para>Number of extra Miller-Rabin tests to run on a number before declaring it a prime in <link 
linkend="gel-function-IsPrime"><function>IsPrime</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
+         <listitem>
+          <synopsis>LinePlotDrawLegends = true</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
+         <listitem>
+          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
+          <para>Tells genius to draw the axis labels for <link 
linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
+         <listitem>
+          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
+          <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>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
+         <listitem>
+          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
+         <listitem>
+          <synopsis>MaxDigits = nombre</synopsis>
+          <para>Nombre maximum de chiffres à afficher.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
+         <listitem>
+          <synopsis>MaxErrors = nombre</synopsis>
+          <para>Nombre maximum d'erreurs à afficher.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
+         <listitem>
+          <synopsis>MixedFractions = booléen</synopsis>
+          <para>Si vrai, les fractions mixtes sont affichées.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
+         <listitem>
+          <synopsis>NumericalIntegralFunction = fonction</synopsis>
+         <para>The function used for numerical integration in <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
+         <listitem>
+          <synopsis>NumericalIntegralSteps = nombre</synopsis>
+         <para>Steps to perform in <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
+         <listitem>
+          <synopsis>OutputChopExponent = nombre</synopsis>
+         <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>
+<para>La sortie n'est jamais tronquée si <function>OutputChopExponent</function> vaut zéro. Cela doit être 
un nombre entier positif.</para>
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
+         <listitem>
+          <synopsis>OutputChopWhenExponent = nombre</synopsis>
+         <para>Définit quand la sortie est tronquée. Consultez <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
+         <listitem>
+          <synopsis>OutputStyle = chaîne</synopsis>
+          <para>Style des affichages, cela peut être <literal>normal</literal>, <literal>latex</literal>, 
<literal>mathml</literal> ou <literal>troff</literal>.</para>
+         <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"
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
+         <listitem>
+          <synopsis>ResultsAsFloats = booléen</synopsis>
+          <para>Convertit tous les résultats en nombres flottants avant de les afficher.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
+         <listitem>
+          <synopsis>ScientificNotation = booléen</synopsis>
+          <para>Utilise la notation scientifique.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
+         <listitem>
+          <synopsis>SlopefieldTicks = [verticale,horizontale]</synopsis>
+          <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>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
+         <listitem>
+          <synopsis>SumProductNumberOfTries = nombre</synopsis>
+         <para>How many iterations to try for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
+         <listitem>
+          <synopsis>SumProductSFS = nombre</synopsis>
+          <para>How many successive steps to be within tolerance for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
+         <listitem>
+          <synopsis>SumProductTolerance = nombre</synopsis>
+          <para>Tolerance for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLegends = true</synopsis>
+          <para>Tells genius to draw the legends for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> such as <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
+         <listitem>
+          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
+          <para>Tells genius which variable names are used as default names for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> using <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          Note that the <varname>z</varname> does not refer to the dependent (vertical) axis, but to the 
independent complex variable
+          <userinput>z=x+iy</userinput>.
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
+         <listitem>
+          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
+          <para>Définit les limites pour les tracés de surface (consultez <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
+         <listitem>
+          <synopsis>VectorfieldNormalized = true</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
+         <listitem>
+          <synopsis>VectorfieldTicks = [verticale,horizontale]</synopsis>
+          <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>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-constants">
+      <title>Constantes</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
+         <listitem>
+          <synopsis>CatalanConstant</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Catalan%27s_constant";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/CatalansConstant.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
+         <listitem>
+          <synopsis>EulerConstant</synopsis>
+          <para>Alias : <function>gamma</function></para>
+          <para>
+           Euler's constant gamma.  Sometimes called the
+           Euler-Mascheroni constant.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler-Mascheroni_constant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MascheroniConstant";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
+         <listitem>
+          <synopsis>GoldenRatio</synopsis>
+          <para>Le nombre d'or.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Golden_ratio";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GoldenRatio";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GoldenRatio.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Gravity"/>Gravity</term>
+         <listitem>
+          <synopsis>Gravity</synopsis>
+         <para>Free fall acceleration at sea level in meters per second squared.  This is the standard 
gravity constant 9.80665.  The gravity
+                 in your particular neck of the woods might be different due to different altitude and the 
fact that the earth is not perfectly
+                 round and uniform.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Standard_gravity";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-e"/>e</term>
+         <listitem>
+          <synopsis>e</synopsis>
+          <para>
+           The base of the natural logarithm.  <userinput>e^x</userinput>
+           is the exponential function
+           <link linkend="gel-function-exp"><function>exp</function></link>.  It is approximately
+           2.71828182846...  This number is sometimes called Euler's number, although there are
+           several numbers that are also called Euler's.  An example is the gamma constant: <link 
linkend="gel-function-EulerConstant"><function>EulerConstant</function></link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/E_(mathematical_constant)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/E";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/e.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-pi"/>pi</term>
+         <listitem>
+          <synopsis>pi</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Pi";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Pi";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pi.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-numeric">
+      <title>Nombres</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
+         <listitem>
+          <synopsis>AbsoluteValue (x)</synopsis>
+          <para>Alias : <function>abs</function></para>
+          <para>
+           Absolute value of a number and if <varname>x</varname> is
+           a complex value the modulus of <varname>x</varname>.  I.e. this
+           the distance of <varname>x</varname> to the origin.  This is equivalent
+           to <userinput>|x|</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Absolute_value";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/AbsoluteValue";>Planetmath (absolute value)</ulink>,
+           <ulink url="http://planetmath.org/ModulusOfComplexNumber";>Planetmath (modulus)</ulink>,
+           <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld (absolute value)</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ComplexModulus.html";>Mathworld (complex modulus)</ulink>
+for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Chop"/>Chop</term>
+         <listitem>
+          <synopsis>Chop (x)</synopsis>
+          <para>Remplace les très petits nombres par zéro.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
+         <listitem>
+          <synopsis>ComplexConjugate (z)</synopsis>
+          <para>Alias : <function>conj</function> <function>Conj</function></para>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Complex_conjugate";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Denominator"/>Denominator</term>
+         <listitem>
+          <synopsis>Denominator (x)</synopsis>
+          <para>Renvoie le dénominateur d'un nombre rationnel.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Denominator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
+         <listitem>
+          <synopsis>FractionalPart (x)</synopsis>
+          <para>Renvoie la partie fractionnelle d'un nombre.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fractional_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Im"/>Im</term>
+         <listitem>
+          <synopsis>Im (z)</synopsis>
+          <para>Alias : <function>ImaginaryPart</function></para>
+          <para>Get the imaginary part of a complex number.  For example <userinput>Re(3+4i)</userinput> 
yields 4.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Imaginary_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
+         <listitem>
+          <synopsis>IntegerQuotient (m,n)</synopsis>
+          <para>Division sans reste.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
+         <listitem>
+          <synopsis>IsComplex (nbre)</synopsis>
+         <para>Check if argument is a complex (non-real) number.  Do note that we really mean nonreal 
number.  That is,
+         <userinput>IsComplex(3)</userinput> yields false, while
+         <userinput>IsComplex(3-1i)</userinput> yields true.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
+         <listitem>
+          <synopsis>IsComplexRational (nbre)</synopsis>
+         <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
+         <listitem>
+          <synopsis>IsFloat (nbre)</synopsis>
+          <para>Check if argument is a real floating point number (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
+         <listitem>
+          <synopsis>IsGaussInteger (nbre)</synopsis>
+          <para>Alias : <function>IsComplexInteger</function></para>
+         <para>Check if argument is a possibly complex integer.  That is a complex integer is a number of
+                 the form <userinput>n+1i*m</userinput> where <varname>n</varname> and <varname>m</varname>
+         are integers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
+         <listitem>
+          <synopsis>IsInteger (nbre)</synopsis>
+          <para>Vérifie si l'argument est un entier (non complexe).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
+         <listitem>
+          <synopsis>IsNonNegativeInteger (nbre)</synopsis>
+          <para>Check if argument is a non-negative real integer.  That is, either a positive integer or 
zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
+         <listitem>
+          <synopsis>IsPositiveInteger (nbre)</synopsis>
+          <para>Alias : <function>IsNaturalNumber</function></para>
+          <para>Vérifie si l'argument est un entier réel positif. Notez que par convention 0 n'est pas un 
nombre naturel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsRational"/>IsRational</term>
+         <listitem>
+          <synopsis>IsRational (nbre)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsReal"/>IsReal</term>
+         <listitem>
+          <synopsis>IsReal (nbre)</synopsis>
+          <para>Vérifie si l'argument est un nombre réel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Numerator"/>Numerator</term>
+         <listitem>
+          <synopsis>Numerator (x)</synopsis>
+          <para>Renvoie le numérateur d'un nombre rationnel.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Numerator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Re"/>Re</term>
+         <listitem>
+          <synopsis>Re (z)</synopsis>
+          <para>Alias : <function>RealPart</function></para>
+         <para>Get the real part of a complex number.  For example <userinput>Re(3+4i)</userinput> yields 
3.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Real_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Sign"/>Sign</term>
+         <listitem>
+          <synopsis>Sign (x)</synopsis>
+          <para>Alias : <function>sign</function></para>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ceil"/>ceil</term>
+         <listitem>
+          <synopsis>ceil (x)</synopsis>
+          <para>Alias : <function>Ceiling</function></para>
+         <para>Get the lowest integer more than or equal to <varname>n</varname>. Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
+= 2
+<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
+= -1
+</screen>
+           </para>
+          <para>Note that you should be careful and notice that floating point
+                  numbers are stored in binary and so may not be what you
+                  expect.  For example <userinput>ceil(420/4.2)</userinput>
+                  returns 101 instead of the expected 100.  This is because
+                  4.2 is actually very slightly less than 4.2.  Use rational
+                  representation <userinput>42/10</userinput> if you want
+                  exact arithmetic.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exp"/>exp</term>
+         <listitem>
+          <synopsis>exp (x)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Exponential_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ExponentialFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-float"/>float</term>
+         <listitem>
+          <synopsis>float (x)</synopsis>
+          <para>Transforme le nombre en nombre à virgule flottante. C'est-à-dire la représentation à virgule 
flottante du nombre <varname>x</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-floor"/>floor</term>
+         <listitem>
+          <synopsis>floor (x)</synopsis>
+          <para>Alias : <function>Floor</function></para>
+          <para>Renvoie le plus grand entier inférieur ou égal à <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ln"/>ln</term>
+         <listitem>
+          <synopsis>ln (x)</synopsis>
+          <para>Le logarithme naturel, le logarithme de base <varname>e</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Natural_logarithm";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NaturalLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log"/>log</term>
+         <listitem>
+          <synopsis>log (x)</synopsis>
+          <synopsis>log (x,b)</synopsis>
+         <para>Logarithm of <varname>x</varname> base <varname>b</varname> (calls <link 
linkend="gel-function-DiscreteLog"><function>DiscreteLog</function></link> if in modulo mode), if base is not 
given, <link linkend="gel-function-e"><varname>e</varname></link> is used.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log10"/>log10</term>
+         <listitem>
+          <synopsis>log10 (x)</synopsis>
+          <para>Logarithme base 10 de <varname>x</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log2"/>log2</term>
+         <listitem>
+          <synopsis>log2 (x)</synopsis>
+          <para>Alias : <function>lg</function></para>
+          <para>Logarithme base 2 de <varname>x</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-max"/>max</term>
+         <listitem>
+          <synopsis>max (a,params...)</synopsis>
+          <para>Alias : <function>Max</function> <function>Maximum</function></para>
+          <para>Renvoie le maximum des arguments ou de la matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-min"/>min</term>
+         <listitem>
+          <synopsis>min (a,params...)</synopsis>
+          <para>Alias : <function>Min</function> <function>Minimum</function></para>
+          <para>Renvoie le minimum des arguments ou de la matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rand"/>rand</term>
+         <listitem>
+          <synopsis>rand (taille...)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-randint"/>randint</term>
+         <listitem>
+          <synopsis>randint (max,taille...)</synopsis>
+          <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>
+= 3
+<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
+=
+[0      1]
+<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
+=
+[2      2       1
+ 0      0       3]
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-round"/>round</term>
+         <listitem>
+          <synopsis>round (x)</synopsis>
+          <para>Alias : <function>Round</function></para>
+          <para>Arrondit un nombre.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sqrt"/>sqrt</term>
+         <listitem>
+          <synopsis>sqrt (x)</synopsis>
+          <para>Alias : <function>SquareRoot</function></para>
+          <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>
+= 1.41421356237
+<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
+= 1i
+<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
+=
+[2      5]
+<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
+= 4
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Square_root";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/SquareRoot";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-trunc"/>trunc</term>
+         <listitem>
+          <synopsis>trunc (x)</synopsis>
+          <para>Alias : <function>Truncate</function><function>IntegerPart</function></para>
+          <para>Tronque le nombre à un entier (renvoie la partie entière).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-trigonometry">
+      <title>Trigonométrie</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-acos"/>acos</term>
+         <listitem>
+          <synopsis>acos (x)</synopsis>
+          <para>Alias : <function>arccos</function></para>
+          <para>Fonction arccos (arc cosinus).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acosh"/>acosh</term>
+         <listitem>
+          <synopsis>acosh (x)</synopsis>
+          <para>Alias : <function>arccosh</function></para>
+          <para>Fonction arccosh (cosinus hyperbolique inverse).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acot"/>acot</term>
+         <listitem>
+          <synopsis>acot (x)</synopsis>
+          <para>Alias : <function>arccot</function></para>
+          <para>Fonction arccot (cotangente inverse).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acoth"/>acoth</term>
+         <listitem>
+          <synopsis>acoth (x)</synopsis>
+          <para>Alias : <function>arccoth</function></para>
+          <para>Fonction arccoth (cotangente hyperbolique inverse).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsc"/>acsc</term>
+         <listitem>
+          <synopsis>acsc (x)</synopsis>
+          <para>Alias : <function>arccsc</function></para>
+          <para>Inverse de la fonction cosécante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsch"/>acsch</term>
+         <listitem>
+          <synopsis>acsch (x)</synopsis>
+          <para>Alias : <function>arccsch</function></para>
+          <para>Inverse de la fonction cosécante hyperbolique.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asec"/>asec</term>
+         <listitem>
+          <synopsis>asec (x)</synopsis>
+          <para>Alias : <function>arcsec</function></para>
+          <para>Inverse de la fonction sécante.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asech"/>asech</term>
+         <listitem>
+          <synopsis>asech (x)</synopsis>
+          <para>Alias : <function>arcsech</function></para>
+          <para>Inverse de la fontion sécante hyperbolique.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asin"/>asin</term>
+         <listitem>
+          <synopsis>asin (x)</synopsis>
+          <para>Alias : <function>arcsin</function></para>
+          <para>La fonction arcsin (sinus inverse).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asinh"/>asinh</term>
+         <listitem>
+          <synopsis>asinh (x)</synopsis>
+          <para>Alias : <function>arcsinh</function></para>
+          <para>Fonction arcsinh (sinus hyperbolique inverse).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan"/>atan</term>
+         <listitem>
+          <synopsis>atan (x)</synopsis>
+          <para>Alias : <function>arctan</function></para>
+          <para>Calcule la fonction arctangente (tangente inverse).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Arctangent";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atanh"/>atanh</term>
+         <listitem>
+          <synopsis>atanh (x)</synopsis>
+          <para>Alias : <function>arctanh</function></para>
+          <para>Fonction arctanh (tangente hyperbolique inverse).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan2"/>atan2</term>
+         <listitem>
+          <synopsis>atan2 (y, x)</synopsis>
+          <para>Alias : <function>arctan2</function></para>
+          <para>Calculates the arctan2 function.  If
+         <userinput>x&gt;0</userinput> then it returns
+         <userinput>atan(y/x)</userinput>.  If <userinput>x&lt;0</userinput>
+         then it returns <userinput>sign(y) * (pi - atan(|y/x|)</userinput>.
+         When <userinput>x=0</userinput> it returns <userinput>sign(y) *
+         pi/2</userinput>.  <userinput>atan2(0,0)</userinput> returns 0
+         rather than failing.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Atan2";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cos"/>cos</term>
+         <listitem>
+          <synopsis>cos (x)</synopsis>
+          <para>Calcule la fonction cosinus.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cosh"/>cosh</term>
+         <listitem>
+          <synopsis>cosh (x)</synopsis>
+          <para>Calcule la fonction cosinus hyperbolique.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cot"/>cot</term>
+         <listitem>
+          <synopsis>cot (x)</synopsis>
+          <para>Fonction cotangente.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-coth"/>coth</term>
+         <listitem>
+          <synopsis>coth (x)</synopsis>
+          <para>Fonction cotangente hyperbolique.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csc"/>csc</term>
+         <listitem>
+          <synopsis>csc (x)</synopsis>
+          <para>Fonction cosécante.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csch"/>csch</term>
+         <listitem>
+          <synopsis>csch (x)</synopsis>
+          <para>Fonction cosécante hyperbolique.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sec"/>sec</term>
+         <listitem>
+          <synopsis>sec (x)</synopsis>
+          <para>Fonction sécante.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sech"/>sech</term>
+         <listitem>
+          <synopsis>sech (x)</synopsis>
+          <para>Fonction sécante hyperbolique.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sin"/>sin</term>
+         <listitem>
+          <synopsis>sin (x)</synopsis>
+          <para>Calcule la fonction sinus.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinh"/>sinh</term>
+         <listitem>
+          <synopsis>sinh (x)</synopsis>
+          <para>Calcule la fonction sinus hyperbolique.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tan"/>tan</term>
+         <listitem>
+          <synopsis>tan (x)</synopsis>
+          <para>Calcule la fonction tangente.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tanh"/>tanh</term>
+         <listitem>
+          <synopsis>tanh (x)</synopsis>
+          <para>Fonction tangente hyperbolique.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-number-theory">
+      <title>Théorie des nombres</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
+         <listitem>
+          <synopsis>AreRelativelyPrime (a,b)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coprime_integers";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RelativelyPrime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/RelativelyPrime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
+         <listitem>
+          <synopsis>BernoulliNumber (n)</synopsis>
+          <para>Renvoie le <varname>n</varname>-ième nombre de Bernoulli.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bernoulli_number";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/BernoulliNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
+         <listitem>
+          <synopsis>ChineseRemainder (a,m)</synopsis>
+          <para>Alias : <function>CRT</function></para>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Chinese_remainder_theorem";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ChineseRemainderTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
+         <listitem>
+          <synopsis>CombineFactorizations (a,b)</synopsis>
+         <para>Étant donné deux factorisations, donne la factorisation du produit.</para>
+         <para>Consultez <link linkend="gel-function-Factorize">Factorize</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
+         <listitem>
+          <synopsis>ConvertFromBase (v,b)</synopsis>
+          <para>Convertit un vecteur de valeurs indiquant les puissances de b en un nombre.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
+         <listitem>
+          <synopsis>ConvertToBase (n,b)</synopsis>
+          <para>Convertit un nombre en un vecteur contenant les puissances des éléments dans la base 
<varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
+         <listitem>
+          <synopsis>DiscreteLog (n,b,q)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Discrete_logarithm";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/DiscreteLogarithm";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/DiscreteLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Divides"/>Divides</term>
+         <listitem>
+          <synopsis>Divides (m,n)</synopsis>
+          <para>Vérifie la divisibilité (si <varname>m</varname> divise <varname>n</varname>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
+         <listitem>
+          <synopsis>EulerPhi (n)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler_phi";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/EulerPhifunction";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/TotientFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
+         <listitem>
+          <synopsis>ExactDivision (n,d)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorize"/>Factorize</term>
+         <listitem>
+          <synopsis>Factorize (n)</synopsis>
+          <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>
+=
+[1      11      13
+ 1      2       1]</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Factorization";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factors"/>Factors</term>
+         <listitem>
+          <synopsis>Factors (n)</synopsis>
+          <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 (
+    if MatrixSum (Factors(n)) == 2*n then
+        print(n)
+)
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
+         <listitem>
+          <synopsis>FermatFactorization (n,tentatives)</synopsis>
+          <para>
+           Attempt Fermat factorization of <varname>n</varname> into
+           <userinput>(t-s)*(t+s)</userinput>, returns <varname>t</varname>
+           and <varname>s</varname> as a vector if possible, <constant>null</constant> otherwise.
+           <varname>tries</varname> specifies the number of tries before
+           giving up.
+         </para>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fermat_factorization";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindPrimitiveElementMod (q)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
+         <listitem>
+          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
+          <para>Compute discrete log base <varname>b</varname> of n in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname> (<varname>q</varname> a prime), using the
+factor base <varname>S</varname>.  <varname>S</varname> should be a column of
+primes possibly with second column precalculated by
+<link 
linkend="gel-function-IndexCalculusPrecalculation"><function>IndexCalculusPrecalculation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
+         <listitem>
+          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
+         <para>Run the precalculation step of
+                 <link linkend="gel-function-IndexCalculus"><function>IndexCalculus</function></link> for 
logarithms base <varname>b</varname> in
+F<subscript>q</subscript>, the finite group of order <varname>q</varname>
+(<varname>q</varname> a prime), for the factor base <varname>S</varname> (where
+<varname>S</varname> is a column vector of primes).  The logs will be
+precalculated and returned in the second column.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsEven"/>IsEven</term>
+         <listitem>
+          <synopsis>IsEven (n)</synopsis>
+          <para>Teste si un entier est pair.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
+         <listitem>
+          <synopsis>IsMersennePrimeExponent (p)</synopsis>
+          <para>
+           Tests if a positive integer <varname>p</varname> is a
+           Mersenne prime exponent.  That is if 
+            2<superscript>p</superscript>-1 is a prime.  It does this
+           by looking it up in a table of known values, which is relatively
+           short.
+           See also
+           <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link>
+           and
+           <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
+         <listitem>
+          <synopsis>IsNthPower (m,n)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
+         <listitem>
+          <synopsis>IsOdd (n)</synopsis>
+          <para>Teste si un entier est impair.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
+         <listitem>
+          <synopsis>IsPerfectPower (n)</synopsis>
+          <para>Check an integer for being any perfect power, a<superscript>b</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
+         <listitem>
+          <synopsis>IsPerfectSquare (n)</synopsis>
+          <para>
+           Check an integer for being a perfect square of an integer.  The number must
+           be an integer.  Negative integers are of course never perfect
+           squares of integers.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
+         <listitem>
+          <synopsis>IsPrime (n)</synopsis>
+          <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>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
+         <listitem>
+          <synopsis>IsPrimitiveMod (g,q)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
+         <listitem>
+          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
+         <listitem>
+          <synopsis>IsPseudoprime (n,b)</synopsis>
+          <para>If <varname>n</varname> is a pseudoprime base <varname>b</varname> but not a prime,
+                 that is if <userinput>b^(n-1) == 1 mod n</userinput>.  This calls the <link 
linkend="gel-function-PseudoprimeTest"><function>PseudoprimeTest</function></link></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
+         <listitem>
+          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
+          <para>Teste si <varname>n</varname> est un nombre pseudopremier fort en base <varname>b</varname> 
mais pas un nombre premier.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
+         <listitem>
+          <synopsis>Jacobi (a,b)</synopsis>
+          <para>Alias : <function>JacobiSymbol</function></para>
+          <para>Calcule le symbole de Jacobi (a/b) (b doit être impair).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
+         <listitem>
+          <synopsis>JacobiKronecker (a,b)</synopsis>
+          <para>Alias : <function>JacobiKroneckerSymbol</function></para>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
+         <listitem>
+          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Legendre"/>Legendre</term>
+         <listitem>
+          <synopsis>Legendre (a,p)</synopsis>
+          <para>Alias : <function>LegendreSymbol</function></para>
+          <para>Calcule le symbole de Legendre (a/p).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/LegendreSymbol";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LegendreSymbol.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
+         <listitem>
+          <synopsis>LucasLehmer (p)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasLhemer";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Lucas-LehmerTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
+         <listitem>
+          <synopsis>LucasNumber (n)</synopsis>
+          <para>Renvoie le <varname>n</varname>-ième nombre de Lucas.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas_number";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasNumbers";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LucasNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
+         <listitem>
+          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
+          <para>Renvoie les puissances premières d'un nombre.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
+         <listitem>
+          <synopsis>MersennePrimeExponents</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
+         <listitem>
+          <synopsis>MillerRabinTest (n,reps)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink> 
or
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
+         <listitem>
+          <synopsis>MillerRabinTestSure (n)</synopsis>
+          <para>
+           Use the Miller-Rabin primality test on <varname>n</varname> with
+           enough bases that assuming the Generalized Riemann Hypothesis the
+           result is deterministic.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink>, or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
+         <listitem>
+          <synopsis>ModInvert (n,m)</synopsis>
+          <para>Renvoie l'inverse de n mod m.</para>
+          <para>Consultez <ulink url="http://mathworld.wolfram.com/ModularInverse.html";>Mathworld</ulink> 
pour plus d'informations.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
+         <listitem>
+          <synopsis>MoebiusMu (n)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/MoebiusFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/MoebiusFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
+         <listitem>
+          <synopsis>NextPrime (n)</synopsis>
+          <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>
+          <para>
+           This function uses the GMPs <function>mpz_nextprime</function>,
+           which in turn uses the probabilistic Miller-Rabin test
+           (See also <link 
linkend="gel-function-MillerRabinTest"><function>MillerRabinTest</function></link>).
+           The probability
+           of false positive is not tunable, but is low enough
+           for all practical purposes.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
+         <listitem>
+          <synopsis>PadicValuation (n,p)</synopsis>
+          <para>Renvoie la valuation p-adic (nombre de zéros après la virgule en base 
<varname>p</varname>).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/P-adic_order";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/PAdicValuation";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
+         <listitem>
+          <synopsis>PowerMod (a,b,m)</synopsis>
+          <para>
+           Compute <userinput>a^b mod m</userinput>.  The
+           <varname>b</varname>'s power of <varname>a</varname> modulo
+           <varname>m</varname>.  It is not necessary to use this function
+           as it is automatically used in modulo mode.  Hence
+           <userinput>a^b mod m</userinput> is just as fast.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Prime"/>Prime</term>
+         <listitem>
+          <synopsis>Prime (n)</synopsis>
+          <para>Alias : <function>prime</function></para>
+          <para>Renvoie le <varname>n</varname>-ième nombre premier (jusqu'à une limite) .</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
+         <listitem>
+          <synopsis>PrimeFactors (n)</synopsis>
+          <para>Renvoie tous les facteurs premiers d'un nombre sous la forme d'un vecteur.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Prime_factor";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeFactor.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
+         <listitem>
+          <synopsis>PseudoprimeTest (n,b)</synopsis>
+         <para>Test de pseudoprimalité, renvoie <constant>true</constant> (vrai) si et seulement si 
<userinput>b^(n-1) == 1  mod n</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Pseudoprime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pseudoprime.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
+         <listitem>
+          <synopsis>RemoveFactor (n,m)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Divisibility";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Factor.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
+         <listitem>
+          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
+         <listitem>
+          <synopsis>SqrtModPrime (n,p)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticResidue";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QuadraticResidue.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
+         <listitem>
+          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
+          <para>Lance le test de pseudo-primarité forte en base <varname>b</varname> sur 
<varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Strong_pseudoprime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/StrongPseudoprime";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/StrongPseudoprime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-gcd"/>gcd</term>
+         <listitem>
+          <synopsis>gcd (a,params...)</synopsis>
+          <para>Alias : <function>GCD</function></para>
+          <para>
+           Greatest common divisor of integers.  You can enter as many
+           integers as you want in the argument list, or you can give
+           a vector or a matrix of integers.  If you give more than
+           one matrix of the same size then GCD is done element by
+           element.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greatest_common_divisor";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/GreatestCommonDivisor";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/GreatestCommonDivisor.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-lcm"/>lcm</term>
+         <listitem>
+          <synopsis>lcm (a,params...)</synopsis>
+          <para>Alias : <function>LCM</function></para>
+          <para>
+           Least common multiplier of integers.  You can enter as many
+           integers as you want in the argument list, or you can give a 
+           vector or a matrix of integers.  If you give more than one
+           matrix of the same size then LCM is done element by element.    
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Least_common_multiple";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LeastCommonMultiple";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LeastCommonMultiple.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-matrix">
+      <title>Manipulation de matrices</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix (a,fonc)</synopsis>
+          <para>Applique une fonction sur tous les éléments d'une matrice et renvoie une matrice de 
résultats.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix2 (a,b,fonc)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
+         <listitem>
+          <synopsis>ColumnsOf (M)</synopsis>
+          <para>Extrait les colonnes de la matrice comme un vecteur horizontal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
+         <listitem>
+          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
+          <para>Supprime certaines lignes et colonnes d'une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
+         <listitem>
+          <synopsis>CompoundMatrix (k,A)</synopsis>
+          <para>Calcule la k-ième matrice composée de A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
+         <listitem>
+          <synopsis>CountZeroColumns (M)</synopsis>
+          <para>
+          Count the number of zero columns in a matrix.  For example,
+          once you column-reduce a matrix, you can use this to find
+          the nullity.  See <link linkend="gel-function-cref"><function>cref</function></link>
+          and <link linkend="gel-function-Nullity"><function>Nullity</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
+         <listitem>
+          <synopsis>DeleteColumn (M,col)</synopsis>
+          <para>Supprime une colonne d'une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
+         <listitem>
+          <synopsis>DeleteRow (M,row)</synopsis>
+          <para>Supprime une ligne d'une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
+         <listitem>
+          <synopsis>DiagonalOf (M)</synopsis>
+          <para>Extrait la diagonale de la matrice comme un vecteur colonne.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_of_a_matrix#Matrices";>Wikipedia</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
+         <listitem>
+          <synopsis>DotProduct (u,v)</synopsis>
+         <para>Get the dot product of two vectors.  The vectors must be of the
+                 same size.  No conjugates are taken so this is a bilinear form even if working over the 
complex numbers; This is the bilinear scalar product not the sesquilinear scalar product.  See <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link> for the standard sesquilinear inner 
product.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Dot_product";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DotProduct";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
+         <listitem>
+          <synopsis>ExpandMatrix (M)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
+         <listitem>
+          <synopsis>HermitianProduct (u,v)</synopsis>
+          <para>Alias : <function>InnerProduct</function></para>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sesquilinear_form";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/HermitianInnerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-I"/>I</term>
+         <listitem>
+          <synopsis>I (n)</synopsis>
+          <para>Alias : <function>eye</function></para>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Identity_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/IdentityMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
+         <listitem>
+          <synopsis>IndexComplement (vec,mtaille)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
+         <listitem>
+          <synopsis>IsDiagonal (M)</synopsis>
+          <para>Indique si la matrice est diagonale.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
+         <listitem>
+          <synopsis>IsIdentity (x)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
+         <listitem>
+          <synopsis>IsLowerTriangular (M)</synopsis>
+          <para>Indique si une matrice est triangulaire inférieure, c'est-à-dire que toutes les valeurs au 
dessus de la diagonale sont nulles.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
+         <listitem>
+          <synopsis>IsMatrixInteger (M)</synopsis>
+          <para>Check if a matrix is a matrix of integers (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
+         <listitem>
+          <synopsis>IsMatrixNonnegative (M)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
+         <listitem>
+          <synopsis>IsMatrixPositive (M)</synopsis>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
+         <listitem>
+          <synopsis>IsMatrixRational (M)</synopsis>
+          <para>Vérifie si une matrice est constituée de nombres rationnels (non complexes).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
+         <listitem>
+          <synopsis>IsMatrixReal (M)</synopsis>
+          <para>Vérifie si une matrice est constituée de nombres réels (non complexes).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
+         <listitem>
+          <synopsis>IsMatrixSquare (M)</synopsis>
+          <para>Vérifie si une matrice est carrée, c'est-à-dire que sa largeur est égale à sa hauteur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
+         <listitem>
+          <synopsis>IsUpperTriangular (M)</synopsis>
+          <para>Is a matrix upper triangular?  That is, a matrix is upper triangular if all the entries 
below the diagonal are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
+         <listitem>
+          <synopsis>IsValueOnly (M)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsVector"/>IsVector</term>
+         <listitem>
+          <synopsis>IsVector (v)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsZero"/>IsZero</term>
+         <listitem>
+          <synopsis>IsZero (x)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
+         <listitem>
+          <synopsis>LowerTriangular (M)</synopsis>
+          <para>Renvoie une copie de la matrice <varname>M</varname> avec tous les éléments au dessus de la 
diagonale mis à zéro.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
+         <listitem>
+          <synopsis>MakeDiagonal (v,param...)</synopsis>
+          <para>Alias : <function>diag</function></para>
+         <para>Make diagonal matrix from a vector.  Alternatively you can pass
+                 in the values to put on the diagonal as arguments.  So
+                 <userinput>MakeDiagonal([1,2,3])</userinput> is the same as
+                 <userinput>MakeDiagonal(1,2,3)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
+         <listitem>
+          <synopsis>MakeVector (A)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
+         <listitem>
+          <synopsis>MatrixProduct (A)</synopsis>
+          <para>Calcule et renvoie le produit de tous les éléments d'une matrice ou d'un vecteur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
+         <listitem>
+          <synopsis>MatrixSum (A)</synopsis>
+          <para>Calcule et renvoie la somme de tous les éléments d'une matrice ou d'un vecteur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
+         <listitem>
+          <synopsis>MatrixSumSquares (A)</synopsis>
+          <para>Calcule la somme du carré de tous les éléments d'une matrice ou d'un vecteur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroColumns"/>NonzeroColumns</term>
+         <listitem>
+          <synopsis>NonzeroColumns (M)</synopsis>
+          <para>Returns a row vector of the indices of nonzero columns in the matrix 
<varname>M</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroElements"/>NonzeroElements</term>
+         <listitem>
+          <synopsis>NonzeroElements (v)</synopsis>
+          <para>Returns a row vector of the indices of nonzero elements in the vector 
<varname>v</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
+         <listitem>
+          <synopsis>OuterProduct (u,v)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
+         <listitem>
+          <synopsis>ReverseVector (v)</synopsis>
+         <para>Inverse l'ordre des éléments d'un vecteur. Renvoie <constant>null</constant> si 
<constant>null</constant> est fourni</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSum"/>RowSum</term>
+         <listitem>
+          <synopsis>RowSum (m)</synopsis>
+          <para>Calcule la somme pour chaque ligne d'une matrice et renvoie un vecteur colonne contenant le 
résultat.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
+         <listitem>
+          <synopsis>RowSumSquares (m)</synopsis>
+          <para>Calculate sum of squares of each row in a matrix and return a vertical vector with the 
results.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
+         <listitem>
+          <synopsis>RowsOf (M)</synopsis>
+         <para>Gets the rows of a matrix as a vertical vector.  Each element
+of the vector is a horizontal vector that is the corresponding row of
+<varname>M</varname>.  This function is useful if you wish to loop over the
+rows of a matrix.  For example, as <userinput>for r in RowsOf(M) do
+something(r)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
+         <listitem>
+          <synopsis>SetMatrixSize (M,lignes,colonnes)</synopsis>
+          <para>Make new matrix of given size from old one.  That is, a new
+         matrix will be returned to which the old one is copied.  Entries that
+         don't fit are clipped and extra space is filled with zeros.
+         If <varname>rows</varname> or <varname>columns</varname> are zero
+         then <constant>null</constant> is returned.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
+         <listitem>
+          <synopsis>ShuffleVector (v)</synopsis>
+         <para>Shuffle elements in a vector.  Return <constant>null</constant> if given 
<constant>null</constant>.</para>
+         <para>Version 1.0.13 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SortVector"/>SortVector</term>
+         <listitem>
+          <synopsis>SortVector (v)</synopsis>
+          <para>Trie les éléments d'un vecteur en ordre croissant.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
+         <listitem>
+          <synopsis>StripZeroColumns (M)</synopsis>
+          <para>Élimine toutes les colonnes entièrement nulles de <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
+         <listitem>
+          <synopsis>StripZeroRows (M)</synopsis>
+          <para>Élimine toutes les lignes entièrement nulles de <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
+         <listitem>
+          <synopsis>Submatrix (m,r,c)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
+         <listitem>
+          <synopsis>SwapRows (m,ligne1,ligne2)</synopsis>
+          <para>Échange deux lignes dans une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
+         <listitem>
+          <synopsis>UpperTriangular (M)</synopsis>
+          <para>Renvoie une copie de la matrice <varname>M</varname> avec tous les éléments sous la 
diagonale mis à zéro.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-columns"/>columns</term>
+         <listitem>
+          <synopsis>columns (M)</synopsis>
+          <para>Renvoie le nombre de colonnes d'une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-elements"/>elements</term>
+         <listitem>
+          <synopsis>elements (M)</synopsis>
+          <para>Renvoie le nombre total d'éléments d'une matrice. C'est le nombre de colonnes multiplié par 
le nombre de lignes.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ones"/>ones</term>
+         <listitem>
+          <synopsis>ones (lignes,colonnes...)</synopsis>
+         <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rows"/>rows</term>
+         <listitem>
+          <synopsis>rows (M)</synopsis>
+          <para>Renvoie le nombre de lignes d'une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-zeros"/>zeros</term>
+         <listitem>
+          <synopsis>zeros (lignes,colonnes...)</synopsis>
+         <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>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-linear-algebra">
+      <title>Algèbre linéaire</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
+         <listitem>
+          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
+          <para>Get the auxiliary unit matrix of size <varname>n</varname>.  This is a square matrix with 
that is all zero except the
+superdiagonal being all ones.  It is the Jordan block matrix of one zero eigenvalue.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information 
on Jordan Canonical Form.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
+         <listitem>
+          <synopsis>BilinearForm (v,A,w)</synopsis>
+          <para>Évalue (v,w) par rapport à la forme bilinéaire donnée par la matrice A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
+         <listitem>
+          <synopsis>BilinearFormFunction (A)</synopsis>
+          <para>Renvoie une fonction qui évalue deux vecteurs par rapport à la forme bilinéaire donnée par 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomial (M)</synopsis>
+          <para>Alias : <function>CharPoly</function></para>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
+         <listitem>
+          <synopsis>ColumnSpace (M)</synopsis>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
+         <listitem>
+          <synopsis>CommutationMatrix (m, n)</synopsis>
+         <para>Return the commutation matrix <userinput>K(m,n)</userinput>, which is the unique 
<userinput>m*n</userinput> by
+                 <userinput>m*n</userinput> matrix such that <userinput>K(m,n) * MakeVector(A) = 
MakeVector(A.')</userinput> for all <varname>m</varname> by <varname>n</varname>
+                 matrices <varname>A</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
+         <listitem>
+          <synopsis>CompanionMatrix (p)</synopsis>
+          <para>Matrice compagnon d'un polynôme (comme vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
+         <listitem>
+          <synopsis>ConjugateTranspose (M)</synopsis>
+          <para>Transposée conjuguée d'une matrice (matrice adjointe). Identique à l'opérateur 
<userinput>'</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Conjugate_transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ConjugateTranspose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Convolution"/>Convolution</term>
+         <listitem>
+          <synopsis>Convolution (a,b)</synopsis>
+          <para>Alias : <function>convol</function></para>
+          <para>Calcule la convolution de deux vecteurs horizontaux.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
+         <listitem>
+          <synopsis>ConvolutionVector (a,b)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
+         <listitem>
+          <synopsis>CrossProduct (v,w)</synopsis>
+         <para>Produit vectoriel de deux vecteurs dans R<superscript>3</superscript> sous la forme d'un 
vecteur colonne.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Cross_product";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
+         <listitem>
+          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
+          <para>Get the determinantal divisors of an integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
+         <listitem>
+          <synopsis>DirectSum (M,N...)</synopsis>
+          <para>Somme directe de matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
+         <listitem>
+          <synopsis>DirectSumMatrixVector (v)</synopsis>
+          <para>Somme directe d'un vecteur de matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
+         <listitem>
+          <synopsis>Eigenvalues (M)</synopsis>
+          <para>Alias : <function>eig</function></para>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvalue";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvalue";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvalue.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
+         <listitem>
+          <synopsis>Eigenvectors (M)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;valeurspropres)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;valeurpropres, &amp;multiplicités)</synopsis>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvector";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvector";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvector.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
+         <listitem>
+          <synopsis>GramSchmidt (v,B...)</synopsis>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GramSchmidtOrthogonalization";>Planetmath</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
+         <listitem>
+          <synopsis>HankelMatrix (c,r)</synopsis>
+         <para>Hankel matrix, a matrix whose skew-diagonals are constant.  <varname>c</varname> is the first 
row and <varname>r</varname> is the
+                 last column.  It is assumed that both arguments are vectors and the last element of 
<varname>c</varname> is the same
+                 as the first element of <varname>r</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hankel_matrix";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
+         <listitem>
+          <synopsis>HilbertMatrix (n)</synopsis>
+          <para>Matrice de Hilbert d'ordre <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Image"/>Image</term>
+         <listitem>
+          <synopsis>Image (T)</synopsis>
+          <para>Renvoie l'image (espace vectoriel engendré par les colonnes) d'une transformation 
linéaire.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
+         <listitem>
+          <synopsis>InfNorm (v)</synopsis>
+          <para>Renvoie la norme « infini », appelée aussi norme sup, ou encore norme de la convergence 
uniforme.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
+         <listitem>
+          <synopsis>InvariantFactorsInteger (M)</synopsis>
+          <para>Get the invariant factors of a square integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
+         <listitem>
+          <synopsis>InverseHilbertMatrix (n)</synopsis>
+          <para>Matrice inverse de Hilbert d'ordre <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
+         <listitem>
+          <synopsis>IsHermitian (M)</synopsis>
+          <para>Indique si une matrice est hermitienne. C'est-à-dire si elle est égale à sa transposée 
conjuguée.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hermitian_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HermitianMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
+         <listitem>
+          <synopsis>IsInSubspace (v,W)</synopsis>
+          <para>Teste si un vecteur appartient à un sous-espace.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
+         <listitem>
+          <synopsis>IsInvertible (n)</synopsis>
+          <para>Is a matrix (or number) invertible (Integer matrix is invertible if and only if it is 
invertible over the integers).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
+         <listitem>
+          <synopsis>IsInvertibleField (n)</synopsis>
+          <para>Indique si une matrice (ou un nombre) est inversible sur un corps.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
+         <listitem>
+          <synopsis>IsNormal (M)</synopsis>
+          <para>Indique si <varname>M</varname> est une matrice normale, c'est-à-dire <userinput>M*M' == 
M'*M</userinput>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/NormalMatrix";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
+         <listitem>
+          <synopsis>IsPositiveDefinite (M)</synopsis>
+          <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>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive-definite_matrix";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/PositiveDefinite";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
+         <listitem>
+          <synopsis>IsPositiveSemidefinite (M)</synopsis>
+          <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>
+         <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PositiveSemidefinite";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html";>Mathworld</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
+         <listitem>
+          <synopsis>IsSkewHermitian (M)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SkewHermitianMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
+         <listitem>
+          <synopsis>IsUnitary (M)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/UnitaryTransformation";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/UnitaryMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
+         <listitem>
+          <synopsis>JordanBlock (n,lambda)</synopsis>
+          <para>Alias : <function>J</function></para>
+          <para>Renvoie le bloc de Jordan correspondant à la valeur propre <varname>lambda</varname> de 
multiplicité <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Kernel"/>Kernel</term>
+         <listitem>
+          <synopsis>Kernel (T)</synopsis>
+          <para>Renvoie le noyau d'une transformation linéaire.</para>
+         <para>(consultez <link linkend="gel-function-NullSpace">NullSpace</link>)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerProduct"/>KroneckerProduct</term>
+         <listitem>
+          <synopsis>KroneckerProduct (M, N)</synopsis>
+          <para>Aliases: <function>TensorProduct</function></para>
+         <para>
+                 Compute the Kronecker product (tensor product in standard basis)
+                 of two matrices.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Kronecker_product";>Wikipedia</ulink>, 
+           <ulink url="http://planetmath.org/KroneckerProduct";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/KroneckerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
+         <listitem>
+          <synopsis>LUDecomposition (A, L, U)</synopsis>
+          <para>
+                 Get the LU decomposition of <varname>A</varname>, that is
+                 find a lower triangular matrix and upper triangular
+                 matrix whose product is <varname>A</varname>.
+           Store the result in the <varname>L</varname> and
+           <varname>U</varname>, which should be references.  It returns <constant>true</constant>
+           if successful.
+           For example suppose that A is a square matrix, then after running:
+           <screen><prompt>genius&gt;</prompt> <userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
+</screen>
+           You will have the lower matrix stored in a variable called
+           <varname>L</varname> and the upper matrix in a variable called
+           <varname>U</varname>.
+         </para>
+         <para>
+           This is the LU decomposition of a matrix aka Crout and/or Cholesky
+           reduction.
+           (ISBN 0-201-11577-8 pp.99-103)
+           The upper triangular matrix features a diagonal
+           of values 1 (one).  This is not Doolittle's Method, which features
+           the 1's diagonal on the lower matrix. 
+         </para>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/LU_decomposition";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LUDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LUDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Minor"/>Minor</term>
+         <listitem>
+          <synopsis>Minor (M,i,j)</synopsis>
+          <para>Renvoie le mineur <varname>i</varname>-<varname>j</varname> d'une matrice.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Minor";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
+         <listitem>
+          <synopsis>NonPivotColumns (M)</synopsis>
+          <para>Renvoie les colonnes qui ne sont pas les colonnes pivot d'une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Norm"/>Norm</term>
+         <listitem>
+          <synopsis>Norm (v,p...)</synopsis>
+          <para>Alias : <function>norm</function></para>
+          <para>Renvoie la norme-p d'un vecteur (ou norme-2 si p n'est pas fourni).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
+         <listitem>
+          <synopsis>NullSpace (T)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullspace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Nullity"/>Nullity</term>
+         <listitem>
+          <synopsis>Nullity (M)</synopsis>
+          <para>Alias : <function>nullity</function></para>
+          <para>Renvoie la dimension du noyau de la matrice <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullity";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
+         <listitem>
+          <synopsis>OrthogonalComplement (M)</synopsis>
+          <para>Renvoie le complément orthogonal de l'espace des colonnes.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
+         <listitem>
+          <synopsis>PivotColumns (M)</synopsis>
+          <para>Return pivot columns of a matrix, that is columns that have a leading 1 in row reduced form. 
 Also returns the row where they occur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Projection"/>Projection</term>
+         <listitem>
+          <synopsis>Projection (v,W,B...)</synopsis>
+         <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
+         <listitem>
+          <synopsis>QRDecomposition (A, Q)</synopsis>
+          <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>
+</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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/QR_decomposition";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/QRDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QRDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
+         <listitem>
+          <synopsis>RayleighQuotient (A,x)</synopsis>
+          <para>Renvoie le quotient de Rayleigh (aussi appelé le quotient ou rapport de Rayleigh-Ritz) d'une 
matrice et d'un vecteur.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
+         <listitem>
+          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information on 
Rayleigh quotient.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rank"/>Rank</term>
+         <listitem>
+          <synopsis>Rank (M)</synopsis>
+          <para>Alias : <function>rank</function></para>
+          <para>Renvoie le rang d'une matrice.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SylvestersLaw";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
+         <listitem>
+          <synopsis>RosserMatrix ()</synopsis>
+          <para>Returns the Rosser matrix, which is a classic symmetric eigenvalue test problem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
+         <listitem>
+          <synopsis>Rotation2D (angle)</synopsis>
+          <para>Alias : <function>RotationMatrix</function></para>
+          <para>Renvoie la matrice correspondant à la rotation centrée sur l'origine dans 
R<superscript>2</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
+         <listitem>
+          <synopsis>Rotation3DX (angle)</synopsis>
+          <para>Renvoie la matrice correspondant à la rotation centrée sur l'origine dans 
R<superscript>3</superscript> autour de l'axe des x.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
+         <listitem>
+          <synopsis>Rotation3DY (angle)</synopsis>
+          <para>Renvoie la matrice correspondant à la rotation centrée sur l'origine dans 
R<superscript>3</superscript> autour de l'axe des y.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
+         <listitem>
+          <synopsis>Rotation3DZ (angle)</synopsis>
+          <para>Renvoie la matrice correspondant à la rotation centrée sur l'origine dans 
R<superscript>3</superscript> autour de l'axe des z.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
+         <listitem>
+          <synopsis>RowSpace (M)</synopsis>
+          <para>Renvoie une matrice de base pour l'espace vectoriel engendré par les lignes d'une 
matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
+         <listitem>
+          <synopsis>SesquilinearForm (v,A,w)</synopsis>
+          <para>Évalue (v, w) par rapport à la forme sesquilinéaire donnée par la matrice A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
+         <listitem>
+          <synopsis>SesquilinearFormFunction (A)</synopsis>
+          <para>Renvoie une fonction qui évalue deux vecteurs par rapport à la forme sesquilinéaire donnée 
par A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
+         <listitem>
+          <synopsis>SmithNormalFormField (A)</synopsis>
+          <para>Returns the Smith normal form of a matrix over fields (will end up with 1's on the 
diagonal).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
+         <listitem>
+          <synopsis>SmithNormalFormInteger (M)</synopsis>
+          <para>Return the Smith normal form for square integer matrices over integers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
+         <listitem>
+          <synopsis>SolveLinearSystem (M,V,params...)</synopsis>
+         <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
+         <listitem>
+          <synopsis>ToeplitzMatrix (c, r...)</synopsis>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Toeplitz_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ToeplitzMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Trace"/>Trace</term>
+         <listitem>
+          <synopsis>Trace (M)</synopsis>
+          <para>Alias : <function>trace</function></para>
+          <para>Calcule la trace d'une matrice, c'est-à-dire la somme des éléments diagonaux.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trace_(linear_algebra)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Trace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Transpose"/>Transpose</term>
+         <listitem>
+          <synopsis>Transpose (M)</synopsis>
+          <para>Matrice transposée. C'est identique à l'opérateur <userinput>.'</userinput></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Transpose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
+         <listitem>
+          <synopsis>VandermondeMatrix (v)</synopsis>
+          <para>Alias : <function>vander</function></para>
+          <para>Renvoie la matrice de Vandermonde.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Vandermonde_matrix";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
+         <listitem>
+          <synopsis>VectorAngle (v,w,B...)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
+         <listitem>
+          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
+          <para>Somme directe des espaces vectoriels M et N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
+         <listitem>
+          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
+          <para>Intersection des sous-espaces donnés par M et N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
+         <listitem>
+          <synopsis>VectorSubspaceSum (M,N)</synopsis>
+          <para>Somme des espaces vectoriels M et N, c'est-à-dire {w | w=m+n, m dans M, n dans N}.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-adj"/>adj</term>
+         <listitem>
+          <synopsis>adj (m)</synopsis>
+          <para>Alias : <function>Adjugate</function></para>
+          <para>Renvoie la matrice adjointe d'une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cref"/>cref</term>
+         <listitem>
+          <synopsis>cref (M)</synopsis>
+          <para>Alias : <function>CREF</function><function>ColumnReducedEchelonForm</function></para>
+          <para>Calcule la forme échelonnée réduite en colonnes.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-det"/>det</term>
+         <listitem>
+          <synopsis>det (M)</synopsis>
+          <para>Alias : <function>Determinant</function></para>
+          <para>Renvoie le déterminant d'une matrice.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Determinant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Determinant2";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ref"/>ref</term>
+         <listitem>
+          <synopsis>ref (M)</synopsis>
+          <para>Alias : <function>REF</function><function>RowEchelonForm</function></para>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rref"/>rref</term>
+         <listitem>
+          <synopsis>rref (M)</synopsis>
+          <para>Alias : <function>RREF</function><function>ReducedRowEchelonForm</function></para>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Reduced_row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ReducedRowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-combinatorics">
+      <title>Combinatoire</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Catalan"/>Catalan</term>
+         <listitem>
+          <synopsis>Catalan (n)</synopsis>
+          <para>Renvoie le <varname>n</varname>-ième nombre catalan.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CatalanNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Combinations"/>Combinations</term>
+         <listitem>
+          <synopsis>Combinations (k,n)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
+         <listitem>
+          <synopsis>DoubleFactorial (n)</synopsis>
+          <para>Double factorielle : <userinput>n(n-2)(n-4)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/DoubleFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorial"/>Factorial</term>
+         <listitem>
+          <synopsis>Factorial (n)</synopsis>
+          <para>Factorielle : <userinput>n(n-1)(n-2)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Factorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
+         <listitem>
+          <synopsis>FallingFactorial (n,k)</synopsis>
+          <para>Factorielle décroissante : <userinput>(n)_k·=·n(n-1)...(n-(k-1))</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FallingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
+         <listitem>
+          <synopsis>Fibonacci (x)</synopsis>
+          <para>Alias : <function>fib</function></para>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fibonacci_number";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/FibonacciSequence";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FibonacciNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
+         <listitem>
+          <synopsis>FrobeniusNumber (v,param...)</synopsis>
+          <para>
+           Calculate the Frobenius number.  That is calculate largest
+           number that cannot be given as a non-negative integer linear
+           combination of a given vector of non-negative integers.
+           The vector can be given as separate numbers or a single vector.
+           All the numbers given should have GCD of 1.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coin_problem";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FrobeniusNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
+         <listitem>
+          <synopsis>GaloisMatrix (règle_de_combinaison)</synopsis>
+          <para>Galois matrix given a linear combining rule (a_1*x_1+...+a_n*x_n=x_(n+1)).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
+         <listitem>
+          <synopsis>GreedyAlgorithm (n,v)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greedy_algorithm";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GreedyAlgorithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
+         <listitem>
+          <synopsis>HarmonicNumber (n,r)</synopsis>
+          <para>Alias : <function>HarmonicH</function></para>
+         <para>Harmonic Number, the <varname>n</varname>th harmonic number of order <varname>r</varname>.
+               That is, it is the sum of <userinput>1/k^r</userinput> for <varname>k</varname>
+               from 1 to n.  Equivalent to <userinput>sum k = 1 to n do 1/k^r</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Harmonic_number";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
+         <listitem>
+          <synopsis>Hofstadter (n)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hofstadter_sequence";>Wikipedia</ulink> for more 
information.
+           The sequence is <ulink url="https://oeis.org/A005185";>A005185 in OEIS</ulink>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
+         <listitem>
+          <synopsis>LinearRecursiveSequence (valeurs_ensemencement,règle_de_combinaison,n)</synopsis>
+          <para>Calcule la relation de récurrence linéaire en utilisant l'algorithme de Galois.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
+         <listitem>
+          <synopsis>Multinomial (v,param...)</synopsis>
+          <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>
+         <para>La formule pour <userinput>Multinomial(a,b,c)</userinput> peut s'écrire sous la forme 
:<programlisting>(a+b+c)! / (a!b!c!)
+</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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Multinomial_theorem";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MultinomialTheorem";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/MultinomialCoefficient.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
+         <listitem>
+          <synopsis>NextCombination (v,n)</synopsis>
+         <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>
+         <para>
+           For example with Combinations you would normally write a loop like:
+          <screen><userinput>for n in Combinations (4,6) do (
+  SomeFunction (n)
+);</userinput>
+</screen>
+           But with NextCombination you would write something like:
+          <screen><userinput>n:=[1:4];
+do (
+  SomeFunction (n)
+) while not IsNull(n:=NextCombination(n,6));</userinput>
+</screen>
+         See also <link linkend="gel-function-Combinations">Combinations</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Pascal"/>Pascal</term>
+         <listitem>
+          <synopsis>Pascal (i)</synopsis>
+          <para>Get the Pascal's triangle as a matrix.  This will return
+         an <varname>i</varname>+1 by <varname>i</varname>+1 lower diagonal
+         matrix that is the Pascal's triangle after <varname>i</varname>
+         iterations.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PascalsTriangle";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Permutations"/>Permutations</term>
+         <listitem>
+          <synopsis>Permutations (k,n)</synopsis>
+          <para>Renvoie toutes les permutations de <varname>k</varname> nombres de 1 à <varname>n</varname> 
comme un vecteur de vecteurs.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
+         <listitem>
+          <synopsis>RisingFactorial (n,k)</synopsis>
+          <para>Alias : <function>Pochhammer</function></para>
+          <para>Factorielle croissante (Pochhammer) : (n)_k = n(n+1)...(n+(k-1)).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RisingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
+         <listitem>
+          <synopsis>StirlingNumberFirst (n,m)</synopsis>
+          <para>Alias : <function>StirlingS1</function></para>
+          <para>Nombre de Stirling du premier type.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersOfTheFirstKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
+         <listitem>
+          <synopsis>StirlingNumberSecond (n,m)</synopsis>
+          <para>Alias : <function>StirlingS2</function></para>
+          <para>Nombre de Stirling du second type.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersSecondKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html";>Mathworld</ulink> 
for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
+         <listitem>
+          <synopsis>Subfactorial (n)</synopsis>
+          <para>Subfactorial: n! times sum_{k=0}^n (-1)^k/k!.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Triangular"/>Triangular</term>
+         <listitem>
+          <synopsis>Triangular (nième)</synopsis>
+          <para>Calcule le <varname>n</varname>-ième nombre triangulaire.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/TriangularNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nCr"/>nCr</term>
+         <listitem>
+          <synopsis>nCr (n,r)</synopsis>
+          <para>Alias : <function>Binomial</function></para>
+          <para>Calcule le nombre de combinaisons, c'est-à-dire le coefficient binomial. 
<varname>n</varname> peut être n'importe quel nombre réel.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Choose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nPr"/>nPr</term>
+         <listitem>
+          <synopsis>nPr (n,r)</synopsis>
+          <para>Calculate the number of permutations of size
+          <varname>r</varname> of numbers from 1 to <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-calculus">
+      <title>Analyse</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,FourthDerivativeBound,Tolerance)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Derivative"/>Derivative</term>
+         <listitem>
+          <synopsis>Derivative (f,x0)</synopsis>
+          <para>Tente de calculer la dérivée en essayant d'abord une approche symbolique puis 
numérique.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
+         <listitem>
+          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
+         <para>Return a function that is the even periodic extension of
+<function>f</function> with half period <varname>L</varname>.  That
+is a function defined on the interval <userinput>[0,L]</userinput>
+extended to be even on <userinput>[-L,L]</userinput> and then
+extended to be periodic with period <userinput>2*L</userinput>.</para>
+         <para>Consultez aussi <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> 
et <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
+         <listitem>
+          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
+         <para>Return a function that is a Fourier series with the
+coefficients given by the vectors <varname>a</varname> (sines) and
+<varname>b</varname> (cosines).  Note that <userinput>a@(1)</userinput> is
+the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
+the term <userinput>cos(x*(n-1)*pi/L)</userinput>, while
+<userinput>b@(n)</userinput> refers to the term
+<userinput>sin(x*n*pi/L)</userinput>.  Either <varname>a</varname>
+or <varname>b</varname> can be <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
+         <listitem>
+          <synopsis>InfiniteProduct (fonc,début,inc)</synopsis>
+          <para>Essaie de calculer un produit infini pour une fonction à un seul argument.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
+         <listitem>
+          <synopsis>InfiniteProduct2 (fonc,param,début,inc)</synopsis>
+          <para>Essaie de calculer un produit infini pour une fonction à double arguments avec 
func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
+         <listitem>
+          <synopsis>InfiniteSum (fonc,début,inc)</synopsis>
+          <para>Essaie de calculer une somme infinie pour une fonction à un seul argument.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
+         <listitem>
+          <synopsis>InfiniteSum2 (fonc,param,début,inc)</synopsis>
+          <para>Essaie de calculer une somme infinie pour une fonction à double arguments avec 
func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
+         <listitem>
+          <synopsis>IsContinuous (f,x0)</synopsis>
+          <para>Essaie de voir si une fonction à valeur réelle est continue en x0 en calculant la limite en 
ce point.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
+         <listitem>
+          <synopsis>IsDifferentiable (f,x0)</synopsis>
+          <para>Teste de différentiabilité en approchant les limites gauche et droite et en les 
comparant.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
+         <listitem>
+          <synopsis>LeftLimit (f,x0)</synopsis>
+          <para>Calcule la limite gauche d'une fonction à valeurs réelles en x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Limit"/>Limit</term>
+         <listitem>
+          <synopsis>Limit (f,x0)</synopsis>
+          <para>Calcule la limite d'une fonction à valeur réelle en x0. Essaie de calculer les deux limites 
à gauche et à droite.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
+         <listitem>
+          <synopsis>MidpointRule (f,a,b,n)</synopsis>
+          <para>Intégration par la méthode des rectangles.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
+         <listitem>
+          <synopsis>NumericalDerivative (f,x0)</synopsis>
+          <para>Alias : <function>NDerivative</function></para>
+          <para>Essaie de calculer la dérivée par méthode numérique.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of vectors <userinput>[a,b]</userinput>
+where <varname>a</varname> are the cosine coefficients and
+<varname>b</varname> are the sine coefficients of
+the Fourier series of
+<function>f</function> with half-period <varname>L</varname> (that is defined
+on <userinput>[-L,L]</userinput> and extended periodically) with coefficients
+up to <varname>N</varname>th harmonic computed numerically.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the Fourier series of
+<function>f</function> with half-period <varname>L</varname> (that is defined
+on <userinput>[-L,L]</userinput> and extended periodically) with coefficients
+up to <varname>N</varname>th harmonic computed numerically.  This is the
+trigonometric real series composed of sines and cosines.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of coefficients of 
+the cosine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the even periodic extension and compute the Fourier series, which
+only has cosine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.
+Note that <userinput>a@(1)</userinput> is
+the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
+the term <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the cosine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the even periodic extension and compute the Fourier series, which
+only has cosine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of coefficients of 
+the sine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the odd periodic extension and compute the Fourier series, which
+only has sine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the sine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the odd periodic extension and compute the Fourier series, which
+only has sine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
+         <listitem>
+          <synopsis>NumericalIntegral (f,a,b)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
+         <listitem>
+          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
+          <para>Essaie de calculer la dérivée à gauche par méthode numérique.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
+         <listitem>
+          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerance,successive_for_success,N)</synopsis>
+          <para>Essaie de calculer la limite de f (step_fun(i)) lorsque i va de 1 à N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
+         <listitem>
+          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
+          <para>Essaie de calculer la dérivée à droite par méthode numérique.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
+         <listitem>
+          <synopsis>OddPeriodicExtension (f,L)</synopsis>
+         <para>Return a function that is the odd periodic extension of
+<function>f</function> with half period <varname>L</varname>.  That
+is a function defined on the interval <userinput>[0,L]</userinput>
+extended to be odd on <userinput>[-L,L]</userinput> and then
+extended to be periodic with period <userinput>2*L</userinput>.</para>
+         <para>Consultez aussi <link 
linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link> et <link 
linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Calcule la dérivée d'un côté en utilisant une formule à cinq points.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Calcule la dérivée d'un côté en utilisant une formule à trois points.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
+         <listitem>
+          <synopsis>PeriodicExtension (f,a,b)</synopsis>
+         <para>Return a function that is the periodic extension of
+<function>f</function> defined on the interval <userinput>[a,b]</userinput>
+and has period <userinput>b-a</userinput>.</para>
+         <para>Consultez également <link 
linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> et <link 
linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
+         <listitem>
+          <synopsis>RightLimit (f,x0)</synopsis>
+          <para>Calcule la limite à droite d'une fonction à valeurs réelles en x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Calcule la dérivée des deux côtés en utilisant une formule à cinq points.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Calcule la dérivée des deux côtés en utilisant une formule à trois points.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-functions">
+      <title>Fonctions</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Argument"/>Argument</term>
+         <listitem>
+          <synopsis>Argument (z)</synopsis>
+          <para>Alias : <function>Arg</function> <function>arg</function></para>
+          <para>Renvoie l'argument (angle) d'un nombre complexe.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
+         <listitem>
+          <synopsis>BesselJ0 (x)</synopsis>
+          <para>Bessel function of the first kind of order 0.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
+         <listitem>
+          <synopsis>BesselJ1 (x)</synopsis>
+          <para>Bessel function of the first kind of order 1.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
+         <listitem>
+          <synopsis>BesselJn (n,x)</synopsis>
+         <para>Bessel function of the first kind of order <varname>n</varname>.  Only implemented for real 
numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
+         <listitem>
+          <synopsis>BesselY0 (x)</synopsis>
+          <para>Bessel function of the second kind of order 0.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
+         <listitem>
+          <synopsis>BesselY1 (x)</synopsis>
+          <para>Bessel function of the second kind of order 1.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
+         <listitem>
+          <synopsis>BesselYn (n,x)</synopsis>
+         <para>Bessel function of the second kind of order <varname>n</varname>.  Only implemented for real 
numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
+         <listitem>
+          <synopsis>DirichletKernel (n,t)</synopsis>
+         <para>Dirichlet kernel of order <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
+         <listitem>
+          <synopsis>DiscreteDelta (v)</synopsis>
+          <para>Renvoie 1 si et seulement si tous les éléments sont nuls.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
+         <listitem>
+          <synopsis>ErrorFunction (x)</synopsis>
+          <para>Alias : <function>erf</function></para>
+          <para>Fonction erreur, 2/sqrt(pi) * int_0^x e^(-t^2) dt.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Error_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ErrorFunction";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
+         <listitem>
+          <synopsis>FejerKernel (n,t)</synopsis>
+          <para>Noyau Fejer d'ordre <varname>n</varname> évalué en <varname>t</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FejerKernel";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
+         <listitem>
+          <synopsis>GammaFunction (x)</synopsis>
+          <para>Alias : <function>Gamma</function></para>
+          <para>La fonction Gamma. Seules les valeurs réelles sont actuellement implémentées.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/GammaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Gamma_function";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
+         <listitem>
+          <synopsis>KroneckerDelta (v)</synopsis>
+          <para>Renvoie 1 si et seulement si tous les éléments sont égaux.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertW"/>LambertW</term>
+         <listitem>
+          <synopsis>LambertW (x)</synopsis>
+         <para>
+                 The principal branch of Lambert W function computed for only
+                 real values greater than or equal to <userinput>-1/e</userinput>.
+                 That is, <function>LambertW</function> is the inverse of
+                 the expression <userinput>x*e^x</userinput>.  Even for
+                 real <varname>x</varname> this expression is not one to one and
+                 therefore has two branches over <userinput>[-1/e,0)</userinput>.
+                 See <link linkend="gel-function-LambertWm1"><function>LambertWm1</function></link> for the 
other real branch.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertWm1"/>LambertWm1</term>
+         <listitem>
+          <synopsis>LambertWm1 (x)</synopsis>
+         <para>
+                 The minus-one branch of Lambert W function computed for only
+                 real values greater than or equal to <userinput>-1/e</userinput>
+                 and less than 0.
+                 That is, <function>LambertWm1</function> is the second
+                 branch of the inverse of <userinput>x*e^x</userinput>.
+                 See <link linkend="gel-function-LambertW"><function>LambertW</function></link> for the 
principal branch.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
+         <listitem>
+          <synopsis>MinimizeFunction (fonc,x,incr)</synopsis>
+          <para>Cherche la première valeur pour laquelle f(x)=0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
+         <listitem>
+          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
+          <para>Transformation de Möbius du disque vers lui-même en faisant correspondre a à 0.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
+         <listitem>
+          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
+          <para>Transformation de Möbius utilisant le rapport croisé en prenant z2, z3, z4 à 1, 0 et 
l'infini respectivement.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
+          <para>Transformation de Möbius utilisant le rapport croisé en prenant l'infini à l'infini et z2, 
z3 à 1 et 0 respectivement.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
+          <para>Transformation de Möbius utilisant le rapport croisé en prenant l'infini à 1 et z3, z4 à 0 
et l'infini respectivement.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
+          <para>Transformation de Möbius utilisant le rapport croisé en prenant l'infini à 0 et z2, z4 à 1 
et l'infini respectivement.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
+         <listitem>
+          <synopsis>PoissonKernel (r,sigma)</synopsis>
+          <para>Le noyau de Poisson sur D(0,1) (non normalisé à 1, donc son intégrale vaut 2 pi).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
+         <listitem>
+          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
+          <para>Le noyau de Poisson sur D(0,R) (non normalisé à 1).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
+         <listitem>
+          <synopsis>RiemannZeta (x)</synopsis>
+          <para>Alias : <function>zeta</function></para>
+          <para>Fonction zeta de Riemann (seules les valeurs réelles sont actuellement implémentées).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RiemannZetaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Riemann_zeta_function";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
+         <listitem>
+          <synopsis>UnitStep (x)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Unit_step";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cis"/>cis</term>
+         <listitem>
+          <synopsis>cis (x)</synopsis>
+          <para>La fonction <function>cis</function> est la même que 
<userinput>cos(x)+1i*sin(x)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
+         <listitem>
+          <synopsis>deg2rad (x)</synopsis>
+          <para>Convertit les degrés en radians.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
+         <listitem>
+          <synopsis>rad2deg (x)</synopsis>
+          <para>Convertit les radians en degrés.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinc"/>sinc</term>
+         <listitem>
+          <synopsis>sinc (x)</synopsis>
+         <para>Calculates the unnormalized sinc function, that is
+                 <userinput>sin(x)/x</userinput>.
+                 If you want the normalized function call <userinput>sinc(pi*x)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sinc";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-equation-solving">
+      <title>Résolution d'équations</title>
+      <variablelist>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
+         <listitem>
+          <synopsis>CubicFormula (p)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CubicFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/CubicFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Cubic_equation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
+         <listitem>
+          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns <varname>y</varname> at <varname>x1</varname>.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKutta">RungeKutta</link>
+           for solving ODE.
+         </para>
+         <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>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
+         <listitem>
+          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKuttaFull">RungeKuttaFull</link>
+           for solving ODE.
+           Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <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>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
+         <listitem>
+          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the bisection method.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
+         <listitem>
+          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the method of false position.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
+         <listitem>
+          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
+         <listitem>
+          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the secant method.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
+         <listitem>
+          <synopsis>HalleysMethod (f,df,ddf,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Halley's method.  <varname>f</varname> is
+                 the function, <varname>df</varname> is the derivative of
+                 <varname>f</varname>, and <varname>ddf</varname> is the second derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link> and 
<link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Halley%27s_method";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethod"/>NewtonsMethod</term>
+         <listitem>
+          <synopsis>NewtonsMethod (f,df,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Newton's method.  <varname>f</varname> is
+                 the function and <varname>df</varname> is the derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link 
linkend="gel-function-NewtonsMethodPoly"><function>NewtonsMethodPoly</function></link> and <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
+         <listitem>
+          <synopsis>PolynomialRoots (p)</synopsis>
+          <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>
+         <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
+         <listitem>
+          <synopsis>QuadraticFormula (p)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticFormula";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/QuadraticFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quadratic_formula";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
+         <listitem>
+          <synopsis>QuarticFormula (p)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuarticFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/QuarticEquation.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quartic_equation";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
+         <listitem>
+          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
+          <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>
+         <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>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
+         <listitem>
+          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.  Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <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>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-statistics">
+      <title>Statistiques</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Average"/>Average</term>
+         <listitem>
+          <synopsis>Average (m)</synopsis>
+          <para>Alias : <function>average</function><function>Mean</function><function>mean</function></para>
+          <para>Calculate average (the arithmetic mean) of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
+         <listitem>
+          <synopsis>GaussDistribution (x,sigma)</synopsis>
+         <para>Intégrale de la fonction de Gauss de 0 à <varname>x</varname> (aire sous la courbe 
normale).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
+         <listitem>
+          <synopsis>GaussFunction (x,sigma)</synopsis>
+          <para>Fonction distribution de Gauss normalisée (courbe normale).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Median"/>Median</term>
+         <listitem>
+          <synopsis>Median (m)</synopsis>
+          <para>Alias : <function>median</function></para>
+          <para>Calcule la médiane de toute une matrice.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>PopulationStandardDeviation (m)</synopsis>
+          <para>Alias : <function>stdevp</function></para>
+          <para>Calcule l'écart type de la population de toute une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
+         <listitem>
+          <synopsis>RowAverage (m)</synopsis>
+          <para>Alias : <function>RowMean</function></para>
+         <para>Calculate average of each row in a matrix.  That is, compute the
+         arithmetic mean.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
+         <listitem>
+          <synopsis>RowMedian (m)</synopsis>
+          <para>Calcule la médiane de chaque ligne d'une matrice et renvoie un vecteur colonne.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
+          <para>Alias : <function>rowstdevp</function></para>
+          <para>Calcule l'écart type de la population des lignes d'une matrice et renvoie un vecteur 
colonne.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
+         <listitem>
+          <synopsis>RowStandardDeviation (m)</synopsis>
+          <para>Alias : <function>rowstdev</function></para>
+          <para>Calcule l'écart type des lignes d'une matrice et renvoie un vecteur colonne.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+        <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
+         <listitem>
+          <synopsis>StandardDeviation (m)</synopsis>
+          <para>Alias : <function>stdev</function></para>
+          <para>Calcule l'écart type de toute une matrice.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-polynomials">
+      <title>Polynômes</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
+         <listitem>
+          <synopsis>AddPoly (p1,p2)</synopsis>
+          <para>Ajoute deux polynômes (vecteurs).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
+         <listitem>
+          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
+          <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>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PolynomialLongDivision";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
+         <listitem>
+          <synopsis>IsPoly (p)</synopsis>
+          <para>Vérifie qu'un vecteur est utilisable en tant que polynôme.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
+         <listitem>
+          <synopsis>MultiplyPoly (p1,p2)</synopsis>
+          <para>Multiplie deux polynômes (comme vecteurs).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
+         <listitem>
+          <synopsis>NewtonsMethodPoly (poly,valeurinitiale,epsilon,maxn)</synopsis>
+         <para>Find a root of a polynomial using Newton's method.  <varname>poly</varname> is
+                 the polynomial as a vector and <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
+         <listitem>
+          <synopsis>Poly2ndDerivative (p)</synopsis>
+          <para>Renvoie la dérivée seconde du polynôme (comme vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
+         <listitem>
+          <synopsis>PolyDerivative (p)</synopsis>
+          <para>Prend la dérivée du polynôme (comme vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
+         <listitem>
+          <synopsis>PolyToFunction (p)</synopsis>
+          <para>Fabrique une fonction à partir d'un polynôme (comme vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
+         <listitem>
+          <synopsis>PolyToString (p,var...)</synopsis>
+          <para>Fabrique une chaîne à partir d'un polynôme (comme vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
+         <listitem>
+          <synopsis>SubtractPoly (p1,p2)</synopsis>
+          <para>Soustrait deux polynômes (comme vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
+         <listitem>
+          <synopsis>TrimPoly (p)</synopsis>
+          <para>Tronque les zéros d'un polynôme (défini comme vecteur).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-set-theory">
+      <title>Théorie des ensembles</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Intersection"/>Intersection</term>
+         <listitem>
+          <synopsis>Intersection (X,Y)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIn"/>IsIn</term>
+         <listitem>
+          <synopsis>IsIn (x,X)</synopsis>
+         <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
+         <listitem>
+          <synopsis>IsSubset (X, Y)</synopsis>
+         <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
+         <listitem>
+          <synopsis>MakeSet (X)</synopsis>
+          <para>Renvoie un vecteur où chaque élément de X n'apparaît qu'une seule fois.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
+         <listitem>
+          <synopsis>SetMinus (X,Y)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Union"/>Union</term>
+         <listitem>
+          <synopsis>Union (X,Y)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-commutative-algebra">
+      <title>Commutative Algebra</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
+         <listitem>
+          <synopsis>MacaulayBound (c,d)</synopsis>
+          <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>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+       
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
+         <listitem>
+          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
+          <para>The c_&lt;d&gt; operator from Green's proof of Macaulay's Theorem.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
+         <listitem>
+          <synopsis>MacaulayRep (c,d)</synopsis>
+          <para>Return the dth Macaulay representation of a positive integer c.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-miscellaneous">
+      <title>Divers</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
+         <listitem>
+          <synopsis>ASCIIToString (vec)</synopsis>
+          <para>Convert a vector of ASCII values to a string.
+                 See also
+                 <link linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
+= "abc"
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
+         <listitem>
+          <synopsis>AlphabetToString (vec,alphabet)</synopsis>
+         <para>Convert a vector of 0-based alphabet values (positions in the alphabet string) to a string.  
A <constant>null</constant> vector results in an empty string.
+                 See also
+                 <link linkend="gel-function-StringToAlphabet"><function>StringToAlphabet</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>AlphabetToString([1,2,3,0,0],"abcd")</userinput>
+= "bcdaa"
+<prompt>genius&gt;</prompt> <userinput>AlphabetToString(null,"abcd")</userinput>
+= ""
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
+         <listitem>
+          <synopsis>StringToASCII (chaîne)</synopsis>
+         <para>Convert a string to a (row) vector of ASCII values.
+                 See also
+                 <link linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
+= [97, 98, 99]
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
+         <listitem>
+          <synopsis>StringToAlphabet (chaîne,alphabet)</synopsis>
+         <para>Convert a string to a (row) vector of 0-based alphabet values
+                 (positions in the alphabet string), -1's for unknown letters.
+                 An empty string results in a <constant>null</constant>.
+                 See also
+                 <link linkend="gel-function-AlphabetToString"><function>AlphabetToString</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToAlphabet("cca","abcd")</userinput>
+= [2, 2, 0]
+<prompt>genius&gt;</prompt> <userinput>StringToAlphabet("ccag","abcd")</userinput>
+= [2, 2, 0, -1]
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-symbolic">
+      <title>Calcul symbolique</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
+         <listitem>
+          <synopsis>SymbolicDerivative (f)</synopsis>
+          <para>Essaie de dériver symboliquement la fonction f, où f est une fonction à une variable.</para>
+          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(sin)</userinput>
+= (`(x)=cos(x))
+<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
+= (`(x)=(7*(2*x)))
+</screen></para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicDerivativeTry (f)</synopsis>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
+          <para>Essaie de dériver symboliquement une fonction n fois (consultez <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
+         <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>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
+         <listitem>
+          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
+         <para>Attempt to construct the Taylor approximation function around x0 to the nth degree.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-plotting">
+      <title>Tracé de graphiques</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
+         <listitem>
+          <synopsis>ExportPlot (file,type)</synopsis>
+          <synopsis>ExportPlot (file)</synopsis>
+          <para>
+                 Export the contents of the plotting window to a file.
+                 The type is a string that specifies the file type to
+                 use, "png", "eps", or "ps".  If the type is not
+                 specified, then it is taken to be the extension, in
+                 which case the extension must be ".png", ".eps", or ".ps".
+         </para>
+         <para>
+                 Note that files are overwritten without asking.
+         </para>
+         <para>
+                 On successful export, true is returned.  Otherwise
+                 error is printed and exception is raised.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>ExportPlot("file.png")</userinput>
+<prompt>genius&gt;</prompt> <userinput>ExportPlot("/directory/file","eps")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
+         <listitem>
+          <synopsis>LinePlot (fonc1,fonc2,fonc3,...)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2)</synopsis>
+          <synopsis>LinePlot (fonc1,fonc2,fonc3,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2])</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2,y1,y2])</synopsis>
+          <para>
+           Plot a function (or several functions) with a line.
+           First (up to 10) arguments are functions, then optionally
+            you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>)
+           If the y limits are not specified, then the functions are computed and then the maxima and minima
+           are used.
+          </para>
+          <para>Le paramètre <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne 
l'affichage de la légende.</para>
+          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
+         <listitem>
+          <synopsis>LinePlotClear ()</synopsis>
+          <para>Affiche la fenêtre d'affichage du tracé et efface les courbes déjà tracées.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
+         <listitem>
+          <synopsis>LinePlotCParametric (fonc,...)</synopsis>
+          <synopsis>LinePlotCParametric (fonc,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotCParametric (fonc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <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>
+         <para>
+           If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+           If instead the string "fit" is given for the x and y limits, then the limits are the maximum 
extent of
+           the graph
+          </para>
+          <para>Le paramètre <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne 
l'affichage de la légende.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
+         <listitem>
+          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
+          <synopsis>LinePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,
+           <varname>x2</varname>,<varname>y2</varname> can be replaced by an
+           <varname>n</varname> by 2 matrix for a longer polyline.
+           Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+           that is an <varname>n</varname> by 1 matrix and each complex number is then
+           considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           arrows, the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           <userinput>"arrow"</userinput>, or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, type of arrow, or the legend.  (Arrow and window are from version 1.0.6 onwards.)
+         </para>
+         <para>
+           If the line is to be treated as a filled polygon, filled with the given color, you
+           can specify the argument <userinput>"filled"</userinput>.  Since version 1.0.22 onwards.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Arrow specification should be
+           <userinput>"origin"</userinput>,
+           <userinput>"end"</userinput>,
+           <userinput>"both"</userinput>, or
+           <userinput>"none"</userinput>.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.
+         </para>
+         <para>
+                 Specifying <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
+         <listitem>
+          <synopsis>LinePlotDrawPoints (x,y,...)</synopsis>
+          <synopsis>LinePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>.
+                 The input can be an <varname>n</varname> by 2 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>.
+                 Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+                 that is an <varname>n</varname> by 1 matrix and each complex number is then
+                 considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The 7th 
roots of unity")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.  Therefore, notice in the
+                 last example the transpose of the vector <userinput>0:6</userinput>
+                 to make it into a column vector.
+         </para>
+         <para>
+                 Available from version 1.0.18 onwards.  Specifying
+                 <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
+         <listitem>
+          <synopsis>LinePlotMouseLocation ()</synopsis>
+          <para>
+           Returns a row vector of a point on the line plot corresponding to
+           the current mouse location.  If the line plot is not visible,
+           then prints an error and returns <constant>null</constant>.
+           In this case you should run
+           <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> or
+           <link linkend="gel-function-LinePlotClear"><function>LinePlotClear</function></link>
+           to put the graphing window into the line plot mode.
+           See also
+           <link 
linkend="gel-function-LinePlotWaitForClick"><function>LinePlotWaitForClick</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
+         <listitem>
+          <synopsis>LinePlotParametric (xfonc,yfonc,...)</synopsis>
+          <synopsis>LinePlotParametric (xfonc,yfonc,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotParametric (xfonc,yfonc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")</synopsis>
+          <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>
+         <para>
+           If x and y limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+           If instead the string "fit" is given for the x and y limits, then the limits are the maximum 
extent of
+           the graph
+          </para>
+          <para>Le paramètre <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne 
l'affichage de la légende.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
+         <listitem>
+          <synopsis>LinePlotWaitForClick ()</synopsis>
+          <para>
+           If in line plot mode, waits for a click on the line plot window
+           and returns the location of the click as a row vector.
+           If the window is closed
+           the function returns immediately with <constant>null</constant>.
+           If the window is not in line plot mode, it is put in it and shown
+           if not shown.
+           See also
+           <link 
linkend="gel-function-LinePlotMouseLocation"><function>LinePlotMouseLocation</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasFreeze"/>PlotCanvasFreeze</term>
+         <listitem>
+          <synopsis>PlotCanvasFreeze ()</synopsis>
+          <para>
+                 Freeze drawing of the canvas plot temporarily.  Useful if you need to draw a bunch of 
elements
+                 and want to delay drawing everything to avoid flicker in an animation.  After everything
+                 has been drawn you should call <link 
linkend="gel-function-PlotCanvasThaw"><function>PlotCanvasThaw</function></link>.
+          </para>
+          <para>
+                 The canvas is always thawed after end of any execution, so it will never remain frozen.  
The moment
+                 a new command line is shown for example the plot canvas is thawed automatically.  Also note 
that
+                 calls to freeze and thaw may be safely nested.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
+         <listitem>
+          <synopsis>PlotCanvasThaw ()</synopsis>
+          <para>
+                 Thaw the plot canvas frozen by
+                 <link linkend="gel-function-PlotCanvasFreeze"><function>PlotCanvasFreeze</function></link>
+                 and redraw the canvas immediately.  The canvas is also always thawed after end of execution
+                 of any program.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
+         <listitem>
+          <synopsis>PlotWindowPresent ()</synopsis>
+          <para>
+                 Show and raise the plot window, creating it if necessary.
+                 Normally the window is created when one of the plotting
+                 functions is called, but it is not always raised if it
+                 happens to be below other windows.  So this function is
+                 good to call in scripts where the plot window might have 
+                 been created before, and by now is hidden behind the
+                 console or other windows.
+          </para>
+         <para>Version 1.0.19 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
+         <listitem>
+          <synopsis>SlopefieldClearSolutions ()</synopsis>
+          <para>Efface les solutions tracées par la fonction <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
+         <listitem>
+          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
+          <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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
+         <listitem>
+          <synopsis>SlopefieldPlot (fonc)</synopsis>
+          <synopsis>SlopefieldPlot (fonc,x1,x2,y1,y2)</synopsis>
+          <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>
+          <para>Le paramètre <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne 
l'affichage de la légende.</para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+       <varlistentry>
+        <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
+         <listitem>
+          <synopsis>SurfacePlot (fonc)</synopsis>
+          <synopsis>SurfacePlot (fonc,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2)</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2])</synopsis>
+          <para>
+           Plot a surface function that takes either two arguments or a complex number.  First comes the 
function then optionally limits as <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>,
+           <varname>z1</varname>, <varname>z2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>).
+           Genius can only plot a single surface function at this time.
+          </para>
+          <para>
+           If the z limits are not specified then the maxima and minima of the function are used.
+         </para>
+          <para>Exemples : <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
+         <listitem>
+          <synopsis>SurfacePlotClear ()</synopsis>
+          <para>
+            Show the surface plot window and clear out functions and any other
+            lines that were drawn.
+          </para>
+          <para>
+           Available in version 1.0.19 and onwards.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
+         <listitem>
+          <synopsis>SurfacePlotData (data)</synopsis>
+          <synopsis>SurfacePlotData (data,label)</synopsis>
+          <synopsis>SurfacePlotData (data,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,label,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotData (data,label,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <para>
+                 Plot a surface from data.  The data is an n by 3 matrix whose
+                 rows are the x, y and z coordinates.  The data can also be
+                 simply a vector whose length is a multiple of 3 and so
+                 contains the triples of x, y, z.  The data should contain at
+                 least 3 points.
+         </para>
+          <para>
+                 Optionally we can give the label and also optionally the
+                 limits.  If limits are not given, they are computed from
+                 the data, <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>
+                 is not used, if you want to use it, pass it in explicitly.
+                 If label is not given then empty label is used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,-1,1,-1,1,0,10)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,SurfacePlotWindow)</userinput>
+</screen>
+          </para>
+         <para>
+                 Here's an example of how to plot in polar coordinates,
+                 in particular how to plot the function
+                 <userinput>-r^2 * theta</userinput>:
+          <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>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
+         <listitem>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2],label)</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],label)</synopsis>
+          <para>
+                 Plot a surface from regular rectangular data.
+                 The data is given in a n by m matrix where the rows are the
+                 x coordinate and the columns are the y coordinate.
+                 The x coordinate is divided into equal n-1 subintervals
+                 and y coordinate is divided into equal m-1 subintervals.
+                 The limits <varname>x1</varname> and <varname>x2</varname>
+                 give the interval on the x-axis that we use, and 
+                 the limits <varname>y1</varname> and <varname>y2</varname>
+                 give the interval on the y-axis that we use.
+                 If the limits <varname>z1</varname> and <varname>z2</varname>
+                 are not given they are computed from the data (to be
+                 the extreme values from the data).
+         </para>
+          <para>
+                 Optionally we can give the label, if label is not given then
+                 empty label is used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = 
(0.1*i-1)^2-(0.1*j)^2;</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"half a saddle")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
+          <synopsis>SurfacePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname>,
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname> can be replaced by an
+           <varname>n</varname> by 3 matrix for a longer polyline.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>,
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawPoints (x,y,z,...)</synopsis>
+          <synopsis>SurfacePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>,<varname>z</varname>.
+                 The input can be an <varname>n</varname> by 3 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-SurfacePlotDrawLine">SurfacePlotDrawLine</link>.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
+         <listitem>
+          <synopsis>VectorfieldClearSolutions ()</synopsis>
+          <para>Efface les solutions dessinées par la fonction <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>.</para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
+         <listitem>
+          <synopsis>VectorfieldDrawSolution (x, y, dt, tlong)</synopsis>
+          <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>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
+         <listitem>
+          <synopsis>VectorfieldPlot (foncx, foncy)</synopsis>
+          <synopsis>VectorfieldPlot (foncx, foncy, x1, x2, y1, y2)</synopsis>
+          <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>
+         <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>
+          <para>Le paramètre <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne 
l'affichage de la légende.</para>
+          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, 
`(x,y)=y^2-x, -1, 1, -1, 1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL examples ============================= -->
+  <chapter id="genius-gel-example-programs">
+    <title>Exemple de programmes en GEL</title>
+
+    <para>Voici une fonction qui calcule des factorielles : <programlisting><![CDATA[function f(x) = if x <= 
1 then 1 else (f(x-1)*x)
+]]></programlisting></para>
+    <para>Avec des indentations, cela devient : <programlisting><![CDATA[function f(x) = (
+  if x <= 1 then
+    1
+  else
+    (f(x-1)*x)
+)
+]]></programlisting></para>
+    <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) = (
+  if (x <= 1) then return (1);
+  return (f(x-1) * x)
+)
+]]></programlisting></para>
+
+    <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
+</programlisting></para>
+
+    <para>
+Here is a larger example, this basically redefines the internal
+<link linkend="gel-function-ref"><function>ref</function></link> function to calculate the row echelon form 
of a
+matrix.  The function <function>ref</function> is built in and much faster,
+but this example demonstrates some of the more complex features of GEL.
+<programlisting><![CDATA[# Calculate the row-echelon form of a matrix
+function MyOwnREF(m) = (
+  if not IsMatrix(m) or not IsValueOnly(m) then
+    (error("MyOwnREF: argument not a value only matrix");bailout);
+  s := min(rows(m), columns(m));
+  i := 1;
+  d := 1;
+  while d <= s and i <= columns(m) do (
+
+    # This just makes the anchor element non-zero if at
+    # all possible
+    if m@(d,i) == 0 then (
+      j := d+1;
+      while j <= rows(m) do (
+        if m@(j,i) == 0 then
+          (j=j+1;continue);
+        a := m@(j,);
+        m@(j,) := m@(d,);
+        m@(d,) := a;
+        j := j+1;
+        break
+      )
+    );
+    if m@(d,i) == 0 then
+      (i:=i+1;continue);
+    
+    # Here comes the actual zeroing of all but the anchor
+    # element rows
+    j := d+1;
+    while j <= rows(m)) do (
+      if m@(j,i) != 0 then (
+        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
+      );
+      j := j+1
+    );
+    m@(d,) := m@(d,) * (1/m@(d,i));
+    d := d+1;
+    i := i+1
+  );
+  m
+)
+]]></programlisting>
+    </para>
+
+  </chapter>
+
+  <!-- ============= Customization ============================ -->
+  <chapter id="genius-prefs"> 
+    <title>Paramètres</title> 
+
+    <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>
+
+    <note>
+      <title>Modifications des paramètres avec GEL</title>
+      <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>
+      <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
+</programlisting></para>
+    </note>
+
+    <sect1 id="genius-prefs-output"> 
+      <title>Sortie</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Nombre maximum de chiffres à afficher</guilabel>
+      </term> 
+         <listitem>
+                 <para>The maximum digits in a result (<link 
linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Résultats en nombres flottants</guilabel>
+      </term> 
+         <listitem>
+                 <para>If the results should be always printed as floats (<link 
linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Nombres flottants en notation scientifique</guilabel>
+      </term> 
+         <listitem>
+                 <para>If floats should be in scientific notation (<link 
linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Toujours afficher les expressions complètes</guilabel>
+      </term> 
+         <listitem>
+                 <para>Should we print out full expressions for non-numeric return values (longer than a 
line) (<link linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Utiliser les fractions mixtes</guilabel>
+      </term> 
+         <listitem>
+                 <para>If fractions should be printed as mixed fractions such as "1 1/3" rather than "4/3". 
(<link linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Afficher 0.0 lorsqu'un nombre flottant est inférieur à 10^-x (0=ne jamais 
arrondir)</guilabel>
+      </term> 
+         <listitem>
+         <para>How to chop output.  But only when other numbers nearby are large.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+            <guilabel>Arrondir les nombres uniquement si un autre nombre est plus grand que 10^-x</guilabel>
+      </term> 
+         <listitem>
+                 <para>When to chop output.  This is set by the parameter <link 
linkend="gel-function-OutputChopWhenExponent"><function>OutputChopWhenExponent</function></link>.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Se souvenir des paramètres de sortie d'une session à l'autre</guilabel>
+      </term> 
+         <listitem>
+        <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>
+             <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>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Afficher les erreurs dans une boîte de dialogue</guilabel>
+      </term> 
+         <listitem>
+        <para>If set the errors will be displayed in a separate dialog, if
+       unset the errors will be printed on the console.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Afficher les messages d'informations dans une boîte de dialogue</guilabel>
+      </term> 
+         <listitem>
+       <para>If set the information messages will be displayed in a separate
+       dialog, if unset the information messages will be printed on the
+       console.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Nombre maximum d'erreurs à afficher</guilabel>
+      </term> 
+         <listitem>
+        <para>
+         The maximum number of errors to return on one evaluation
+         (<link linkend="gel-function-MaxErrors"><function>MaxErrors</function></link>).  If you set this to 
0 then
+         all errors are always returned.  Usually if some loop causes
+         many errors, then it is unlikely that you will be able to make
+         sense out of more than a few of these, so seeing a long list
+         of errors is usually not helpful.
+         </para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+
+      <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>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <function>IntegerOutputBase</function>
+      </term> 
+         <listitem>
+        <para>La base utilisée pour afficher les entiers.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <function>OutputStyle</function>
+      </term> 
+         <listitem>
+       <para>A string, can be <literal>"normal"</literal>,
+<literal>"latex"</literal>, <literal>"mathml"</literal> or
+<literal>"troff"</literal> and it will affect how matrices (and perhaps other
+stuff) is printed, useful for pasting into documents.  Normal style is the
+default human readable printing style of <application>Genius Mathematics Tool</application>.  The other 
styles are for
+typesetting in LaTeX, MathML (XML), or in Troff.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+   </sect1> 
+
+    <sect1 id="genius-prefs-precision"> 
+      <title>Précision</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Précision des nombres en virgule flottante</guilabel>
+      </term> 
+         <listitem>
+        <para>
+         The floating point precision in bits
+         (<link linkend="gel-function-FloatPrecision"><function>FloatPrecision</function></link>).
+         Note that changing this only affects newly computed quantities.
+         Old values stored in variables are obviously still in the old
+         precision and if you want to have them more precise you will have
+         to recompute them.  Exceptions to this are the system constants
+         such as <link linkend="gel-function-pi"><function>pi</function></link> or
+         <link linkend="gel-function-e"><function>e</function></link>.
+         </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Se souvenir de la précision choisie d'une session à l'autre</guilabel>
+      </term> 
+         <listitem>
+        <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>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-terminal"> 
+      <title>Terminal</title> 
+
+      <para>Le terminal se réfère à la console dans la zone de travail.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Lignes d'historique</guilabel>
+      </term> 
+         <listitem>
+        <para>Nombre de lignes d'historique dans le terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Police</guilabel>
+      </term> 
+         <listitem>
+        <para>La police à utiliser dans le terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Noir sur blanc</guilabel>
+      </term> 
+         <listitem>
+        <para>Si vous utilisez du noir sur blanc dans le terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Curseur clignotant</guilabel>
+      </term> 
+         <listitem>
+        <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>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-memory"> 
+      <title>Mémoire</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Nombre maximum de nœuds à allouer</guilabel>
+      </term> 
+         <listitem>
+        <para>
+          Internally all data is put onto small nodes in memory.  This gives
+          a limit on the maximum number of nodes to allocate for
+          computations.  This limit avoids the problem of running out of memory
+          if you do something by mistake that uses too much memory, such
+          as a recursion without end.  This could slow your computer and make
+          it hard to even interrupt the program.
+         </para>
+        <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>
+        <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>
+         </listitem>
+       </varlistentry>
+
+      </variablelist> 
+    </sect1> 
+
+  </chapter>
+
+<!-- ============= About ====================================== -->
+  <chapter id="genius-about"> 
+    <title>À propos de l'<application>Outil de maths Genius</application></title> 
+
+    <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>
+    <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>
+
+    <para> This program is distributed under the terms of the GNU
+      General Public license as published by the Free Software
+      Foundation; either version 3 of the License, or (at your option)
+      any later version. A copy of this license can be found at this
+      <ulink url="http://www.gnu.org/copyleft/gpl.html"; type="http">link</ulink>, or in the file
+      COPYING included with the source code of this program. </para>
+
+    <para>Jiří Lebl was during various parts of the development
+      partially supported for the work by NSF grants DMS 0900885, 
+      DMS 1362337,
+      the University of Illinois at Urbana-Champaign,
+      the University of California at San Diego, 
+      the University of Wisconsin-Madison, and
+      Oklahoma State University.  The software has
+      been used for both teaching and research.</para>
+
+  </chapter>
+
+</book>
diff --git a/help/fr/html/index.html b/help/fr/html/index.html
index 313d6c3..9e9d3af 100644
--- a/help/fr/html/index.html
+++ b/help/fr/html/index.html
@@ -1,5 +1,5 @@
 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Manuel de 
Genius</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="description" 
content="Manuel de l'Outil de maths Genius."><link rel="home" href="index.html" title="Manuel de 
Genius"><link rel="next" href="ch01.html" title="Chapitre 1. Introduction"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Manuel de Genius</th></tr><tr><td width="20%" 
align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" 
href="ch01.html">Suivant</a></td></tr></table><hr></div><div lang="fr" class="book"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a>Manuel de Genius</h1></div><div><div 
class="authorgroup"><div class="author"><h3 class="author"><span class="fir
 stname">Jiří</span> <span class="surname">Lebl</span></h3><div class="affiliation"><span 
class="orgname">Oklahoma State University<br></span><div class="address"><p> <code class="email">&lt;<a 
class="email" href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code> </p></div></div></div><div 
class="author"><h3 class="author"><span class="firstname">Kai</span> <span 
class="surname">Willadsen</span></h3><div class="affiliation"><span class="orgname">Université de Queensland, 
Australie<br></span><div class="address"><p> <code class="email">&lt;<a class="email" href="mailto:kaiw itee 
uq edu au">kaiw itee uq edu au</a>&gt;</code> </p></div></div></div></div></div><div><p 
class="releaseinfo">This manual describes version 1.0.22 of Genius.
-    </p></div><div><p class="copyright">Copyright © 1997-2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><p class="copyright">Copyright © 2010-11 Bruno 
Brouard (annoa b gmail com)</p></div><div><p class="copyright">Copyright © 2011 Luc Pionchon (pionchon luc 
gmail com)</p></div><div><div class="legalnotice"><a name="legalnotice"></a><p>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 <a class="ulink" href="ghelp:fdl" target="_top">lien</a> ou dans le fichier 
COPYING-DOCS fourni avec le présent manuel.</p><p>Ce manuel fait partie de la collection de manuels GNOME 
distribués selon les term
 es 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.</p><p>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.</p><p>LE PRÉSENT DOCUMENT ET SES VERSIONS MODIFIÉES SONT FOURNIS 
SELON LES TERMES DE LA LICENCE DE DOCUMENTATION LIBRE GNU SACHANT QUE : </p><div class="orderedlist"><ol 
class="orderedlist" type="1"><li class="listitem"><p>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É ; </p></li><li class="listitem"><p>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 V
 ERSION 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.</p></li></ol></div></div></div><div><div class="legalnotice"><a name="idm45942141224496"></a><p 
class="legalnotice-title"><b>Votre avis</b></p><p>
+    </p></div><div><p class="copyright">Copyright © 1997-2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><p class="copyright">Copyright © 2010-11 Bruno 
Brouard (annoa b gmail com)</p></div><div><p class="copyright">Copyright © 2011 Luc Pionchon (pionchon luc 
gmail com)</p></div><div><div class="legalnotice"><a name="legalnotice"></a><p>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 <a class="ulink" href="ghelp:fdl" target="_top">lien</a> ou dans le fichier 
COPYING-DOCS fourni avec le présent manuel.</p><p>Ce manuel fait partie de la collection de manuels GNOME 
distribués selon les term
 es 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.</p><p>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.</p><p>LE PRÉSENT DOCUMENT ET SES VERSIONS MODIFIÉES SONT FOURNIS 
SELON LES TERMES DE LA LICENCE DE DOCUMENTATION LIBRE GNU SACHANT QUE : </p><div class="orderedlist"><ol 
class="orderedlist" type="1"><li class="listitem"><p>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É ; </p></li><li class="listitem"><p>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 V
 ERSION 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.</p></li></ol></div></div></div><div><div class="legalnotice"><a name="idm54"></a><p 
class="legalnotice-title"><b>Votre avis</b></p><p>
              To report a bug or make a suggestion regarding the <span class="application">Genius Mathematics 
Tool</span>
              application or this manual, please visit the
              <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">Genius
diff --git a/help/pt_BR/genius.xml b/help/pt_BR/genius.xml
new file mode 100644
index 0000000..1f32922
--- /dev/null
+++ b/help/pt_BR/genius.xml
@@ -0,0 +1,9968 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY app "<application>Genius Mathematics Tool</application>">
+<!ENTITY appname "Genius">
+<!ENTITY appversion "1.0.22">
+<!ENTITY date "September 2016">
+<!ENTITY legal SYSTEM "legal.xml">
+<!ENTITY manrevision "0.2">
+<!ENTITY lt "&#60;">
+<!ENTITY gt "&#62;">
+<!ENTITY le "&#8804;">
+<!ENTITY ge "&#8805;">
+<!ENTITY lsquo "&#8216;">
+<!ENTITY rsquo "&#8217;">
+<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
+<!-- 
+      (Do not remove this comment block.)
+  Maintained by the GNOME Documentation Project
+  http://developer.gnome.org/projects/gdp
+  Template version: 2.0 beta
+  Template last modified Apr 11, 2002
+-->
+<!-- =============Document Header ============================= -->
+<book id="index" lang="pt_BR">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <bookinfo>
+         <abstract role="description"><para>Manual da ferramenta matemática Genius</para></abstract>
+    <title>Manual do Genius</title>       
+
+    <copyright>
+      <year>1997-2016</year>
+      <holder>Jiří (George) Lebl</holder>
+    </copyright>
+    <copyright>
+      <year>2004</year>
+      <holder>Kai Willadsen</holder>
+    </copyright><copyright><year>2013.</year><holder>Enrico Nicoletto (liverig gmail 
com)</holder></copyright>
+<!-- translators: uncomment this:
+  <copyright>
+   <year>2002</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+-->
+
+    <publisher> 
+      <publishername/> 
+    </publisher> 
+
+     <legalnotice id="legalnotice">
+       <para>Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da 
Licença de Documentação Livre GNU (GNU Free Documentation License), Versão 1.1 ou qualquer versão mais 
recente publicada pela Free Software Foundation; sem Seções Invariantes, Textos de Capa Frontal, e sem Textos 
de Contracapa. Você pode encontrar uma cópia da licença GFDL neste <ulink type="help" 
url="ghelp:fdl">link</ulink> ou no arquivo COPYING-DOCS distribuído com este manual.</para>
+         <para>Este manual é parte da coleção de manuais do GNOME distribuídos sob a GFDL. Se você quiser 
distribuí-lo separadamente da coleção, você pode fazê-lo adicionando ao manual uma cópia da licença, como 
descrito na seção 6 da licença.</para>
+
+       <para>Muitos dos nomes usados por empresas para distinguir seus produtos e serviços são reivindicados 
como marcas registradas. Onde esses nomes aparecem em qualquer documentação do GNOME e os membros do Projeto 
de Documentação do GNOME estiverem cientes dessas marcas registradas, os nomes aparecerão impressos em letras 
maiúsculas ou com iniciais em maiúsculas.</para>
+
+       <para>O DOCUMENTO E VERSÕES MODIFICADAS DO DOCUMENTO SÃO FORNECIDOS SOB OS TERMOS DA GNU FREE 
DOCUMENTATION LICENSE COM O ENTENDIMENTO ADICIONAL DE QUE: <orderedlist>
+               <listitem>
+                 <para>O DOCUMENTO É FORNECIDO NA BASE "COMO ESTÁ", SEM GARANTIAS DE QUALQUER TIPO, TANTO 
EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS DE QUE O DOCUMENTO OU VERSÃO MODIFICADA DO 
DOCUMENTO SEJA COMERCIALIZÁVEL, LIVRE DE DEFEITOS, PRÓPRIO PARA UM PROPÓSITO ESPECÍFICO OU SEM INFRAÇÕES. 
TODO O RISCO A RESPEITO DA QUALIDADE, EXATIDÃO, E DESEMPENHO DO DOCUMENTO OU VERSÕES MODIFICADAS DO DOCUMENTO 
É DE SUA RESPONSABILIDADE. SE ALGUM DOCUMENTO OU VERSÃO MODIFICADA SE PROVAR DEFEITUOSO EM QUALQUER ASPECTO, 
VOCÊ (NÃO O ESCRITOR INICIAL, AUTOR OU QUALQUER CONTRIBUIDOR) ASSUME O CUSTO DE QUALQUER SERVIÇO NECESSÁRIO, 
REPARO OU CORREÇÃO. ESSA RENÚNCIA DE GARANTIAS CONSTITUI UMA PARTE ESSENCIAL DESTA LICENÇA. NENHUM USO DESTE 
DOCUMENTO OU VERSÃO MODIFICADA DESTE DOCUMENTO É AUTORIZADO SE NÃO FOR SOB ESSA RENÚNCIA; E</para>
+               </listitem>
+               <listitem>
+                 <para>SOB NENHUMA CIRCUNSTÂNCIA E SOB NENHUMA TEORIA LEGAL, TANTO EM DANO (INCLUINDO 
NEGLIGÊNCIA), CONTRATO, OU OUTROS, DEVEM O AUTOR, ESCRITOR INICIAL, QUALQUER CONTRIBUIDOR, OU QUALQUER 
DISTRIBUIDOR DO DOCUMENTO OU VERSÃO MODIFICADA DO DOCUMENTO, OU QUALQUER FORNECEDOR DE ALGUMA DESSAS PARTES, 
SEREM CONSIDERADOS RESPONSÁVEIS A QUALQUER PESSOA POR QUALQUER DANO, SEJA DIRETO, INDIRETO, ESPECIAL, 
ACIDENTAL OU DANOS DECORRENTES DE QUALQUER NATUREZA, INCLUINDO, MAS NÃO LIMITADO A, DANOS POR PERDA DE BOA 
VONTADE, TRABALHO PARADO, FALHA OU MAU FUNCIONAMENTO DO COMPUTADOR, OU QUALQUER E TODOS OS OUTROS DANOS OU 
PERDAS RESULTANTES OU RELACIONADOS AO USO DO DOCUMENTO E VERSÕES MODIFICADAS, MESMO QUE TAL PARTE TENHA SIDO 
INFORMADA DA POSSIBILIDADE DE TAIS DANOS.</para>
+               </listitem>
+         </orderedlist></para>
+  </legalnotice>
+
+
+   <!-- This file  contains link to license for the documentation (GNU FDL), and 
+        other legal stuff such as "NO WARRANTY" statement. Please do not change 
+       any of this. -->
+
+    <authorgroup> 
+      <author role="maintainer"> 
+               <firstname>Jiří</firstname> 
+               <surname>Lebl</surname> 
+               <affiliation> 
+                       <orgname>Universidade do Estado de Oklahoma</orgname> 
+                       <address> <email>jirka 5z com</email> </address> 
+               </affiliation> 
+      </author> 
+      <author> 
+               <firstname>Kai</firstname> 
+               <surname>Willadsen</surname> 
+               <affiliation> 
+                       <orgname>Universidade de Queensland, Austrália</orgname> 
+                       <address> <email>kaiw itee uq edu au</email> </address> 
+               </affiliation> 
+      </author> 
+      
+<!-- This is appropriate place for other contributors: translators,
+     maintainers,  etc. Commented out by default.
+     
+      <othercredit role="translator">
+               <firstname>Latin</firstname> 
+               <surname>Translator 1</surname> 
+               <affiliation> 
+                       <orgname>Latin Translation Team</orgname> 
+                       <address> <email>translator gnome org</email> </address> 
+               </affiliation>
+               <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+    </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+-->
+<!-- than the current revision. -->
+<!-- The revision numbering system for GNOME manuals is as follows: -->
+<!-- * the revision number consists of two components -->
+<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
+<!-- * the second component of the revision number is a decimal unit that is incremented with each revision 
of the manual. -->
+<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
+<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
+<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
+<!-- to V3.0, and so on. -->  
+<!--  This is unmaintained quite a bit so screw this it just makes things
+      ugly and we don't update the manrevision stuff anyway
+    <revhistory>
+      <revision> 
+               <revnumber>&manrevision;</revnumber> 
+               <date>&date;</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>0.1</revnumber> 
+               <date>September 2004</date> 
+               <revdescription> 
+                       <para role="author">Kai Willadsen
+               <email>kaiw itee uq edu au</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>Genius Calculator Manual</revnumber> 
+               <date>August 2004</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+    </revhistory> 
+-->
+
+    <revhistory>
+      <revision> 
+               <revnumber>0.2</revnumber> 
+               <date>September 2016</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl <email>jirka 5z com</email></para>
+               </revdescription> 
+      </revision> 
+    </revhistory>
+    <releaseinfo>This manual describes version 1.0.22 of Genius.
+    </releaseinfo> 
+    <legalnotice> 
+      <title>Comentários</title> 
+      <para>
+             To report a bug or make a suggestion regarding the <application>Genius Mathematics 
Tool</application>
+             application or this manual, please visit the
+             <ulink url="http://www.jirka.org/genius.html"; type="http">Genius
+                     Web page</ulink>
+             or email me at <email>jirka 5z com</email>.
+      </para>
+<!-- Translators may also add here feedback address for translations -->
+    </legalnotice> 
+  </bookinfo> 
+
+<!-- ============= Introduction =============================== -->
+  <chapter id="genius-introduction"> 
+    <title>Introdução</title> 
+    <para>
+       The <application>Genius Mathematics Tool</application> application is a general calculator for use as 
a desktop
+       calculator, an educational tool in mathematics, and is useful even for
+       research.  The language used in <application>Genius Mathematics Tool</application> is designed to be
+       ‘mathematical’ in the sense that it should be ‘what
+       you mean is what you get’.  Of course that is not an
+       entirely attainable goal.  <application>Genius Mathematics Tool</application> features rationals, 
arbitrary
+       precision integers and multiple precision floats using the GMP library.
+       It handles complex numbers using cartesian notation.  It has good
+       vector and matrix manipulation and can handle basic linear algebra.
+       The programming language allows user defined functions, variables and
+       modification of parameters.
+    </para> 
+
+    <para>
+       <application>Genius Mathematics Tool</application> comes in two versions.  One version is the 
graphical GNOME
+       version, which features an IDE style interface and the ability 
+       to plot functions of one or two variables.
+       The command line version does not require GNOME, but of course
+       does not implement any feature that requires the graphical interface.
+    </para> 
+
+    <para>
+           Parts of this manual describe the graphical version of the calculator,
+       but the language is of course the same.  The command line only version
+       lacks the graphing capabilities and all other capabilities that require
+       the graphical user interface.
+    </para>
+
+    <para>
+           Generally, when some feature of the language (function, operator, etc...)
+           is new in some version past 1.0.5, it is mentioned, but
+           below 1.0.5 you would have to look at the NEWS file.
+    </para>
+
+  </chapter>
+
+<!-- =========== Getting Started ============================== -->
+  <chapter id="genius-getting-started"> 
+    <title>Primeiros passos</title> 
+
+    <sect1 id="genius-to-start">
+      <title>To Start <application>Genius Mathematics Tool</application></title>
+      <para>You can start <application>Genius Mathematics Tool</application> in the following ways:
+      </para> 
+      <variablelist>
+        <varlistentry>
+          <term><guimenu>Applications</guimenu> menu</term>
+          <listitem>
+           <para>
+             Depending on your operating system and version, the
+             menu item for <application>Genius Mathematics Tool</application> could appear in a number of 
different
+             places.  It can be in the 
+              <guisubmenu>Education</guisubmenu>, 
+              <guisubmenu>Accessories</guisubmenu>, 
+              <guisubmenu>Office</guisubmenu>, 
+              <guisubmenu>Science</guisubmenu>, or
+             similar submenu, depending on your particular setup.
+             The menu item name you are looking for is
+             <guimenuitem>Genius Math Tool</guimenuitem>.  Once you locate
+             this menu item click on it to start <application>Genius Mathematics Tool</application>.
+            </para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><guilabel>Run</guilabel> dialog</term>
+          <listitem>
+           <para>
+             Depending on your system installation the menu item 
+             may not be available.  If it is not, you can open the Run dialog
+              and execute <command>gnome-genius</command>.
+            </para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>Linha de comando</term>
+         <listitem>
+           <para>
+             To start the GNOME version of <application>Genius Mathematics Tool</application> execute
+             <command>gnome-genius</command> from the command line.
+           </para>
+           <para>
+             To start the command line only version,
+              execute the following command: <command>genius</command>.
+             This version does not include the graphical environment
+             and some functionality such as plotting will not be available.
+            </para> 
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-when-start">
+    <title>When You Start Genius</title>
+      <para>When you start the GNOME edition of
+           <application>Genius Mathematics Tool</application>, the window pictured in <xref 
linkend="mainwindow-fig"/> is displayed.</para>
+
+      <figure id="mainwindow-fig"> 
+        <title><application>Genius Mathematics Tool</application> Window</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+             <phrase>Shows <application>Ferramenta matemática Genius</application> main window. Contains 
titlebar, menubar,
+toolbar and working area. Menubar contains <guilabel>Arquivo</guilabel>,
+<guilabel>Editar</guilabel>, <guilabel>Calculadora</guilabel>,
+<guilabel>Examples</guilabel>,
+<guilabel>Programs</guilabel>,
+<guilabel>Preferências</guilabel>, and <guilabel>Ajuda</guilabel> menus.</phrase> 
+            </textobject> 
+          </mediaobject>
+        </screenshot> 
+      </figure>
+
+      <para>The <application>Genius Mathematics Tool</application> window contains the following elements:
+      </para>
+      <variablelist>
+        <varlistentry>
+          <term>Menubar.</term>
+          <listitem>
+            <para>The menus on the menubar contain all of the commands that you need to work with files in 
<application>Genius Mathematics Tool</application>.
+            The <guilabel>File</guilabel> menu contains items for loading and saving items and creating
+            new programs.  The <guilabel>Load and Run...</guilabel> command does not open a new window for
+            the program, but just executes the program directly.  It is equivalent to the 
<command>load</command>
+            command.</para>
+           <para>
+               The <guilabel>Calculator</guilabel> menu controls the
+calculator engine.  It allows you to run the currently selected program or to
+interrupt the current calculation.  You can also look at the full expression of
+the last answer (useful if the last answer was too large to fit onto the
+console), or you can view a listing of the values of all user defined
+variables.  You can also monitor user variables, which is especially useful
+while a long calculation is running, or to debug a certain program.
+                   Finally the <guilabel>Calculator</guilabel> allows plotting functions using a user 
friendly dialog box.
+          </para>
+          <para>
+                  The <guilabel>Examples</guilabel> menu is a list of example
+                  programs or demos.  If you open the menu, it will load the
+                  example into a new program, which you can run, edit, modify,
+                  and save.  These programs should be well documented
+                  and generally demonstrate either some feature of <application>Genius Mathematics 
Tool</application>
+                  or some mathematical concept.
+          </para>
+          <para>
+                  The <guilabel>Programs</guilabel> menu lists
+                  the currently open programs and allows you to switch
+                  between them.
+          </para>
+          <para>
+           The other menus have same familiar functions as in other applications.
+          </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Toolbar.</term>
+          <listitem>
+            <para>The toolbar contains a subset of the commands that you can access from the menubar.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Working area</term>
+          <listitem>
+            <para>
+               The working area is the primary method of interacting with
+               the application.
+           </para>
+           <para>
+               The working area initially has just the <guilabel>Console</guilabel> tab, which is
+               the main way of interacting with the calculator.  Here you
+               type expressions and the results are immediately returned
+               after you hit the Enter key.
+           </para>
+           <para>
+               Alternatively you can write longer programs and those can
+               appear in separate tabs.  The programs are a set of commands or
+               functions that can be run all at once rather than entering them
+               at the command line.  The programs can be saved in files for later
+               retrieval.
+           </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+<!-- ================ Usage =================================== -->
+  <chapter id="genius-usage"> 
+    <title>Basic Usage</title> 
+
+    <sect1 id="genius-usage-workarea"> 
+      <title>Using the Work Area</title> 
+
+      <para>
+        Normally you interact with the calculator in the <guilabel>Console</guilabel> tab of the
+       work area.  If you are running the text only version then the console
+       will be the only thing that is available to you.  If you want to use
+       <application>Genius Mathematics Tool</application> as a calculator only, just type in your expression 
in the console, it
+       will be evaluated, and the returned value will be printed.
+      </para>
+
+      <para>
+             To evaluate an expression, type it into the <guilabel>Console</guilabel> work area and press 
enter.
+             Expressions are written in a
+language called GEL.  The most simple GEL expressions just looks like
+mathematics.  For example
+<screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
+</screen>
+(Last is the harmonic sum from 1 to 70)
+</para>
+<para>
+To get a list of functions and commands, type:
+<screen><prompt>genius&gt; </prompt><userinput>help</userinput>
+</screen>
+If you wish to get more help on a specific function, type:
+<screen><prompt>genius&gt; </prompt><userinput>help FunctionName</userinput>
+</screen>
+To view this manual, type:
+<screen><prompt>genius&gt; </prompt><userinput>manual</userinput>
+</screen>
+</para>
+<para>
+Suppose you have previously saved some GEL commands as a program to a file and
+you now want to execute them.
+To load this program from the file <filename>path/to/program.gel</filename>,
+type
+<screen><prompt>genius&gt; </prompt><userinput>load path/to/program.gel</userinput>
+</screen>
+<application>Genius Mathematics Tool</application> keeps track of the current directory.
+To list files in the current directory type <command>ls</command>, to change directory
+do <userinput>cd directory</userinput> as in the UNIX command shell.
+</para>
+    </sect1>
+
+    <sect1 id="genius-usage-create-program"> 
+      <title>To Create a New Program </title> 
+      <para>
+             If you wish to enter several more complicated commands, or perhaps write a complicated
+             function using the <link linkend="genius-gel">GEL</link> language, you can create a new
+            program.
+      </para>
+      <para>
+To start writing a new program, choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>New
+Program</guimenuitem></menuchoice>. A new tab will appear in the work area. You
+can write a <link linkend="genius-gel">GEL</link> program in this work area.
+Once you have written your program you can run it by 
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice> (or
+the <guilabel>Run</guilabel> toolbar button).
+This will execute your program and will display any output on the <guilabel>Console</guilabel> tab.
+Executing a program is equivalent of taking the text of the program and
+typing it into the console.  The only difference is that this input is done
+independent of the console and just the output goes onto the console.
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice>
+will always run the currently selected program even if you are on the <guilabel>Console</guilabel>
+tab.  The currently selected program has its tab in bold type.  To select a
+program, just click on its tab.
+      </para>
+      <para>
+To save the program you've just written, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save 
As...</guimenuitem></menuchoice>.
+Similarly as in other programs you can choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice> to save a program that 
already has
+a filename attached to it.  If you have many opened programs you have edited and wish to save you can also 
choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save All Unsaved</guimenuitem></menuchoice>.
+      </para>
+      <para>
+             Programs that have unsaved changes will have a "[+]" next to their filename.  This way you can 
see if the file
+             on disk and the currently opened tab differ in content.  Programs which have not yet had a 
filename associated
+             with them are always considered unsaved and no "[+]" is printed.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-usage-open-program"> 
+      <title>To Open and Run a Program </title> 
+      <para>
+To open a file, choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>.
+A new tab containing the file will appear in the work area. You can use this to
+edit the file.
+      </para>
+      <para>
+To run a program from a file, choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Load and
+Run...</guimenuitem></menuchoice>.  This will run the program without opening it
+in a separate tab.  This is equivalent to the <command>load</command> command.
+      </para>
+      <para>
+             If you have made edits to a file you wish to throw away and want to reload to the version 
that's on disk,
+             you can choose the
+             <menuchoice><guimenu>File</guimenu><guimenuitem>Reload from Disk</guimenuitem></menuchoice> 
menuitem.  This is useful for experimenting
+             with a program and making temporary edits, to run a program, but that you do not intend to keep.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Plotting ============================== -->
+  <chapter id="genius-gel-plotting">
+    <title>Plotagem</title>
+
+    <para>
+      Plotting support is only available in the graphical GNOME version.
+      All plotting accessible from the graphical interface is available from
+      the <guilabel>Create Plot</guilabel> window.  You can access this window by either clicking
+      on the <guilabel>Plot</guilabel> button on the toolbar or selecting <guilabel>Plot</guilabel> from the 
<guilabel>Calculator</guilabel>
+      menu.  You can also access the plotting functionality by using the
+      <link linkend="genius-gel-function-list-plotting">plotting
+      functions</link> of the GEL language.  See 
+      <xref linkend="genius-gel"/> to find out how to
+      enter expressions that Genius understands.
+    </para>
+
+    <sect1 id="genius-line-plots">
+      <title>Line Plots</title>
+      <para>
+       To graph real valued functions of one variable open the <guilabel>Create Plot</guilabel>
+       window.  You can also use the
+        <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> function
+       on the command line (see its documentation).
+      </para>
+      <para>
+       Once you click the <guilabel>Plot</guilabel> button, a window opens up with some notebooks in it.
+       You want to be in the <guilabel>Function line plot</guilabel> notebook
+tab, and inside you want to be on the <guilabel>Functions / Expressions</guilabel> notebook tab.
+See <xref linkend="lineplot-fig"/>.
+      </para>
+
+      <figure id="lineplot-fig"> 
+        <title>Create Plot Window</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Shows the line plotting window.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       Type expressions with <userinput>x</userinput> as
+       the independent variable into the textboxes.  Alternatively you can give names of functions such as
+       <userinput>cos</userinput> rather then having to type <userinput>cos(x)</userinput>.
+       You can graph up to ten functions.  If you make a mistake and Genius cannot
+       parse the input it will signify this with a warning icon on the right of the text
+       input box where the error occurred, as well as giving you an error dialog.
+       You can change the ranges of the dependent and independent variables in the bottom
+       part of the dialog.
+       The <varname>y</varname> (dependent) range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+       checkbox.
+       The names of the variables can also be changed.
+       Pressing the <guilabel>Plot</guilabel> button produces the graph shown in <xref 
linkend="lineplot2-fig"/>.
+      </para>
+      <para>
+             The variables can be renamed by clicking the <guilabel>Change variable names...</guilabel> 
button, which is useful if you wish to print or save the figure and don't want to use the standard
+             names.  Finally you can also avoid printing the legend and the axis labels completely,
+             which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="lineplot2-fig"> 
+        <title>Janela de desenho</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>The graph produced.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       From here you can print out the plot, create encapsulated postscript
+       or a PNG version of the plot or change the zoom.  If the dependent axis was
+       not set correctly you can have Genius fit it by finding out the extrema of
+       the graphed functions.
+      </para>
+
+      <para>
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> function.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-parametric-plots">
+      <title>Parametric Plots</title>
+      <para>
+       In the create plot window, you can also choose the <guilabel>Parametric</guilabel> notebook
+        tab to create two dimensional parametric plots.  This way you can
+       plot a single parametric function.  You can either specify the
+       points as <varname>x</varname> and <varname>y</varname>, or giving a single complex number
+       as a function of the variable <varname>t</varname>.
+       The range of the variable <varname>t</varname> is given explicitly, and the function is sampled
+       according to the given increment.
+       The <varname>x</varname> and <varname>y</varname> range can be set
+       automatically by turning on the <guilabel>Fit dependent axis</guilabel>
+       checkbox, or it can be specified explicitly.
+       See <xref linkend="paramplot-fig"/>.
+      </para>
+
+      <figure id="paramplot-fig"> 
+        <title>Parametric Plot Tab</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Parametric plotting tab in the <guilabel>Criar Traço</guilabel> window.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       An example of a parametric plot is given in
+       <xref linkend="paramplot2-fig"/>.
+       Similar operations can be
+       done on such graphs as can be done on the other line plots.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> or
+        <link linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link> 
function.
+      </para>
+
+      <figure id="paramplot2-fig"> 
+        <title>Parametric Plot</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Parametric plot produced</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+    </sect1>
+
+    <sect1 id="genius-slopefield-plots">
+      <title>Slopefield Plots</title>
+      <para>
+       In the create plot window, you can also choose the <guilabel>Slope field</guilabel> notebook
+        tab to create a two dimensional slope field plot.
+       Similar operations can be
+       done on such graphs as can be done on the other line plots.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link> function.
+      </para>
+
+      <para>
+       When a slope field is active, there is an extra <guilabel>Solver</guilabel> menu available,
+       through which you can bring up the solver dialog.  Here you can have Genius plot specific
+       solutions for the given initial conditions.  You can either specify initial conditions in the dialog,
+       or you can click on the plot directly to specify the initial point.  While the solver dialog
+       is active, the zooming by clicking and dragging does not work.  You have to close the dialog first
+       if you want to zoom using the mouse.
+      </para>
+
+      <para>
+       The solver uses the standard Runge-Kutta method.
+       The plots will stay on the screen until cleared.  The solver will stop whenever it reaches the 
boundary
+       of the plot window.  Zooming does not change the limits or parameters of the solutions,
+       you will have to clear and redraw them with appropriate parameters.
+       You can also use the
+        <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>
+       function to draw solutions from the command line or programs.  
+      </para>
+
+    </sect1>
+
+    <sect1 id="genius-vectorfield-plots">
+      <title>Vectorfield Plots</title>
+      <para>
+       In the create plot window, you can also choose the <guilabel>Vector field</guilabel> notebook
+        tab to create a two dimensional vector field plot.
+       Similar operations can be
+       done on such graphs as can be done on the other line plots.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link> function.
+      </para>
+
+      <para>
+       By default the direction and magnitude of the vector field is shown.
+       To only show direction and not the magnitude, check the appropriate
+       checkbox to normalize the arrow lengths.
+      </para>
+
+      <para>
+       When a vector field is active, there is an extra <guilabel>Solver</guilabel> menu available,
+       through which you can bring up the solver dialog.  Here you can have Genius plot specific
+       solutions for the given initial conditions.  You can either specify initial conditions in the dialog,
+       or you can click on the plot directly to specify the initial point.  While the solver dialog
+       is active, the zooming by clicking and dragging does not work.  You have to close the dialog first
+       if you want to zoom using the mouse.
+      </para>
+
+      <para>
+       The solver uses the standard Runge-Kutta method.
+       The plots will stay on the screen until cleared.
+       Zooming does not change the limits or parameters of the solutions,
+       you will have to clear and redraw them with appropriate parameters.
+       You can also use the
+        <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>
+       function to draw solutions from the command line or programs.  
+      </para>
+
+    </sect1>
+
+    <sect1 id="genius-surface-plots">
+      <title>Surface Plots</title>
+      <para>
+       Genius can also plot surfaces.  Select the <guilabel>Surface plot</guilabel> tab in the
+       main notebook of the <guilabel>Create Plot</guilabel> window.  Here you can specify a single
+       expression that should use either <varname>x</varname> and <varname>y</varname> as real independent 
variables
+       or <varname>z</varname> as a complex variable (where <varname>x</varname> is the real part of 
<varname>z</varname> and <varname>y</varname> is the
+       imaginary part).  For example to plot the modulus of the cosine
+       function for complex parameters,
+       you could enter <userinput>|cos(z)|</userinput>.  This would be
+       equivalent to <userinput>|cos(x+1i*y)|</userinput>.
+       See <xref linkend="surfaceplot-fig"/>.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link> function.
+      </para>
+      <para>
+             The <varname>z</varname> range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+             checkbox.  The variables can be renamed by clicking the <guilabel>Change variable 
names...</guilabel> button, which is useful if you wish to print or save the figure and don't want to use the 
standard
+             names.  Finally you can also avoid printing the legend, which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="surfaceplot-fig"> 
+        <title>Surface Plot</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Modulus of the complex cosine function.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+             In surface mode, left and right arrow keys on your keyboard will rotate the
+             view along the z axis.  Alternatively you can rotate along any axis by
+             selecting <guilabel>Rotate axis...</guilabel> in the <guilabel>View</guilabel> 
+             menu.  The <guilabel>View</guilabel> menu also has a top view mode which rotates the
+             graph so that the z axis is facing straight out, that is, we view the graph from the top
+             and get essentially just the colors that define the values of the function getting a
+             temperature plot of the function.  Finally you should
+             try <guilabel>Start rotate animation</guilabel>, to start a continuous slow rotation.
+             This is especially good if using <application>Genius Mathematics Tool</application> to present 
to an audience.
+      </para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL ====================================== -->
+  <chapter id="genius-gel"> 
+    <title>GEL Basics</title> 
+
+       <para>
+         GEL stands for Genius Extension Language.    It is the language you use
+         to write programs in Genius. A program in GEL is simply an
+         expression that evaluates to a number, a matrix, or another object
+         in GEL.
+         <application>Genius Mathematics Tool</application> can be used as a simple calculator, or as a
+         powerful theoretical research tool.  The syntax is meant to
+         have as shallow of a learning curve as possible, especially for use
+         as a calculator.
+       </para>
+
+    <sect1 id="genius-gel-values">
+      <title>Values</title>
+
+      <para>
+             Values in GEL can be <link linkend="genius-gel-values-numbers">numbers</link>, <link 
linkend="genius-gel-values-booleans">Booleans</link>, or <link 
linkend="genius-gel-values-strings">strings</link>.   GEL also treats 
+<link linkend="genius-gel-matrices">matrices</link> as values.
+             Values can be used in calculations, assigned to variables and returned from functions, among 
other uses.
+      </para>
+
+      <sect2 id="genius-gel-values-numbers">
+        <title>Números</title>
+        <para>
+Integers are the first type of number in GEL. Integers are written in the normal way.
+<programlisting>1234
+</programlisting>
+Hexadecimal and octal numbers can be written using C notation. For example:
+<programlisting>0x123ABC
+01234
+</programlisting>
+Or you can type numbers in an arbitrary base using <literal>&lt;base&gt;\&lt;number&gt;</literal>. Digits 
higher than 10 use letters in a similar way to hexadecimal. For example, a number in base 23 could be written:
+<programlisting>23\1234ABCD
+</programlisting>
+        </para>
+
+        <para>
+The second type of GEL number is rationals. Rationals are simply achieved by dividing two integers. So one 
could write:
+<programlisting>3/4
+</programlisting>
+to get three quarters. Rationals also accept mixed fraction notation. So in order to get one and three 
tenths you could write:
+<programlisting>1 3/10
+</programlisting>
+        </para>
+
+        <para>
+The next type of number is floating point. These are entered in a similar fashion to C notation. You can use 
<literal>E</literal>, <literal>e</literal> or <literal>@</literal> as the exponent delimiter. Note that using 
the exponent delimiter gives a float even if there is no decimal point in the number. Examples:
+<programlisting>1.315
+7.887e77
+7.887e-77
+.3
+0.3
+77e5
+</programlisting>
+       When Genius prints a floating point number it will always append a
+       <computeroutput>.0</computeroutput> even if the number is whole.  This is to indicate that
+       floating point numbers are taken as imprecise quantities.  When a number is written in the
+       scientific notation, it is always a floating point number and thus Genius does not
+       print the <computeroutput>.0</computeroutput>.
+        </para>
+
+        <para>
+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:
+<programlisting>1+2i
+8.01i
+77*e^(1.3i)
+</programlisting>
+        </para>
+
+        <important>
+          <para>
+When entering imaginary numbers, a number must be in front of the <literal>i</literal>. If you use 
<literal>i</literal> by itself, Genius will interpret this as referring to the variable <varname>i</varname>. 
If you need to refer to <literal>i</literal> by itself, use <literal>1i</literal> instead.
+          </para>
+
+          <para>
+In order to use mixed fraction notation with imaginary numbers you must have the mixed fraction in 
parentheses. (i.e., <userinput>(1 2/5)i</userinput>)
+          </para>
+        </important>
+
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-booleans">
+        <title>Booleanos</title>
+        <para>
+Genius also supports native Boolean values. The two Boolean constants are
+defined as <constant>true</constant> and <constant>false</constant>; these
+identifiers can be used like any other variable. You can also use the
+identifiers <constant>True</constant>, <constant>TRUE</constant>,
+<constant>False</constant> and <constant>FALSE</constant> as aliases for the
+above.
+        </para>
+        <para>
+At any place where a Boolean expression is expected, you can use a Boolean
+value or any expression that produces either a number or a Boolean. If
+Genius needs to evaluate a number as a Boolean it will interpret
+0 as <constant>false</constant> and any other number as
+<constant>true</constant>.
+         </para>
+        <para>
+In addition, you can do arithmetic with Boolean values. For example:
+<programlisting>( (1 + true) - false ) * true
+</programlisting>
+is the same as:
+<programlisting>( (true or true) or not false ) and true
+</programlisting>
+Only addition, subtraction and multiplication are supported. If you mix numbers with Booleans in an 
expression then the numbers are converted to Booleans as described above. This means that, for example:
+<programlisting>1 == true
+</programlisting>
+always evaluates to <constant>true</constant> since 1 will be converted to <constant>true</constant> before 
being compared to <constant>true</constant>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-strings">
+        <title>Strings</title>
+        <para>
+Like numbers and Booleans, strings in GEL can be stored as values inside variables and passed to functions. 
You can also concatenate a string with another value using the plus operator. For example:
+<programlisting>a=2+3;"The result is: "+a
+</programlisting>
+will create the string:
+<programlisting>The result is: 5
+</programlisting>
+You can also use C-like escape sequences such as 
<literal>\n</literal>,<literal>\t</literal>,<literal>\b</literal>,<literal>\a</literal> and 
<literal>\r</literal>. To get a <literal>\</literal> or <literal>"</literal> into the string you can quote it 
with a <literal>\</literal>. For example:
+<programlisting>"Slash: \\ Quotes: \" Tabs: \t1\t2\t3"
+</programlisting>
+will make a string:
+<programlisting>Slash: \ Quotes: " Tabs:       1       2       3
+</programlisting>
+Do note however that when a string is returned from a function, escapes are
+quoted, so that the output can be used as input.  If you wish to print the
+string as it is (without escapes), use the 
+<link linkend="gel-function-print"><function>print</function></link>
+or
+<link linkend="gel-function-printn"><function>printn</function></link> functions.
+        </para>
+        <para>
+               In addition, you can use the library function <link 
linkend="gel-function-string"><function>string</function></link> to convert anything to a string. For example:
+<programlisting>string(22)
+</programlisting>
+will return
+<programlisting>"22"
+</programlisting>
+Strings can also be compared with <literal>==</literal> (equal), <literal>!=</literal> (not equal) and 
<literal>&lt;=&gt;</literal> (comparison) operators
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-null">
+        <title>Null</title>
+        <para>
+There is a special value called
+<constant>null</constant>. No operations can be performed on
+it, and nothing is printed when it is returned. Therefore,
+<constant>null</constant> is useful when you do not want output from an
+expression.  The value <constant>null</constant> can be obtained as an expression when you
+type <literal>.</literal>, the constant <constant>null</constant> or nothing.
+By nothing we mean that if you end an expression with
+a separator <literal>;</literal>, it is equivalent to ending it with a
+separator followed by a <constant>null</constant>.
+        </para>
+        <para>
+Example:
+<programlisting>x=5;.
+x=5;
+</programlisting>
+        </para>
+<para>
+Some functions return <constant>null</constant> when no value can be returned
+or an error happened.  Also <constant>null</constant> is used as an empty vector
+or matrix, or an empty reference.
+</para>
+      </sect2>
+
+    </sect1>
+
+    <sect1 id="genius-gel-variables">
+      <title>Using Variables</title>
+
+      <para>
+Syntax:
+<programlisting>VariableName
+</programlisting>
+Example:
+<screen><prompt>genius&gt; </prompt><userinput>e</userinput>
+= 2.71828182846
+</screen>
+      </para>
+
+      <para>
+To evaluate a variable by itself, just enter the name of the variable. This will return the value of the 
variable. You can use a variable anywhere you would normally use a number or string. In addition, variables 
are necessary when defining functions that take arguments (see <xref 
linkend="genius-gel-functions-defining"/>).
+      </para>
+
+      <tip>
+        <title>Using Tab completion</title>
+        <para>
+You can use Tab completion to get Genius to complete variable names for you. Try typing the first few 
letters of the name and pressing <userinput>Tab</userinput>.
+        </para>
+      </tip>
+
+      <important>
+        <title>Variable names are case sensitive</title>
+        <para>
+The names of variables are case sensitive. That means that variables named <varname>hello</varname>, 
<varname>HELLO</varname> and <varname>Hello</varname> are all different variables.
+        </para>
+      </important>
+
+
+      <sect2 id="genius-gel-variables-setting">
+        <title>Setting Variables</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[<identifier> = <value>
+<identifier> := <value>]]>
+</programlisting>
+Example:
+<programlisting>x = 3
+x := 3
+</programlisting>
+        </para>
+
+        <para>
+To assign a value to a variable, use the <literal>=</literal> or <literal>:=</literal> operators. These 
operators set the value of the variable and return the value you set, so you can do things like
+<programlisting>a = b = 5
+</programlisting>
+This will set <varname>b</varname> to 5 and then also set <varname>a</varname> to 5.
+        </para>
+
+        <para>
+The <literal>=</literal> and <literal>:=</literal> operators can both be used to set variables. The 
difference between them is that the <literal>:=</literal> operator always acts as an assignment operator, 
whereas the <literal>=</literal> operator may be interpreted as testing for equality when used in a context 
where a Boolean expression is expected.
+       </para>
+
+       <para>
+         For more information about the scope of variables, that is when are what variables visible, see 
<xref linkend="genius-gel-variables-global"/>.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-variables-built-in">
+        <title>Built-in Variables</title>
+        <para>
+GEL has a number of built-in ‘variables’, such as
+<varname>e</varname>, <varname>pi</varname> or <varname>GoldenRatio</varname>.  These are widely used 
constants with a preset value, and
+they cannot be assigned new values.
+There are a number of other built-in variables.
+See <xref linkend="genius-gel-function-list-constants"/> for a full list.  Note that <varname>i</varname> is 
not by default
+the square root of negative one (the imaginary number), and is undefined to allow its use as a counter.  If 
you wish to write the imaginary number you need to
+use <userinput>1i</userinput>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-previous-result">
+        <title>Previous Result Variable</title>
+        <para>
+The <varname>Ans</varname> and <varname>ans</varname> variables can be used to get the result of the last 
expression. For example, if you had performed some calculation, to add 389 to the result you could do:
+<programlisting>Ans+389
+</programlisting>
+        </para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-functions">
+      <title>Using Functions</title>
+
+      <para>
+Syntax:
+<programlisting>FunctionName(argument1, argument2, ...)
+</programlisting>
+Example:
+<programlisting>Factorial(5)
+cos(2*pi)
+gcd(921,317)
+</programlisting>
+
+To evaluate a function, enter the name of the function, followed by the arguments (if any) to the function 
in parentheses. This will return the result of applying the function to its arguments. The number of 
arguments to the function is, of course, different for each function.
+      </para>
+
+      <para>
+             There are many built-in functions, such as <link 
linkend="gel-function-sin"><function>sin</function></link>, <link 
linkend="gel-function-cos"><function>cos</function></link> and <link 
linkend="gel-function-tan"><function>tan</function></link>. You can use the <link 
linkend="gel-command-help"><function>help</function></link> built-in command to get a list of available 
functions, or see <xref linkend="genius-gel-function-list"/> for a full listing.
+      </para>
+
+      <tip>
+        <title>Using Tab completion</title>
+        <para>
+You can use Tab completion to get Genius to complete function names for you. Try typing the first few 
letters of the name and pressing <userinput>Tab</userinput>.
+        </para>
+      </tip>
+
+      <important>
+        <title>Function names are case sensitive</title>
+        <para>
+The names of functions are case sensitive. That means that functions named <function>dosomething</function>, 
<function>DOSOMETHING</function> and <function>DoSomething</function> are all different functions.
+        </para>
+      </important>
+
+
+      <sect2 id="genius-gel-functions-defining">
+        <title>Defining Functions</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[function <identifier>(<comma separated arguments>) = <function body>
+<identifier> = (`() = <function body>)
+]]></programlisting>
+The <literal>`</literal> is the backquote character, and signifies an anonymous function. By setting it to a 
variable name you effectively define a function.
+        </para>
+
+        <para>
+A function takes zero or more comma separated arguments, and returns the result of the function body. 
Defining your own functions is primarily a matter of convenience; one possible use is to have sets of 
functions defined in GEL files that Genius can load in order to make them available.
+Example:
+<programlisting>function addup(a,b,c) = a+b+c
+</programlisting>
+then <userinput>addup(1,4,9)</userinput> yields 14
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-functions-variable-argument-lists">
+        <title>Variable Argument Lists</title>
+        <para>
+If you include <literal>...</literal> after the last argument name in the function declaration, then Genius 
will allow any number of arguments to be passed in place of that argument. If no arguments were passed then 
that argument will be set to <constant>null</constant>. Otherwise, it will be a horizontal vector containing 
all the arguments. For example:
+<programlisting>function f(a,b...) = b
+</programlisting>
+Then <userinput>f(1,2,3)</userinput> yields <computeroutput>[2,3]</computeroutput>, while 
<userinput>f(1)</userinput> yields a <constant>null</constant>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-functions-passing-functions">
+        <title>Passing Functions to Functions</title>
+
+        <para>
+In Genius, it is possible to pass a function as an argument to another function. This can be done using 
either ‘function nodes’ or anonymous functions.
+        </para>
+
+        <para>
+If you do not enter the parentheses after a function name, instead of being evaluated, the function will 
instead be returned as a ‘function node’. The function node can then be passed to another function.
+Example:
+<programlisting>function f(a,b) = a(b)+1;
+function b(x) = x*x;
+f(b,2)
+</programlisting>
+        </para>
+        <para>
+To pass functions that are not defined,
+you can use an anonymous function (see <xref linkend="genius-gel-functions-defining"/>).  That is, you want 
to pass a function without giving it a name.
+Syntax:
+<programlisting><![CDATA[function(<comma separated arguments>) = <function body>
+`(<comma separated arguments>) = <function body>
+]]></programlisting>
+Example:
+<programlisting>function f(a,b) = a(b)+1;
+f(`(x) = x*x,2)
+</programlisting>
+This will return 5.
+        </para>
+      </sect2>
+
+
+    <sect2 id="genius-gel-functions-operations">
+      <title>Operations on Functions</title>
+      <para>
+             Some functions allow arithmetic operations, and some single argument functions such as <link 
linkend="gel-function-exp"><function>exp</function></link> or <link 
linkend="gel-function-ln"><function>ln</function></link>, to operate on the function. For example,
+<programlisting>exp(sin*cos+4)
+</programlisting>
+will return a function that takes <varname>x</varname> and returns 
<userinput>exp(sin(x)*cos(x)+4)</userinput>.  It is functionally equivalent
+to typing
+<programlisting>`(x) = exp(sin(x)*cos(x)+4)
+</programlisting>
+
+This operation can be useful when quickly defining functions. For example to create a function called 
<varname>f</varname>
+to perform the above operation, you can just type:
+<programlisting>f = exp(sin*cos+4)
+</programlisting>
+It can also be used in plotting. For example, to plot sin squared you can enter:
+<programlisting>LinePlot(sin^2)
+</programlisting>
+      </para>
+
+      <warning>
+        <para>
+Not all functions can be used in this way.  For example, when you use a binary operation the functions must 
take the same number of arguments. 
+        </para>
+      </warning>
+    </sect2>
+
+
+    </sect1>
+
+    <sect1 id="genius-gel-separator">
+      <title>Separator</title>
+      <para>
+             GEL is somewhat different from other languages in how it deals with multiple commands and 
functions.
+             In GEL you must chain commands together with a separator operator.
+That is, if you want to type more than one expression you have to use
+the <literal>;</literal> operator in between the expressions.   This is
+a way in which both expressions are evaluated and the result of the second one (or the last one
+if there is more than two expressions) is returned.
+Suppose you type the following:
+<programlisting>3 ; 5
+</programlisting>
+This expression will yield 5.
+      </para>
+      <para>
+This will require some parenthesizing to make it unambiguous sometimes,
+especially if the <literal>;</literal> is not the top most primitive. This slightly differs from
+other programming languages where the <literal>;</literal> is a terminator of statements, whereas
+in GEL it’s actually a binary operator. If you are familiar with pascal
+this should be second nature. However genius can let you pretend it is a
+terminator to some degree.  If a <literal>;</literal> is found at the end of a parenthesis or a block,
+genius will append a null to it as if you would have written
+<userinput>;null</userinput>.
+This is useful in case you do not want to return a value from say a loop,
+or if you handle the return differently. Note that it will slightly slow down
+the code if it is executed too often as there is one more operator involved.
+      </para>
+      <para>
+             If you are typing expressions in a program you do not have to add a semicolon.  In this case
+             genius will simply print the return value whenever it executes the expression.  However, do 
note that if you are defining a
+             function, the body of the function is a single expression.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comments">
+      <title>Comments</title>
+      <para>
+             GEL is similar to other scripting languages in that <literal>#</literal> denotes
+             a comment, that is text that is not meant to be evaluated.  Everything beyond the
+             pound sign till the end of line will just be ignored.  For example,
+<programlisting># This is just a comment
+# every line in a comment must have its own pound sign
+# in the next line we set x to the value 123
+x=123;
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-modular-evaluation">
+      <title>Modular Evaluation</title>
+      <para>
+             Genius implements modular arithmetic.
+To use it you just add "mod &lt;integer&gt;" after
+the expression.  Example:
+<userinput>2^(5!) * 3^(6!) mod 5</userinput>
+It could be possible to do modular arithmetic by computing with integers and then modding in the end with
+the <literal>%</literal> operator, which simply gives the remainder, but
+that may be time consuming if not impossible when working with larger numbers.
+For example, <userinput>10^(10^10) % 6</userinput> will simply not work (the exponent
+will be too large), while
+<userinput>10^(10^10) mod 6</userinput> is instantaneous.  The first expression first tries to compute the 
integer
+<userinput>10^(10^10)</userinput> and then find remainder after division by 6, while the second expression 
evaluates
+everything modulo 6 to begin with.
+      </para>
+      <para>
+You can calculate the inverses of numbers mod some integer by just using
+rational numbers (of course the inverse has to exist).
+Examples:
+<programlisting>10^-1 mod 101
+1/10 mod 101</programlisting>
+You can also do modular evaluation with matrices including taking inverses,
+powers and dividing.
+Example:
+<programlisting>A = [1,2;3,4]
+B = A^-1 mod 5
+A*B mod 5</programlisting>
+This should yield the identity matrix as B will be the inverse of A mod 5.
+      </para>
+      <para>
+Some functions such as
+<link linkend="gel-function-sqrt"><function>sqrt</function></link> or
+<link linkend="gel-function-log"><function>log</function></link>
+work in a different way when in modulo mode.  These will then work like their
+discrete versions working within the ring of integers you selected.  For
+example:
+<programlisting>genius&gt; sqrt(4) mod 7
+=
+[2, 5]
+genius&gt; 2*2 mod 7
+= 4</programlisting>
+       <function>sqrt</function> will actually return all the possible square
+       roots.
+      </para>
+      <para>
+             Do not chain mod operators, simply place it at the end of the computation, all computations in 
the expression on the left
+             will be carried out in mod arithmetic.  If you place a mod inside
+             a mod, you will get unexpected results.  If you simply want to
+             mod a single number and control exactly when remainders are
+             taken, best to use the <literal>%</literal> operator.  When you
+             need to chain several expressions in modular arithmetic with
+             different divisors, it may be best to just split up the expression into several and use
+             temporary variables to avoid a mod inside a mod.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-operator-list">
+      <title>List of GEL Operators</title>
+
+      <para>
+             Everything in GEL is really just an expression.  Expressions are stringed together with
+             different operators.  As we have seen, even the separator is simply a binary operator
+             in GEL.  Here is a list of the operators in GEL. 
+      </para>
+
+      <variablelist>
+        <varlistentry>
+         <term><userinput>a;b</userinput></term>
+         <listitem>
+           <para>
+             The separator, just evaluates both
+            <varname>a</varname> and
+            <varname>b</varname>,
+            but returns only the result of
+            <varname>b</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a=b</userinput></term>
+         <listitem>
+           <para>
+            The assignment operator.  This assigns <varname>b</varname> to
+<varname>a</varname> (<varname>a</varname> must be a valid <link linkend="genius-gel-lvalues">lvalue</link>) 
(note however that this operator
+may be translated to <literal>==</literal> if used in a place where boolean
+expression is expected)
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:=b</userinput></term>
+         <listitem>
+           <para>
+            The assignment operator.  Assigns <varname>b</varname> to
+<varname>a</varname> (<varname>a</varname> must be a valid <link 
linkend="genius-gel-lvalues">lvalue</link>).  This is
+different from <literal>=</literal> because it never gets translated to a
+<literal>==</literal>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>|a|</userinput></term>
+         <listitem>
+           <para>
+                  Absolute value.
+                  In case the expression is a complex number the result will be the modulus
+(distance from the origin).  For example:
+<userinput>|3 * e^(1i*pi)|</userinput>
+returns 3.
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a^b</userinput></term>
+         <listitem>
+           <para>
+             Exponentiation, raises <varname>a</varname> to the <varname>b</varname>th power.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.^b</userinput></term>
+         <listitem>
+           <para>
+            Element by element exponentiation.  Raise each element of a matrix
+            <varname>a</varname> to the <varname>b</varname>th power.  Or if
+            <varname>b</varname> is a matrix of the same size as
+            <varname>a</varname>, then do the operation element by element.
+            If <varname>a</varname> is a number and <varname>b</varname> is a
+            matrix then it creates matrix of the same size as
+            <varname>b</varname> with <varname>a</varname> raised to all the
+            different powers in <varname>b</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a+b</userinput></term>
+         <listitem>
+           <para>
+             Addition.  Adds two numbers, matrices, functions or strings.  If
+            you add a string to anything the result will just be a string.  If one is
+            a square matrix and the other a number, then the number is multiplied by
+            the identity matrix.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a-b</userinput></term>
+         <listitem>
+           <para>
+             Subtraction.  Subtract two numbers, matrices or functions.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a*b</userinput></term>
+         <listitem>
+           <para>
+             Multiplication.  This is the normal matrix multiplication.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.*b</userinput></term>
+         <listitem>
+           <para>
+            Element by element multiplication if <varname>a</varname> and
+            <varname>b</varname> are matrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a/b</userinput></term>
+         <listitem>
+           <para>
+                  Division.  When <varname>a</varname> and <varname>b</varname> are just numbers
+                  this is the normal division.  When they are matrices, then this is
+                  equivalent to <userinput>a*b^-1</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a./b</userinput></term>
+         <listitem>
+           <para>
+                  Element by element division.  Same as <userinput>a/b</userinput> for
+                  numbers, but operates element by element on matrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a\b</userinput></term>
+         <listitem>
+           <para>
+             Back division.  That is this is the same as <userinput>b/a</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.\b</userinput></term>
+         <listitem>
+           <para>
+             Element by element back division.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a%b</userinput></term>
+         <listitem>
+           <para>
+            The mod operator.  This does not turn on the <link 
linkend="genius-gel-modular-evaluation">modular mode</link>, but
+             just returns the remainder of integer division
+             <userinput>a/b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.%b</userinput></term>
+         <listitem>
+           <para>
+             Element by element mod operator.  Returns the remainder
+            after element by element integer division
+            <userinput>a./b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a mod b</userinput></term>
+         <listitem>
+           <para>
+             Modular evaluation operator.  The expression <varname>a</varname>
+            is evaluated modulo <varname>b</varname>.  See <xref linkend="genius-gel-modular-evaluation"/>.
+            Some functions and operators behave differently modulo an integer.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!</userinput></term>
+         <listitem>
+           <para>
+             Factorial operator.  This is like
+            <userinput>1*...*(n-2)*(n-1)*n</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!!</userinput></term>
+         <listitem>
+           <para>
+             Double factorial operator.  This is like
+            <userinput>1*...*(n-4)*(n-2)*n</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a==b</userinput></term>
+         <listitem>
+           <para>
+            Equality operator.
+            Returns <constant>true</constant> or <constant>false</constant>
+            depending on <varname>a</varname> and <varname>b</varname> being equal or not.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!=b</userinput></term>
+         <listitem>
+           <para>
+             Inequality operator,
+            returns <constant>true</constant> if <varname>a</varname> does not
+            equal <varname>b</varname> else returns <constant>false</constant>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;&gt;b</userinput></term>
+         <listitem>
+           <para>
+             Alternative inequality operator,
+            returns <constant>true</constant> if <varname>a</varname> does not
+            equal <varname>b</varname> else returns <constant>false</constant>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>
+             Less than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt;= b &lt;= c</userinput> (can
+            also be combined with the less than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>
+             Greater than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt;= b &gt;= c</userinput>
+            (and they can also be combined with the greater than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a&lt;b</userinput></term>
+         <listitem>
+           <para>
+             Less than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt; b &lt; c</userinput>
+            (they can also be combined with the less than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;b</userinput></term>
+         <listitem>
+           <para>
+             Greater than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt; b &gt; c</userinput>
+            (they can also be combined with the greater than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=&gt;b</userinput></term>
+         <listitem>
+           <para>
+            Comparison operator.  If <varname>a</varname> is equal to
+            <varname>b</varname> it returns 0, if <varname>a</varname> is less
+            than <varname>b</varname> it returns -1 and if
+            <varname>a</varname> is greater than <varname>b</varname> it
+            returns 1.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a and b</userinput></term>
+         <listitem>
+           <para>
+                  Logical and.  Returns true if both
+                  <varname>a</varname> and <varname>b</varname> are true,
+                  else returns false.  If given numbers, nonzero numbers
+                  are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a or b</userinput></term>
+         <listitem>
+           <para>
+             Logical or.
+            Returns true if either
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a xor b</userinput></term>
+         <listitem>
+           <para>
+             Logical xor.
+            Returns true if exactly one of
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>not a</userinput></term>
+         <listitem>
+           <para>
+                  Logical not.  Returns the logical negation of <varname>a</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>-a</userinput></term>
+         <listitem>
+           <para>
+             Negation operator.  Returns the negative of a number or a matrix (works element-wise on a 
matrix).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>&amp;a</userinput></term>
+         <listitem>
+           <para>
+             Variable referencing (to pass a reference to a variable).
+            See <xref linkend="genius-gel-references"/>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>*a</userinput></term>
+         <listitem>
+           <para>
+             Variable dereferencing (to access a referenced variable).
+            See <xref linkend="genius-gel-references"/>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a'</userinput></term>
+         <listitem>
+           <para>
+                  Matrix conjugate transpose.  That is, rows and columns get swapped and we take complex 
conjugate of all entries.  That is
+                  if the i,j element of <varname>a</varname> is x+iy, then the j,i element of 
<userinput>a'</userinput> is x-iy.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.'</userinput></term>
+         <listitem>
+           <para>
+             Matrix transpose, does not conjugate the entries.  That is, 
+            the i,j element of <varname>a</varname>  becomes the j,i element of <userinput>a.'</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,c)</userinput></term>
+         <listitem>
+           <para>
+            Get element of a matrix in row <varname>b</varname> and column
+            <varname>c</varname>.   If <varname>b</varname>,
+            <varname>c</varname> are vectors, then this gets the corresponding
+            rows, columns or submatrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,)</userinput></term>
+         <listitem>
+           <para>
+             Get row of a matrix (or multiple rows if <varname>b</varname> is a vector).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,:)</userinput></term>
+         <listitem>
+           <para>
+             Same as above.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(,c)</userinput></term>
+         <listitem>
+           <para>
+            Get column of a matrix (or columns if <varname>c</varname> is a
+            vector).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(:,c)</userinput></term>
+         <listitem>
+           <para>
+             Same as above.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b)</userinput></term>
+         <listitem>
+           <para>
+             Get an element from a matrix treating it as a vector.  This will
+            traverse the matrix row-wise.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b</userinput></term>
+         <listitem>
+           <para>
+             Build a vector from <varname>a</varname> to <varname>b</varname> (or specify a row, column 
region for the <literal>@</literal> operator).  For example to get rows 2 to 4 of matrix <varname>A</varname> 
we could do
+            <programlisting>A@(2:4,)
+            </programlisting>
+            as <userinput>2:4</userinput> will return a vector
+            <userinput>[2,3,4]</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b:c</userinput></term>
+         <listitem>
+           <para>
+            Build a vector from <varname>a</varname> to <varname>c</varname>
+            with <varname>b</varname> as a step.  That is for example
+            <programlisting>genius&gt; 1:2:9
+=
+`[1, 3, 5, 7, 9]
+</programlisting>
+           </para>
+          <para>
+            When the numbers involved are floating point numbers, for example
+            <userinput>1.0:0.4:3.0</userinput>, the output is what is expected
+            even though adding 0.4 to 1.0 five times is actually just slightly
+            more than 3.0 due to the way that floating point numbers are
+            stored in base 2 (there is no 0.4, the actual number stored is
+            just ever so slightly bigger).  The way this is handled is the
+            same as in the for, sum, and prod loops.  If the end is within
+            <userinput>2^-20</userinput> times the step size of the endpoint,
+            the endpoint is used and we assume there were roundoff errors.
+            This is not perfect, but it handles the majority of the cases.
+            This check is done only from version 1.0.18 onwards, so execution
+            of your code may differ on older versions.  If you want to avoid
+            dealing with this issue, use actual rational numbers, possibly
+            using the <function>float</function> if you wish to get floating
+            point numbers in the end.  For example
+            <userinput>1:2/5:3</userinput> does the right thing and
+            <userinput>float(1:2/5:3)</userinput> even gives you floating
+            point numbers and is ever so slightly more precise than
+            <userinput>1.0:0.4:3.0</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>(a)i</userinput></term>
+         <listitem>
+           <para>
+            Make <varname>a</varname> into an imaginary number (multiply <varname>a</varname> by the
+            imaginary).  Normally the imaginary number <varname>i</varname> is
+            written as <userinput>1i</userinput>.  So the above is equal to
+            <programlisting>(a)*1i
+            </programlisting>
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>`a</userinput></term>
+         <listitem>
+           <para>
+             Quote an identifier so that it doesn't get evaluated.  Or
+            quote a matrix so that it doesn't get expanded.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a swapwith b</userinput></term>
+         <listitem>
+           <para>
+                  Swap value of <varname>a</varname> with the value
+                  of <varname>b</varname>.  Currently does not operate
+                  on ranges of matrix elements.
+                  It returns <constant>null</constant>.
+                  Available from version 1.0.13.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a</userinput></term>
+         <listitem>
+           <para>
+                  Increment the variable <varname>a</varname> by 1.  If
+                  <varname>a</varname> is a matrix, then increment each element.
+                  This is equivalent to <userinput>a=a+1</userinput>, but 
+                  it is somewhat faster.  It returns <constant>null</constant>.
+                  Available from version 1.0.13.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a by b</userinput></term>
+         <listitem>
+           <para>
+                  Increment the variable <varname>a</varname> by <varname>b</varname>.  If
+                  <varname>a</varname> is a matrix, then increment each element.
+                  This is equivalent to <userinput>a=a+b</userinput>, but 
+                  it is somewhat faster.  It returns <constant>null</constant>.
+                  Available from version 1.0.13.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+
+<note>
+<para>
+The @() operator makes the : operator most useful.  With this you can specify regions of a matrix.  So that 
a@(2:4,6) is the rows 2,3,4 of the column 6. Or a@(,1:2) will get you the first two columns of a matrix. You 
can also assign to the @() operator, as long as the right value is a matrix that matches the region in size, 
or if it is any other type of value.
+</para>
+</note>
+
+<note>
+<para>
+The comparison operators (except for the &lt;=&gt; operator, which behaves normally), are not strictly 
binary operators, they can in fact be grouped in the normal mathematical way, e.g.: (1&lt;x&lt;=y&lt;5) is a 
legal boolean expression and means just what it should, that is (1&lt;x and x≤y and y&lt;5)
+</para>
+</note>
+
+<note>
+<para>
+The unitary minus operates in a different fashion depending on where it
+appears.  If it appears before a number it binds very closely, if it appears in
+front of an expression it binds less than the power and factorial operators.
+So for example <userinput>-1^k</userinput> is really <userinput>(-1)^k</userinput>,
+but <userinput>-foo(1)^k</userinput> is really <userinput>-(foo(1)^k)</userinput>.  So
+be careful how you use it and if in doubt, add parentheses.
+</para>
+</note>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL Programming ========================== -->
+  <chapter id="genius-gel-programming">
+    <title>Programming with GEL</title>
+
+    <sect1 id="genius-gel-conditionals">
+      <title>Conditionals</title>
+      <para>
+Syntax:
+<programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
+]]></programlisting>
+If <literal>else</literal> is omitted, then if the <literal>expression1</literal> yields 
<constant>false</constant> or 0, <literal>NULL</literal> is returned.
+      </para>
+      <para>
+Examples:
+<programlisting><![CDATA[if(a==5)then(a=a-1)
+if b<a then b=a
+if c>0 then c=c-1 else c=0
+a = ( if b>0 then b else 1 )
+]]></programlisting>
+Note that <literal>=</literal> will be translated to <literal>==</literal> if used inside the expression for 
<literal>if</literal>, so
+<programlisting>if a=5 then a=a-1
+</programlisting>
+will be interpreted as:
+<programlisting>if a==5 then a:=a-1
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-loops">
+      <title>Loops</title>
+
+      <sect2 id="genius-gel-loops-while">
+        <title>While Loops</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[while <expression1> do <expression2>
+until <expression1> do <expression2>
+do <expression2> while <expression1>
+do <expression2> until <expression1>]]></programlisting>
+
+       These are similar to other languages.  However, as in GEL it is simply an expression that must have 
some return value, these
+       constructs will simply return the result of the last iteration or <literal>NULL</literal> if no 
iteration was done.  In the boolean expression, <literal>=</literal> is translated into <literal>==</literal> 
just as for the <literal>if</literal> statement.
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-for">
+        <title>For Loops</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
+for <identifier> = <from> to <to> by <increment> do <body>]]></programlisting>
+
+Loop with identifier being set to all values from <literal>&lt;from&gt;</literal> to 
<literal>&lt;to&gt;</literal>, optionally using an increment other than 1. These are faster, nicer and more 
compact than the normal loops such as above, but less flexible. The identifier must be an identifier and 
can't be a dereference. The value of identifier is the last value of identifier, or 
<literal>&lt;from&gt;</literal> if body was never evaluated. The variable is guaranteed to be initialized 
after a loop, so you can safely use it.  Also the <literal>&lt;from&gt;</literal>, 
<literal>&lt;to&gt;</literal> and <literal>&lt;increment&gt;</literal> must be non complex values. The 
<literal>&lt;to&gt;</literal> is not guaranteed to be hit, but will never be overshot, for example the 
following prints out odd numbers from 1 to 19:
+<programlisting>for i = 1 to 20 by 2 do print(i)
+</programlisting>
+        </para>
+        <para>
+               When one of the values is a floating point number, then the
+               final check is done to within 2^-20 of the step size.  That is,
+               even if we overshoot by 2^-20 times the "by" above, we still execute the last
+               iteration.  This way 
+<programlisting>for x = 0 to 1 by 0.1 do print(x)
+</programlisting>
+does the expected even though adding 0.1 ten times becomes just slightly more than 1.0 due to the way that 
floating point numbers
+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
+the majority of the cases.  If you want to avoid dealing with this issue, use actual rational numbers for 
example:
+<programlisting>for x = 0 to 1 by 1/10 do print(x)
+</programlisting>
+               This check is done only from version 1.0.16 onwards, so execution of your code may differ on 
older versions.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-foreach">
+        <title>Foreach Loops</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting>
+
+                       For each element in the matrix, going row by row from left to right we execute the 
body
+                      with the identifier set to the current element. To
+print numbers 1,2,3 and 4 in this order you could do:
+<programlisting>for n in [1,2:3,4] do print(n)
+</programlisting>
+If you wish to run through the rows and columns of a matrix, you can use
+the RowsOf and ColumnsOf functions, which return a vector of the rows or
+columns of the matrix.  So,
+<programlisting>for n in RowsOf ([1,2:3,4]) do print(n)
+</programlisting>
+will print out [1,2] and then [3,4].
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-break-continue">
+        <title>Break and Continue</title>
+        <para>
+You can also use the <literal>break</literal> and <literal>continue</literal> commands in loops. The 
continue <literal>continue</literal> command will restart the current loop at its next iteration, while the 
<literal>break</literal> command exits the current loop.
+<programlisting><![CDATA[while(<expression1>) do (
+  if(<expression2>) break
+  else if(<expression3>) continue;
+  <expression4>
+)
+]]></programlisting>
+        </para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-sums-products">
+      <title>Sums and Products</title>
+      <para>
+Syntax:
+<programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
+sum <identifier> = <from> to <to> by <increment> do <body>
+sum <identifier> in <matrix> do <body>
+prod <identifier> = <from> to <to> do <body>
+prod <identifier> = <from> to <to> by <increment> do <body>
+prod <identifier> in <matrix> do <body>]]></programlisting>
+
+If you substitute <literal>for</literal> with <literal>sum</literal> or <literal>prod</literal>, then you 
will get a sum or a product instead of a <literal>for</literal> loop. Instead of returning the last value, 
these will return the sum or the product of the values respectively.
+      </para>
+      <para>
+If no body is executed (for example <userinput>sum i=1 to 0 do ...</userinput>) then <literal>sum</literal> 
returns 0 and <literal>prod</literal> returns 1 as is the standard convention.
+      </para>
+      <para>
+             For floating point numbers the same roundoff error protection is done as in the for loop.
+            See <xref linkend="genius-gel-loops-for"/>.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comparison-operators">
+      <title>Comparison Operators</title>
+      <para>
+       The following standard comparison operators are supported in GEL and have the obvious meaning:
+       <literal>==</literal>, <literal>&gt;=</literal>,
+       <literal>&lt;=</literal>, <literal>!=</literal>,
+       <literal>&lt;&gt;</literal>, <literal>&lt;</literal>,
+       <literal>&gt;</literal>.  They return <constant>true</constant> or
+       <constant>false</constant>.
+       The operators
+       <literal>!=</literal> and <literal>&lt;&gt;</literal> are the same
+       thing and mean "is not equal to".
+       GEL also supports the operator
+       <literal>&lt;=&gt;</literal>, which returns -1 if left side is
+       smaller, 0 if both sides are equal, 1 if left side is larger.
+      </para>
+
+      <para>
+       Normally <literal>=</literal> is translated to <literal>==</literal> if
+       it happens to be somewhere where GEL is expecting a condition such as
+       in the if condition.  For example
+       <programlisting>if a=b then c
+if a==b then c
+</programlisting>
+       are the same thing in GEL.  However you should really use
+       <literal>==</literal> or <literal>:=</literal> when you want to compare
+       or assign respectively if you want your code to be easy to read and
+       to avoid mistakes.
+      </para>
+
+      <para>
+       All the comparison operators (except for the
+       <literal>&lt;=&gt;</literal> operator, which
+       behaves normally), are not strictly binary operators, they can in fact
+       be grouped in the normal mathematical way, e.g.:
+       (<literal>1&lt;x&lt;=y&lt;5</literal>) is
+       a legal boolean expression and means just what it should, that is
+       (1&lt;x and x≤y and y&lt;5)
+      </para>
+      <para>
+       To build up logical expressions use the words <literal>not</literal>,
+       <literal>and</literal>, <literal>or</literal>, <literal>xor</literal>.
+       The operators <literal>or</literal> and <literal>and</literal> are
+special beasts as they evaluate their arguments one by one, so the usual trick
+for conditional evaluation works here as well. For example, <literal>1 or a=1</literal> will not set
+<literal>a=1</literal> since the first argument was true.
+      </para>
+    </sect1>
+
+      <sect1 id="genius-gel-variables-global">
+        <title>Global Variables and Scope of Variables</title>
+       <para>
+         GEL is a
+         <ulink url="https://en.wikipedia.org/wiki/Scope_%28programming%29";>
+         dynamically scoped language</ulink>.  We will explain what this
+         means below.  That is, normal variables and functions are dynamically
+         scoped.  The exception are 
+         <link linkend="genius-gel-parameters">parameter variables</link>,
+         which are always global.
+       </para>
+       <para>
+         Like most programming languages, GEL has different types
+         of variables.  Normally when a variable is defined in a function,
+         it is visible from that function and from all functions that are
+         called (all higher contexts).  For example, suppose a function
+         <function>f</function> defines a variable <varname>a</varname>
+         and then calls function <function>g</function>.  Then
+         function <function>g</function> can reference
+         <varname>a</varname>.  But once <function>f</function> returns,
+         the variable <varname>a</varname> goes out of scope.
+         For example, the following code will print out 5.
+         The function <function>g</function> cannot be called on the
+         top level (outside <function>f</function> as <varname>a</varname>
+         will not be defined).
+<programlisting>function f() = (a:=5; g());
+function g() = print(a);
+f();
+</programlisting>
+        </para>
+        <para>
+         If you define a variable inside a function it will override
+         any variables defined in calling functions.  For example,
+         we modify the above code and write:
+<programlisting>function f() = (a:=5; g());
+function g() = print(a);
+a:=10;
+f();
+</programlisting>
+         This code will still print out 5.  But if you call
+         <function>g</function> outside of <function>f</function> then
+         you will get a printout of 10.  Note that
+         setting <varname>a</varname>
+         to 5 inside <function>f</function> does not change
+         the value of <varname>a</varname> at the top (global) level,
+         so if you now check the value of <varname>a</varname> it will
+         still be 10.
+        </para>
+       <para>
+         Function arguments are exactly like variables defined inside
+         the function, except that they are initialized with the value
+         that was passed to the function.  Other than this point, they are
+         treated just like all other variables defined inside the
+         function.
+       </para>
+       <para>
+         Functions are treated exactly like variables.  Hence you can
+         locally redefine functions.  Normally (on the top level) you
+         cannot redefine protected variables and functions.  But locally
+         you can do this.  Consider the following session:
+<screen><prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
+= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
+<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
+= 1e20
+</screen>
+       </para>
+       <para>
+         Functions and variables defined at the top level are
+         considered global.  They are visible from anywhere.  As we
+         said the following function <function>f</function>
+         will not change the value of <varname>a</varname> to 5.
+<programlisting>a=6;
+function f() = (a:=5);
+f();
+</programlisting>
+         Sometimes, however, it is necessary to set
+a global variable from inside a function.  When this behavior is needed,
+use the
+<link linkend="gel-function-set"><function>set</function></link> function. Passing a string or a quoted 
identifier to
+this function sets the variable globally (on the top level).
+For example, to set
+<varname>a</varname> to the value 3 you could call:
+<programlisting>set(`a,3)
+</programlisting>
+or:
+<programlisting>set("a",3)
+</programlisting>
+        </para>
+        <para>
+         The <function>set</function> function always sets the toplevel
+         global.  There is no way to set a local variable in some function
+         from a subroutine.  If this is required, must use passing by
+         reference.
+        </para>
+       <para>
+               See also the
+               <link linkend="gel-function-SetElement"><function>SetElement</function></link> and
+               <link linkend="gel-function-SetVElement"><function>SetVElement</function></link> functions.
+       </para>
+       <para>
+         So to recap in a more technical language:  Genius operates with
+         different numbered contexts.  The top level is the context 0
+         (zero).  Whenever a function is entered, the context is raised,
+         and when the function returns the context is lowered.  A function
+         or a variable is always visible from all higher numbered contexts.
+         When a variable was defined in a lower numbered context, then
+         setting this variable has the effect of creating a new local
+         variable in the current context number and this variable
+         will now be visible from all higher numbered contexts.
+       </para>
+       <para>
+         There are also true local variables that are not seen from
+         anywhere but the current context.  Also when returning functions
+         by value it may reference variables not visible from higher context
+         and this may be a problem.  See the sections
+         <link linkend="genius-gel-true-local-variables">True
+         Local Variables</link> and
+         <link linkend="genius-gel-returning-functions">Returning
+         Functions</link>.
+       </para>
+      </sect1>
+
+      <sect1 id="genius-gel-parameters">
+        <title>Parameter variables</title>
+       <para>
+         As we said before, there exist special variables called parameters
+         that exist in all scopes.  To declare a parameter called
+         <varname>foo</varname> with the initial value 1, we write
+<programlisting><![CDATA[parameter foo = 1
+]]></programlisting>
+         From then on, <varname>foo</varname> is a strictly global variable.
+         Setting <varname>foo</varname> inside any function will modify the
+         variable in all contexts, that is, functions do not have a private
+         copy of parameters.
+        </para>
+        <para>
+         When you undefine a parameter using the
+         <link linkend="gel-function-undefine">
+         <function>undefine</function></link> function, it stops being
+         a parameter.
+        </para>
+        <para>
+         Some parameters are built-in and modify the behavior of genius.
+        </para>
+      </sect1>
+
+    <sect1 id="genius-gel-returning">
+      <title>Returning</title>
+       <para>
+         Normally a function is one or several expressions separated by a
+semicolon, and the value of the last expression is returned.  This is fine for
+simple functions, but
+sometimes you do not want a function to return the last thing calculated. You may, for example, want to 
return from a middle of a function. In this case, you can use the <literal>return</literal> keyword. 
<literal>return</literal> takes one argument, which is the value to be returned.
+      </para>
+      <para>
+Example:
+<programlisting><![CDATA[function f(x) = (
+  y=1;
+  while true do (
+    if x>50 then return y;
+    y=y+1;
+    x=x+1
+  )
+)
+]]></programlisting>
+      </para>
+    </sect1>
+
+
+    <sect1 id="genius-gel-references">
+      <title>References</title>
+      <para>
+       It may be necessary for some functions to return more than one value.
+       This may be accomplished by returning a vector of values, but many
+       times it is convenient to use passing a reference to a variable.
+       You pass a reference to a variable to a function, and the function
+       will set the variable for you using a dereference.  You do not have
+       to use references only for this purpose, but this is their main use.
+      </para>
+      <para>
+       When using functions that return values through references
+       in the argument list, just pass the variable name with an ampersand.
+       For example the following code will compute an eigenvalue of a matrix
+       <varname>A</varname> with initial eigenvector guess
+       <varname>x</varname>, and store the computed eigenvector
+       into the variable named <varname>v</varname>:
+<programlisting><![CDATA[RayleighQuotientIteration (A,x,0.001,100,&v)
+]]></programlisting>
+      </para>
+      <para>
+The details of how references work and the syntax is similar to the C language.
+The operator
+<literal>&amp;</literal> references a variable
+and <literal>*</literal> dereferences a variable. Both can only be applied to an identifier,
+so <literal>**a</literal> is not a legal expression in GEL.
+      </para>
+      <para>
+References are best explained by an example:
+<programlisting><![CDATA[a=1;
+b=&a;
+*b=2;
+]]></programlisting>
+now <varname>a</varname> contains 2.  You can also reference functions:
+<programlisting><![CDATA[function f(x) = x+1;
+t=&f;
+*t(3)
+]]></programlisting>
+gives us 4.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-lvalues">
+      <title>Lvalues</title>
+      <para>
+       An lvalue is the left hand side of an assignment. In other words, an
+       lvalue is what you assign something to.  Valid lvalues are:
+<variablelist>
+  <varlistentry>
+    <term><userinput>a</userinput></term>
+    <listitem>
+      <para>
+       Identifier.  Here we would be setting the variable of name
+       <varname>a</varname>.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>*a</userinput></term>
+    <listitem>
+      <para>
+       Dereference of an identifier.  This will set whatever variable
+       <varname>a</varname> points to.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>a@(&lt;region&gt;)</userinput></term>
+    <listitem>
+      <para>
+       A region of a matrix.  Here the region is specified normally as with
+       the regular @() operator, and can be a single entry, or an entire
+       region of the matrix.
+      </para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+      </para>
+      <para>
+Examples:
+<programlisting>a:=4
+*tmp := 89
+a@(1,1) := 5
+a@(4:8,3) := [1,2,3,4,5]'
+</programlisting>
+Note that both <literal>:=</literal> and <literal>=</literal> can be used
+interchangeably.  Except if the assignment appears in a condition.
+It is thus always safer to just use
+<literal>:=</literal> when you mean assignment, and <literal>==</literal>
+when you mean comparison.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <chapter id="genius-gel-programming-advanced">
+    <title>Advanced Programming with GEL</title>
+
+    <sect1 id="genius-gel-error-handling">
+      <title>Error Handling</title>
+      <para>
+If you detect an error in your function, you can bail out of it. For normal
+errors, such as wrong types of arguments, you can fail to compute the function
+by adding the statement <literal>bailout</literal>. If something went
+really wrong and you want to completely kill the current computation, you can
+use <literal>exception</literal>.
+      </para>
+      <para>
+       For example if you want to check for arguments in your function.  You
+could use the following code.
+<programlisting>function f(M) = (
+  if not IsMatrix (M) then (
+    error ("M not a matrix!");
+    bailout
+  );
+  ...
+)
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-toplevel-syntax">
+      <title>Toplevel Syntax</title>
+      <para>
+       The syntax is slightly different if you enter statements on
+       the top level versus when they are inside parentheses or
+       inside functions.  On the top level, enter acts the same as if
+       you press return on the command line.  Therefore think of programs
+       as just a sequence of lines as if they were entered on the command line.
+       In particular, you do not need to enter the separator at the end of the
+       line (unless it is of course part of several statements inside
+       parentheses).  When a statement does not end with a separator on the
+       top level, the result is printed after being executed.
+      </para>
+      <para>
+       For example,
+       <programlisting>function f(x)=x^2
+f(3)
+</programlisting>
+       will print first the result of setting a function (a representation of
+       the function, in this case <computeroutput>(`(x)=(x^2))</computeroutput>)
+       and then the expected 9.  To avoid this, enter a separator
+       after the function definition.
+       <programlisting>function f(x)=x^2;
+f(3)
+</programlisting>
+       If you need to put a separator into your function then you have to surround with
+       parenthesis.  For example:
+<programlisting>function f(x)=(
+  y=1;
+  for j=1 to x do
+    y = y+j;
+  y^2
+);
+</programlisting>
+      </para>
+      <para>
+       The following code will produce an error when entered on the top
+       level of a program, while it will work just fine in a function.
+<programlisting>if Something() then
+  DoSomething()
+else
+  DoSomethingElse()
+</programlisting>
+      </para>
+      <para>
+       The problem is that after <application>Genius Mathematics Tool</application> sees the end of line 
after the
+       second line, it will decide that we have whole statement and
+       it will execute it.  After the execution is done, <application>Genius Mathematics Tool</application> 
will
+       go on to the next
+       line, it will see <literal>else</literal>, and it will produce
+       a parsing error.  To fix this, use parentheses.  <application>Genius Mathematics Tool</application> 
will not
+       be satisfied until it has found that all parentheses are closed.
+<programlisting>if Something() then (
+  DoSomething()
+) else (
+  DoSomethingElse()
+)
+</programlisting>
+      </para>
+    </sect1>
+
+     <sect1 id="genius-gel-returning-functions">
+       <title>Returning Functions</title>
+       <para>
+         It is possible to return functions as value.  This way you can
+         build functions that construct special purpose functions according
+         to some parameters.  The tricky bit is what variables does the
+         function see.  The way this works in GEL is that when a function
+         returns another function, all identifiers referenced in the
+         function body that went out of scope
+         are prepended a private dictionary of the returned
+         function.  So the function will see all variables that were in
+         scope
+         when it was defined.  For example, we define a function that
+         returns a function that adds 5 to its argument.
+<programlisting>function f() = (
+  k = 5;
+  `(x) = (x+k)
+)
+</programlisting>
+         Notice that the function adds <varname>k</varname> to
+         <varname>x</varname>.  You could use this as follows.
+<programlisting>g = f();
+g(5)
+</programlisting>
+         And <userinput>g(5)</userinput> should return 10.
+        </para>
+       <para>
+         One thing to note is that the value of <varname>k</varname>
+         that is used is the one that's in effect when the
+         <function>f</function> returns.  For example:
+<programlisting>function f() = (
+  k := 5;
+  function r(x) = (x+k);
+  k := 10;
+  r
+)
+</programlisting>
+         will return a function that adds 10 to its argument rather than
+         5.  This is because the extra dictionary is created only when
+         the context
+         in which the function was defined ends, which is when the function
+         <function>f</function> returns.  This is consistent with how you
+         would expect the function <function>r</function> to work inside
+         the function <function>f</function> according to the rules of
+         scope of variables in GEL.  Only those variables are added to the
+         extra dictionary that are in the context that just ended and
+         no longer exists.  Variables
+         used in the function that are in still valid contexts will work
+         as usual, using the current value of the variable.
+         The only difference is with global variables and functions.
+         All identifiers that referenced global variables at time of
+         the function definition are not added to the private dictionary.
+         This is to avoid much unnecessary work when returning functions
+         and would rarely be a problem.  For example, suppose that you
+         delete the "k=5" from the function <function>f</function>,
+         and at the top level you define <varname>k</varname> to be
+         say 5.  Then when you run <function>f</function>, the function
+         <function>r</function> will not put <varname>k</varname> into
+         the private dictionary because it was global (toplevel)
+         at the time of definition of <function>r</function>.
+       </para>
+       <para>
+         Sometimes it is better to have more control over how variables
+         are copied into the private dictionary.  Since version 1.0.7,
+         you can specify which
+         variables are copied into the private dictionary by putting
+         extra square brackets after the arguments with the list of
+         variables to be copied separated by commas.
+         If you do this, then variables are
+         copied into the private dictionary at time of the function
+         definition, and the private dictionary is not touched afterwards.
+         For example
+<programlisting>function f() = (
+  k := 5;
+  function r(x) [k] = (x+k);
+  k := 10;
+  r
+)
+</programlisting>
+         will return a function that when called will add 5 to its
+         argument.  The local copy of <varname>k</varname> was created
+         when the function was defined.
+       </para>
+       <para>
+         When you want the function to not have any private dictionary
+         then put empty square brackets after the argument list.  Then
+         no private dictionary will be created at all.  Doing this is
+         good to increase efficiency when a private dictionary is not
+         needed or when you want the function to lookup all variables
+         as it sees them when called.  For example suppose you want
+         the function returned from <function>f</function> to see
+         the value of <varname>k</varname> from the toplevel despite
+         there being a local variable of the same name during definition.
+         So the code
+<programlisting>function f() = (
+  k := 5;
+  function r(x) [] = (x+k);
+  r
+);
+k := 10;
+g = f();
+g(10)
+</programlisting>
+         will return 20 and not 15, which would happen if
+         <varname>k</varname> with a value of 5 was added to the private
+         dictionary.
+       </para>
+    </sect1>
+
+    <sect1 id="genius-gel-true-local-variables">
+      <title>True Local Variables</title>
+      <para>
+       When passing functions into other functions, the normal scoping of
+       variables might be undesired.  For example:
+<programlisting>k := 10;
+function r(x) = (x+k);
+function f(g,x) = (
+  k := 5;
+  g(x)
+);
+f(r,1)
+</programlisting>
+       you probably want the function <function>r</function>
+       when passed as <function>g</function> into <function>f</function>
+       to see <varname>k</varname> as 10 rather than 5, so that
+       the code returns 11 and not 6.  However, as written, the function
+       when executed will see the <varname>k</varname> that is
+       equal to 5.  There are two ways to solve this.  One would be
+       to have <function>r</function> get <varname>k</varname> in a
+       private dictionary using the square bracket notation section
+       <link linkend="genius-gel-returning-functions">Returning
+       Functions</link>.
+      </para>
+      <para>
+       But there is another solution.  Since version 1.0.7 there are
+       true local variables.  These are variables that are visible only
+       from the current context and not from any called functions.
+       We could define <varname>k</varname> as a local variable in the
+       function <function>f</function>.  To do this add a
+       <command>local</command> statement as the first statement in the
+       function (it must always be the first statement in the function).
+       You can also make any arguments be local variables as well.
+       That is,
+<programlisting>function f(g,x) = (
+  local g,x,k;
+  k := 5;
+  g(x)
+);
+</programlisting>
+       Then the code will work as expected and prints out 11.
+       Note that the <command>local</command> statement initializes
+       all the referenced variables (except for function arguments) to
+       a <constant>null</constant>.
+      </para>
+      <para>
+       If all variables are to be created as locals you can just pass an
+       asterisk instead of a list of variables.  In this case the variables
+       will not be initialized until they are actually set of course.
+       So the following definition of <function>f</function>
+       will also work:
+<programlisting>function f(g,x) = (
+  local *;
+  k := 5;
+  g(x)
+);
+</programlisting>
+      </para>
+      <para>
+       It is good practice that all functions that take other functions
+       as arguments use local variables.  This way the passed function 
+       does not see implementation details and get confused.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-startup-procedure">
+      <title>GEL Startup Procedure</title>
+      <para>
+First the program looks for the installed library file (the compiled version <filename>lib.cgel</filename>) 
in the installed directory, then it looks into the current directory, and then it tries to load an uncompiled 
file called
+<filename>~/.geniusinit</filename>.
+      </para>
+      <para>
+If you ever change the library in its installed place, you’ll have to
+first compile it with <command>genius --compile loader.gel &gt; lib.cgel</command>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-loading-programs">
+      <title>Loading Programs</title>
+      <para>
+Sometimes you have a larger program you wrote into a file and want to read that file into 
<application>Genius Mathematics Tool</application>. In these situations, you have two options. You can keep 
the functions you use most inside the <filename>~/.geniusinit</filename> file. Or if you want to load up a 
file in a middle of a session (or from within another file), you can type <command>load &lt;list of 
filenames&gt;</command> at the prompt. This has to be done on the top level and not inside any function or 
whatnot, and it cannot be part of any expression. It also has a slightly different syntax than the rest of 
genius, more similar to a shell. You can enter the file in quotes. If you use the '' quotes, you will get 
exactly the string that you typed, if you use the "" quotes, special characters will be unescaped as they are 
for strings. Example:
+<programlisting>load program1.gel program2.gel
+load "Weird File Name With SPACES.gel"
+</programlisting>
+There are also <command>cd</command>, <command>pwd</command> and <command>ls</command> commands built in. 
<command>cd</command> will take one argument, <command>ls</command> will take an argument that is like the 
glob in the UNIX shell (i.e., you can use wildcards). <command>pwd</command> takes no arguments. For example:
+<programlisting>cd directory_with_gel_programs
+ls *.gel
+</programlisting>
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Matrices ================================= -->
+  <chapter id="genius-gel-matrices">
+    <title>Matrices in GEL</title>
+
+    <para>
+      Genius has support for vectors and matrices and possesses a sizable library of
+      matrix manipulation and linear algebra functions.
+    </para>
+
+    <sect1 id="genius-gel-matrix-support">
+      <title>Entering Matrices</title>
+      <para>
+To enter matrices, you can use one of the following two syntaxes. You can either enter
+the matrix on one line, separating values by commas and rows by semicolons.  Or you
+can enter each row on one line, separating
+values by commas.
+You can also just combine the two methods.
+So to enter a 3x3 matrix
+of numbers 1-9 you could do
+<programlisting>[1,2,3;4,5,6;7,8,9]
+</programlisting>
+or
+<programlisting>[1, 2, 3
+ 4, 5, 6
+ 7, 8, 9]
+</programlisting>
+Do not use both ';' and return at once on the same line though.
+      </para>
+
+      <para>
+You can also use the matrix expansion functionality to enter matrices.
+For example you can do:
+<programlisting>a = [ 1, 2, 3
+      4, 5, 6
+      7, 8, 9]
+b = [ a,  10
+      11, 12]
+</programlisting>
+and you should get
+<programlisting>[1,   2,  3, 10
+ 4,   5,  6, 10
+ 7,   8,  9, 10
+ 11, 11, 11, 12]
+</programlisting>
+similarly you can build matrices out of vectors and other stuff like that.
+      </para>
+
+      <para>
+Another thing is that non-specified spots are initialized to 0, so
+<programlisting>[1, 2, 3
+ 4, 5
+ 6]
+</programlisting>
+will end up being
+<programlisting>
+[1, 2, 3
+ 4, 5, 0
+ 6, 0, 0]
+</programlisting>
+      </para>
+
+      <para>
+       When matrices are evaluated, they are evaluated and traversed row-wise.  This is just
+       like the <literal>M@(j)</literal> operator, which traverses the matrix row-wise.
+      </para>
+
+      <note>
+        <para>
+Be careful about using returns for expressions inside the
+<literal>[ ]</literal> brackets, as they have a slightly different meaning
+there.  You will start a new row.
+        </para>
+      </note>
+
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-transpose">
+      <title>Conjugate Transpose and Transpose Operator</title>
+      <para>
+You can conjugate transpose a matrix by using the <literal>'</literal> operator.  That is
+the entry in the
+<varname>i</varname>th column and the <varname>j</varname>th row will be
+the complex conjugate of the entry in the
+<varname>j</varname>th column and the <varname>i</varname>th row of the original matrix.
+ For example:
+<programlisting>[1,2,3]*[4,5,6]'
+</programlisting>
+We transpose the second vector to make matrix multiplication possible.
+If you just want to transpose a matrix without conjugating it, you would
+use the <literal>.'</literal> operator.  For example:
+<programlisting>[1,2,3]*[4,5,6i].'
+</programlisting>
+      </para>
+       <para>
+         Note that normal transpose, that is the <literal>.'</literal> operator, is much faster
+         and will not create a new copy of the matrix in memory.  The conjugate transpose does
+         create a new copy unfortunately.
+         It is recommended to always use the <literal>.'</literal> operator when working with real
+         matrices and vectors.
+       </para>
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-linalg">
+      <title>Álgebra linear</title>
+      <para>
+       Genius implements many useful linear algebra and matrix manipulation
+routines.  See the <link linkend="genius-gel-function-list-linear-algebra">Linear Algebra</link> and
+<link linkend="genius-gel-function-list-matrix">Matrix Manipulation</link>
+sections of the GEL function listing.
+      </para>
+      <para>
+       The linear algebra routines implemented in GEL do not currently come
+from a well tested numerical package, and thus should not be used for critical
+numerical computation.  On the other hand, Genius implements very well many
+linear algebra operations with rational and integer coefficients.  These are
+inherently exact and in fact will give you much better results than common
+double precision routines for linear algebra.
+      </para>
+      <para>
+       For example, it is pointless to compute the rank and nullspace of a
+floating point matrix since for all practical purposes, we need to consider the
+matrix as having some slight errors.  You are likely to get a different result
+than you expect.  The problem is that under a small perturbation every matrix
+is of full rank and invertible.  If the matrix however is of rational numbers,
+then the rank and nullspace are always exact.
+      </para>
+      <para>
+       In general when Genius computes the basis of a certain vectorspace
+       (for example with the <link linkend="gel-function-NullSpace"><function>NullSpace</function></link>) 
it will give the basis as
+a matrix, in which the columns are the vectors of the basis.  That is, when
+Genius talks of a linear subspace it means a matrix whose column space is
+the given linear subspace.
+      </para>
+      <para>
+       It should be noted that Genius can remember certain properties of a
+matrix.  For example, it will remember that a matrix is in row reduced form.
+If many calls are made to functions that internally use row reduced form of
+the matrix, we can just row reduce the matrix beforehand once.  Successive
+calls to <link linkend="gel-function-rref"><function>rref</function></link> will be very fast.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Polynomials ============================== -->
+  <chapter id="genius-gel-polynomials">
+    <title>Polynomials in GEL</title>
+
+    <para>
+      Currently Genius can handle polynomials of one variable written out
+      as vectors, and do some basic operations with these.  It is planned to
+      expand this support further.
+    </para>
+
+    <sect1 id="genius-gel-polynomials-using">
+      <title>Using Polynomials</title>
+      <para>
+Currently
+polynomials in one variable are just horizontal vectors with value only nodes.
+The power of the term is the position in the vector, with the first position
+being 0. So,
+<programlisting>[1,2,3]
+</programlisting>
+translates to a polynomial of
+<programlisting>1 + 2*x + 3*x^2
+</programlisting>
+      </para>
+      <para>
+You can add, subtract and multiply polynomials using the
+<link linkend="gel-function-AddPoly"><function>AddPoly</function></link>,
+<link linkend="gel-function-SubtractPoly"><function>SubtractPoly</function></link>, and
+<link linkend="gel-function-MultiplyPoly"><function>MultiplyPoly</function></link> functions respectively.
+You can print a polynomial using the
+<link linkend="gel-function-PolyToString"><function>PolyToString</function></link>
+function.
+For example,
+<programlisting>PolyToString([1,2,3],"y")
+</programlisting>
+gives
+<programlisting>3*y^2 + 2*y + 1
+</programlisting>
+You can also get a function representation of the polynomial so that you can
+evaluate it. This is done by using
+<link linkend="gel-function-PolyToFunction"><function>PolyToFunction</function></link>,
+which
+returns an anonymous function.
+<programlisting>f = PolyToFunction([0,1,1])
+f(2)
+</programlisting>
+      </para>
+      <para>
+       It is also possible to find roots of polynomials of degrees 1 through 4 by using the
+function
+<link linkend="gel-function-PolynomialRoots"><function>PolynomialRoots</function></link>,
+which calls the appropriate formula function.  Higher degree polynomials must be converted to
+functions and solved
+numerically using a function such as
+<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>, or
+<link linkend="gel-function-FindRootSecant"><function>FindRootSecant</function></link>.
+      </para>
+      <para>
+See <xref linkend="genius-gel-function-list-polynomials"/> in the function list
+for the rest of functions acting on polynomials.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Set Theory ============================== -->
+  <chapter id="genius-gel-settheory">
+    <title>Set Theory in GEL</title>
+
+    <para>
+      Genius has some basic set theoretic functionality built in.  Currently a set is
+      just a vector (or a matrix).  Every distinct object is treated as a different element.
+    </para>
+
+    <sect1 id="genius-gel-sets-using">
+      <title>Using Sets</title>
+      <para>
+       Just like vectors, objects
+      in sets can include numbers, strings, <constant>null</constant>, matrices and vectors.  It is
+      planned in the future to have a dedicated type for sets, rather than using vectors.
+      Note that floating point numbers are distinct from integers, even if they appear the same.
+      That is, Genius will treat <constant>0</constant> and <constant>0.0</constant>
+      as two distinct elements.  The <constant>null</constant> is treated as an empty set.
+    </para>
+      <para>
+       To build a set out of a vector, use the 
+       <link linkend="gel-function-MakeSet"><function>MakeSet</function></link> function.
+       Currently, it will just return a new vector where every element is unique.
+<screen><prompt>genius&gt; </prompt><userinput>MakeSet([1,2,2,3])</userinput>
+= [1, 2, 3]
+</screen>
+</para>
+
+       <para>
+       Similarly there are functions 
+       <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>, which
+       are rather self explanatory.  For example:
+<screen><prompt>genius&gt; </prompt><userinput>Union([1,2,3], [1,2,4])</userinput>
+= [1, 2, 4, 3]
+</screen>
+       Note that no order is guaranteed for the return values.  If you wish to sort the vector you
+should use the
+       <link linkend="gel-function-SortVector"><function>SortVector</function></link> function.
+       </para>
+
+       <para>
+         For testing membership, there are functions
+       <link linkend="gel-function-IsIn"><function>IsIn</function></link> and
+       <link linkend="gel-function-IsSubset"><function>IsSubset</function></link>,
+       which return a boolean value.  For example:
+<screen><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
+= true
+</screen>
+       The input <userinput>IsIn(x,X)</userinput> is of course equivalent to
+       <userinput>IsSubset([x],X)</userinput>.  Note that since the empty set is a subset
+       of every set, <userinput>IsSubset(null,X)</userinput> is always true.
+       </para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL function list ======================== -->
+  <chapter id="genius-gel-function-list">
+    <title>List of GEL functions</title>
+
+    <!--&gel-function-list;-->
+
+    <para>
+To get help on a specific function from the console type:
+<programlisting>help FunctionName
+</programlisting>
+    </para>
+
+    <sect1 id="genius-gel-function-list-commands">
+      <title>Comandos</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-command-help"/>help</term>
+         <listitem>
+          <synopsis>help</synopsis>
+          <synopsis>help FunctionName</synopsis>
+          <para>Print help (or help on a function/command).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-load"/>load</term>
+         <listitem>
+          <synopsis>load "file.gel"</synopsis>
+          <para>Load a file into the interpreter.  The file will execute
+as if it were typed onto the command line.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-cd"/>cd</term>
+         <listitem>
+          <synopsis>cd /directory/name</synopsis>
+          <para>Change working directory to <filename>/directory/name</filename>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-pwd"/>pwd</term>
+         <listitem>
+          <synopsis>pwd</synopsis>
+          <para>Print the current working directory.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-ls"/>ls</term>
+         <listitem>
+          <synopsis>ls</synopsis>
+          <para>List files in the current directory.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-plugin"/>plugin</term>
+         <listitem>
+          <synopsis>plugin plugin_name</synopsis>
+          <para>Load a plugin.  Plugin of that name must be installed on the system
+in the proper directory.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-basic">
+      <title>Básico</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
+         <listitem>
+          <synopsis>AskButtons (query)</synopsis>
+          <synopsis>AskButtons (query, button1, ...)</synopsis>
+         <para>Asks a question and presents a list of buttons to the user (or
+a menu of options in text mode).  Returns the 1-based index of the button
+pressed.  That is, returns 1 if the first button was pressed, 2 if the second
+button was pressed, and so on.  If the user closes the window (or simply hits
+enter in text mode), then <constant>null</constant> is returned.  The execution
+of the program is blocked until the user responds.</para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AskString"/>AskString</term>
+         <listitem>
+          <synopsis>AskString (query)</synopsis>
+          <synopsis>AskString (query, default)</synopsis>
+          <para>Asks a question and lets the user enter a string, which
+it then returns.  If the user cancels or closes the window, then
+<constant>null</constant> is returned.  The execution of the program
+is blocked until the user responds.  If <varname>default</varname> is given, then it is pre-typed in for the 
user to just press enter on (version 1.0.6 onwards).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Compose"/>Compose</term>
+         <listitem>
+          <synopsis>Compose (f,g)</synopsis>
+          <para>Compose two functions and return a function that is the composition of 
<function>f</function> and <function>g</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
+         <listitem>
+          <synopsis>ComposePower (f,n,x)</synopsis>
+          <para>Compose and execute a function with itself <varname>n</varname> times, passing 
<varname>x</varname> as argument.  Returning <varname>x</varname> if
+<varname>n</varname> equals 0.
+               Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>function f(x) = x^2 ;</userinput>
+<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
+= 5764801
+<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
+= 5764801
+</screen>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
+         <listitem>
+          <synopsis>Evaluate (str)</synopsis>
+          <para>Parses and evaluates a string.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
+         <listitem>
+          <synopsis>GetCurrentModulo</synopsis>
+          <para>Get current modulo from the context outside the function.  That is, if outside of
+the function was executed in modulo (using <literal>mod</literal>) then this returns what
+this modulo was.  Normally the body of the function called is not executed in modular arithmetic,
+and this builtin function makes it possible to make GEL functions aware of modular arithmetic.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Identity"/>Identity</term>
+         <listitem>
+          <synopsis>Identity (x)</synopsis>
+         <para>Identity function, returns its argument.  It is equivalent to <userinput>function 
Identity(x)=x</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
+         <listitem>
+          <synopsis>IntegerFromBoolean (bval)</synopsis>
+         <para>
+           Make integer (0 for <constant>false</constant> or 1 for
+           <constant>true</constant>) from a boolean value.
+           <varname>bval</varname> can also be a number in which case a
+           non-zero value will be interpreted as <constant>true</constant> and
+           zero will be interpreted as <constant>false</constant>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
+         <listitem>
+          <synopsis>IsBoolean (arg)</synopsis>
+          <para>Check if argument is a boolean (and not a number).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
+         <listitem>
+          <synopsis>IsDefined (id)</synopsis>
+          <para>Check if an id is defined.  You should pass a string or
+          and identifier.  If you pass a matrix, each entry will be
+          evaluated separately and the matrix should contain strings
+          or identifiers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
+         <listitem>
+          <synopsis>IsFunction (arg)</synopsis>
+          <para>Check if argument is a function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
+         <listitem>
+          <synopsis>IsFunctionOrIdentifier (arg)</synopsis>
+          <para>Check if argument is a function or an identifier.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
+         <listitem>
+          <synopsis>IsFunctionRef (arg)</synopsis>
+          <para>Check if argument is a function reference.  This includes variable
+references.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
+         <listitem>
+          <synopsis>IsMatrix (arg)</synopsis>
+          <para>Check if argument is a matrix.  Even though <constant>null</constant> is
+sometimes considered an empty matrix, the function <function>IsMatrix</function> does
+not consider <constant>null</constant> a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNull"/>IsNull</term>
+         <listitem>
+          <synopsis>IsNull (arg)</synopsis>
+         <para>Check if argument is a <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsString"/>IsString</term>
+         <listitem>
+          <synopsis>IsString (arg)</synopsis>
+          <para>Check if argument is a text string.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValue"/>IsValue</term>
+         <listitem>
+          <synopsis>IsValue (arg)</synopsis>
+          <para>Check if argument is a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Parse"/>Parse</term>
+         <listitem>
+          <synopsis>Parse (str)</synopsis>
+          <para>Parses but does not evaluate a string.  Note that certain
+           pre-computation is done during the parsing stage.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
+         <listitem>
+          <synopsis>SetFunctionFlags (id,flags...)</synopsis>
+          <para>Set flags for a function, currently <literal>"PropagateMod"</literal> and 
<literal>"NoModuloArguments"</literal>.
+If <literal>"PropagateMod"</literal> is set, then the body of the function is evaluated in modular 
arithmetic when the function
+is called inside a block that was evaluated using modular arithmetic (using <literal>mod</literal>).  If
+<literal>"NoModuloArguments"</literal>, then the arguments of the function are never evaluated using modular 
arithmetic.
+ </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
+         <listitem>
+          <synopsis>SetHelp (id,category,desc)</synopsis>
+          <para>Set the category and help description line for a function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
+         <listitem>
+          <synopsis>SetHelpAlias (id,alias)</synopsis>
+          <para>Sets up a help alias.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-chdir"/>chdir</term>
+         <listitem>
+          <synopsis>chdir (dir)</synopsis>
+          <para>Changes current directory, same as the <command>cd</command>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
+         <listitem>
+          <synopsis>CurrentTime</synopsis>
+          <para>Returns the current UNIX time with microsecond precision as a floating point number.  That 
is, returns the number of seconds since January 1st 1970.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-display"/>display</term>
+         <listitem>
+          <synopsis>display (str,expr)</synopsis>
+          <para>Display a string and an expression with a colon to separate them.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DisplayVariables"/>DisplayVariables</term>
+         <listitem>
+          <synopsis>DisplayVariables (var1,var2,...)</synopsis>
+         <para>Display set of variables.  The variables can be given as
+                 strings or identifiers.  For example:
+           <programlisting>DisplayVariables(`x,`y,`z)
+           </programlisting>
+         </para>
+         <para>
+                 If called without arguments (must supply empty argument list) as
+           <programlisting>DisplayVariables()
+           </programlisting>
+           then all variables are printed including a stacktrace similar to
+           <guilabel>Show user variables</guilabel> in the graphical version.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-error"/>error</term>
+         <listitem>
+          <synopsis>error (str)</synopsis>
+          <para>Prints a string to the error stream (onto the console).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exit"/>exit</term>
+         <listitem>
+          <synopsis>exit</synopsis>
+          <para>Aliases: <function>quit</function></para>
+          <para>Exits the program.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-false"/>false</term>
+         <listitem>
+          <synopsis>false</synopsis>
+          <para>Aliases: <function>False</function> <function>FALSE</function></para>
+         <para>The <constant>false</constant> boolean value.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-manual"/>manual</term>
+         <listitem>
+          <synopsis>manual</synopsis>
+          <para>Displays the user manual.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-print"/>print</term>
+         <listitem>
+          <synopsis>print (str)</synopsis>
+          <para>Prints an expression and then print a newline.  The argument <varname>str</varname> can be 
any expression.  It is
+made into a string before being printed.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-printn"/>printn</term>
+         <listitem>
+          <synopsis>printn (str)</synopsis>
+          <para>Prints an expression without a trailing newline.  The argument <varname>str</varname> can be 
any expression.  It is
+made into a string before being printed.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrintTable"/>PrintTable</term>
+         <listitem>
+          <synopsis>PrintTable (f,v)</synopsis>
+         <para>Print a table of values for a function.  The values are in the 
+                 vector <varname>v</varname>.  You can use the vector
+                 building notation as follows:
+                 <programlisting>PrintTable (f,[0:10])
+           </programlisting>
+           If <varname>v</varname> is a positive integer, then the table of
+           integers from 1 up to and including v will be used.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-protect"/>protect</term>
+         <listitem>
+          <synopsis>protect (id)</synopsis>
+          <para>Protect a variable from being modified.  This is used on the internal GEL functions to
+avoid them being accidentally overridden.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
+         <listitem>
+          <synopsis>ProtectAll ()</synopsis>
+          <para>Protect all currently defined variables, parameters and
+functions from being modified.  This is used on the internal GEL functions to
+avoid them being accidentally overridden.  Normally <application>Genius Mathematics Tool</application> 
considers
+unprotected variables as user defined.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-set"/>set</term>
+         <listitem>
+          <synopsis>set (id,val)</synopsis>
+          <para>Set a global variable.  The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>set(`x,1)
+           </programlisting>
+           will set the global variable <varname>x</varname> to the value 1.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetElement"/>SetElement</term>
+         <listitem>
+          <synopsis>SetElement (id,row,col,val)</synopsis>
+         <para>Set an element of a global variable which is a matrix.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,3,1)
+           </programlisting>
+           will set the second row third column element of the global variable <varname>x</varname> to the 
value 1.  If no global variable of the name exists, or if it is set to something that's not a matrix, a new 
zero matrix of appropriate size will be created.
+         </para>
+         <para>The <varname>row</varname> and <varname>col</varname> can also be ranges, and the semantics 
are the same as for regular setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetVElement"/>SetVElement</term>
+         <listitem>
+          <synopsis>SetElement (id,elt,val)</synopsis>
+         <para>Set an element of a global variable which is a vector.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,1)
+           </programlisting>
+           will set the second element of the global vector variable <varname>x</varname> to the value 1.  
If no global variable of the name exists, or if it is set to something that's not a vector (matrix), a new 
zero row vector of appropriate size will be created.
+         </para>
+         <para>The <varname>elt</varname> can also be a range, and the semantics are the same as for regular 
setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-string"/>string</term>
+         <listitem>
+          <synopsis>string (s)</synopsis>
+          <para>Make a string.  This will make a string out of any argument.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-true"/>true</term>
+         <listitem>
+          <synopsis>true</synopsis>
+          <para>Aliases: <function>True</function> <function>TRUE</function></para>
+         <para>The <constant>true</constant> boolean value.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-undefine"/>undefine</term>
+         <listitem>
+          <synopsis>undefine (id)</synopsis>
+          <para>Alias: <function>Undefine</function></para>
+          <para>Undefine a variable.  This includes locals and globals,
+           every value on all context levels is wiped.  This function
+           should really not be used on local variables.  A vector of
+           identifiers can also be passed to undefine several variables.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
+         <listitem>
+          <synopsis>UndefineAll ()</synopsis>
+         <para>Undefine all unprotected global variables
+           (including functions and parameters).  Normally <application>Genius Mathematics Tool</application>
+           considers protected variables as system defined functions
+           and variables.  Note that <function>UndefineAll</function>
+           only removes the global definition of symbols not local ones,
+           so that it may be run from inside other functions safely.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-unprotect"/>unprotect</term>
+         <listitem>
+          <synopsis>unprotect (id)</synopsis>
+          <para>Unprotect a variable from being modified.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
+         <listitem>
+          <synopsis>UserVariables ()</synopsis>
+          <para>Return a vector of identifiers of
+           user defined (unprotected) global variables.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-wait"/>wait</term>
+         <listitem>
+          <synopsis>wait (secs)</synopsis>
+          <para>Waits a specified number of seconds.  <varname>secs</varname>
+must be non-negative.  Zero is accepted and nothing happens in this case,
+except possibly user interface events are processed.</para>
+         <para>Since version 1.0.18, <varname>secs</varname> can be a noninteger number, so
+                 <userinput>wait(0.1)</userinput> will wait for one tenth of a second.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-version"/>version</term>
+         <listitem>
+          <synopsis>version</synopsis>
+          <para>Returns the version of Genius as a horizontal 3-vector with
+         major version first, then minor version and finally the patch level.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-warranty"/>warranty</term>
+         <listitem>
+          <synopsis>warranty</synopsis>
+          <para>Gives the warranty information.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+
+    </sect1>
+
+    <sect1 id="genius-gel-function-parameters">
+      <title>Parâmetros</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
+         <listitem>
+          <synopsis>ChopTolerance = number</synopsis>
+          <para>Tolerance of the <function>Chop</function> function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
+         <listitem>
+          <synopsis>ContinuousNumberOfTries = number</synopsis>
+          <para>How many iterations to try to find the limit for continuity and limits.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
+         <listitem>
+          <synopsis>ContinuousSFS = number</synopsis>
+          <para>How many successive steps to be within tolerance for calculation of continuity.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
+         <listitem>
+          <synopsis>ContinuousTolerance = number</synopsis>
+          <para>Tolerance for continuity of functions and for calculating the limit.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
+         <listitem>
+          <synopsis>DerivativeNumberOfTries = number</synopsis>
+          <para>How many iterations to try to find the limit for derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
+         <listitem>
+          <synopsis>DerivativeSFS = number</synopsis>
+          <para>How many successive steps to be within tolerance for calculation of derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
+         <listitem>
+          <synopsis>DerivativeTolerance = number</synopsis>
+          <para>Tolerance for calculating the derivatives of functions.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
+         <listitem>
+          <synopsis>ErrorFunctionTolerance = number</synopsis>
+         <para>Tolerance of the <link 
linkend="gel-function-ErrorFunction"><function>ErrorFunction</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
+         <listitem>
+          <synopsis>FloatPrecision = number</synopsis>
+          <para>Floating point precision.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
+         <listitem>
+          <synopsis>FullExpressions = boolean</synopsis>
+          <para>Print full expressions, even if more than a line.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
+         <listitem>
+          <synopsis>GaussDistributionTolerance = number</synopsis>
+         <para>Tolerance of the <link 
linkend="gel-function-GaussDistribution"><function>GaussDistribution</function></link> function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
+         <listitem>
+          <synopsis>IntegerOutputBase = number</synopsis>
+          <para>Integer output base.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
+         <listitem>
+          <synopsis>IsPrimeMillerRabinReps = number</synopsis>
+         <para>Number of extra Miller-Rabin tests to run on a number before declaring it a prime in <link 
linkend="gel-function-IsPrime"><function>IsPrime</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
+         <listitem>
+          <synopsis>LinePlotDrawLegends = true</synopsis>
+          <para>Tells genius to draw the legends for <link linkend="genius-gel-function-list-plotting">line 
plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
+         <listitem>
+          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
+          <para>Tells genius to draw the axis labels for <link 
linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
+         <listitem>
+          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
+          <para>Tells genius which variable names are used as default names  for <link 
linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> 
and friends.
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
+         <listitem>
+          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
+          <para>Sets the limits for <link linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
+         <listitem>
+          <synopsis>MaxDigits = number</synopsis>
+          <para>Maximum digits to display.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
+         <listitem>
+          <synopsis>MaxErrors = number</synopsis>
+          <para>Maximum errors to display.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
+         <listitem>
+          <synopsis>MixedFractions = boolean</synopsis>
+          <para>If true, mixed fractions are printed.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
+         <listitem>
+          <synopsis>NumericalIntegralFunction = function</synopsis>
+         <para>The function used for numerical integration in <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
+         <listitem>
+          <synopsis>NumericalIntegralSteps = number</synopsis>
+         <para>Steps to perform in <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
+         <listitem>
+          <synopsis>OutputChopExponent = number</synopsis>
+         <para>When another number in the object being printed (a matrix or a
+value) is greater than
+10<superscript>-OutputChopWhenExponent</superscript>, and
+the number being printed is less than 
+10<superscript>-OutputChopExponent</superscript>, then
+display <computeroutput>0.0</computeroutput> instead of the number.
+</para>
+<para>
+Output is never chopped if <function>OutputChopExponent</function> is zero.
+It must be a non-negative integer.
+</para>
+<para>
+If you want output always chopped according to
+<function>OutputChopExponent</function>, then set
+<function>OutputChopWhenExponent</function>, to something
+greater than or equal to
+<function>OutputChopExponent</function>.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
+         <listitem>
+          <synopsis>OutputChopWhenExponent = number</synopsis>
+         <para>When to chop output.  See
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
+         <listitem>
+          <synopsis>OutputStyle = string</synopsis>
+          <para>
+           Output style, this can be <literal>normal</literal>, <literal>latex</literal>, 
<literal>mathml</literal> or <literal>troff</literal>.
+         </para>
+         <para>
+           This affects mostly how matrices and fractions are printed out and
+           is useful for pasting into documents.  For example you can set this
+           to the latex by:
+           <programlisting>OutputStyle = "latex"
+</programlisting>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
+         <listitem>
+          <synopsis>ResultsAsFloats = boolean</synopsis>
+          <para>Convert all results to floats before printing.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
+         <listitem>
+          <synopsis>ScientificNotation = boolean</synopsis>
+          <para>Use scientific notation.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
+         <listitem>
+          <synopsis>SlopefieldTicks = [vertical,horizontal]</synopsis>
+          <para>Sets the number of vertical and horizontal ticks in a
+slopefield plot.  (See <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>).
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
+         <listitem>
+          <synopsis>SumProductNumberOfTries = number</synopsis>
+         <para>How many iterations to try for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
+         <listitem>
+          <synopsis>SumProductSFS = number</synopsis>
+          <para>How many successive steps to be within tolerance for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
+         <listitem>
+          <synopsis>SumProductTolerance = number</synopsis>
+          <para>Tolerance for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLegends = true</synopsis>
+          <para>Tells genius to draw the legends for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> such as <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
+         <listitem>
+          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
+          <para>Tells genius which variable names are used as default names for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> using <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          Note that the <varname>z</varname> does not refer to the dependent (vertical) axis, but to the 
independent complex variable
+          <userinput>z=x+iy</userinput>.
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
+         <listitem>
+          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
+          <para>Sets the limits for surface plotting (See <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
+         <listitem>
+          <synopsis>VectorfieldNormalized = true</synopsis>
+          <para>Should the vectorfield plotting have normalized arrow length.  If true, vector fields will 
only show direction
+          and not magnitude.  (See <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
+         <listitem>
+          <synopsis>VectorfieldTicks = [vertical,horizontal]</synopsis>
+          <para>Sets the number of vertical and horizontal ticks in a
+vectorfield plot.  (See <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-constants">
+      <title>Constantes</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
+         <listitem>
+          <synopsis>CatalanConstant</synopsis>
+          <para>
+           Catalan's Constant, approximately 0.915...  It is defined to be the series where terms are 
<userinput>(-1^k)/((2*k+1)^2)</userinput>, where <varname>k</varname> ranges from 0 to infinity.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Catalan%27s_constant";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/CatalansConstant.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
+         <listitem>
+          <synopsis>EulerConstant</synopsis>
+          <para>Aliases: <function>gamma</function></para>
+          <para>
+           Euler's constant gamma.  Sometimes called the
+           Euler-Mascheroni constant.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler-Mascheroni_constant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MascheroniConstant";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
+         <listitem>
+          <synopsis>GoldenRatio</synopsis>
+          <para>The Golden Ratio.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Golden_ratio";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GoldenRatio";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GoldenRatio.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Gravity"/>Gravity</term>
+         <listitem>
+          <synopsis>Gravity</synopsis>
+         <para>Free fall acceleration at sea level in meters per second squared.  This is the standard 
gravity constant 9.80665.  The gravity
+                 in your particular neck of the woods might be different due to different altitude and the 
fact that the earth is not perfectly
+                 round and uniform.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Standard_gravity";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-e"/>e</term>
+         <listitem>
+          <synopsis>e</synopsis>
+          <para>
+           The base of the natural logarithm.  <userinput>e^x</userinput>
+           is the exponential function
+           <link linkend="gel-function-exp"><function>exp</function></link>.  It is approximately
+           2.71828182846...  This number is sometimes called Euler's number, although there are
+           several numbers that are also called Euler's.  An example is the gamma constant: <link 
linkend="gel-function-EulerConstant"><function>EulerConstant</function></link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/E_(mathematical_constant)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/E";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/e.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-pi"/>pi</term>
+         <listitem>
+          <synopsis>pi</synopsis>
+          <para>
+           The number pi, that is the ratio of a circle's circumference
+           to its diameter.  This is approximately 3.14159265359...
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Pi";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Pi";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pi.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-numeric">
+      <title>Numérico</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
+         <listitem>
+          <synopsis>AbsoluteValue (x)</synopsis>
+          <para>Aliases: <function>abs</function></para>
+          <para>
+           Absolute value of a number and if <varname>x</varname> is
+           a complex value the modulus of <varname>x</varname>.  I.e. this
+           the distance of <varname>x</varname> to the origin.  This is equivalent
+           to <userinput>|x|</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Absolute_value";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/AbsoluteValue";>Planetmath (absolute value)</ulink>,
+           <ulink url="http://planetmath.org/ModulusOfComplexNumber";>Planetmath (modulus)</ulink>,
+           <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld (absolute value)</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ComplexModulus.html";>Mathworld (complex modulus)</ulink>
+for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Chop"/>Chop</term>
+         <listitem>
+          <synopsis>Chop (x)</synopsis>
+          <para>Replace very small number with zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
+         <listitem>
+          <synopsis>ComplexConjugate (z)</synopsis>
+          <para>Aliases: <function>conj</function> <function>Conj</function></para>
+          <para>Calculates the complex conjugate of the complex number <varname>z</varname>.  If 
<varname>z</varname> is a vector or matrix,
+all its elements are conjugated.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Complex_conjugate";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Denominator"/>Denominator</term>
+         <listitem>
+          <synopsis>Denominator (x)</synopsis>
+          <para>Get the denominator of a rational number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Denominator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
+         <listitem>
+          <synopsis>FractionalPart (x)</synopsis>
+          <para>Return the fractional part of a number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fractional_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Im"/>Im</term>
+         <listitem>
+          <synopsis>Im (z)</synopsis>
+          <para>Aliases: <function>ImaginaryPart</function></para>
+          <para>Get the imaginary part of a complex number.  For example <userinput>Re(3+4i)</userinput> 
yields 4.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Imaginary_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
+         <listitem>
+          <synopsis>IntegerQuotient (m,n)</synopsis>
+          <para>Division without remainder.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
+         <listitem>
+          <synopsis>IsComplex (num)</synopsis>
+         <para>Check if argument is a complex (non-real) number.  Do note that we really mean nonreal 
number.  That is,
+         <userinput>IsComplex(3)</userinput> yields false, while
+         <userinput>IsComplex(3-1i)</userinput> yields true.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
+         <listitem>
+          <synopsis>IsComplexRational (num)</synopsis>
+         <para>Check if argument is a possibly complex rational number.  That is, if both real and imaginary 
parts are
+         given as rational numbers.  Of course rational simply means "not stored as a floating point 
number."</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
+         <listitem>
+          <synopsis>IsFloat (num)</synopsis>
+          <para>Check if argument is a real floating point number (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
+         <listitem>
+          <synopsis>IsGaussInteger (num)</synopsis>
+          <para>Aliases: <function>IsComplexInteger</function></para>
+         <para>Check if argument is a possibly complex integer.  That is a complex integer is a number of
+                 the form <userinput>n+1i*m</userinput> where <varname>n</varname> and <varname>m</varname>
+         are integers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
+         <listitem>
+          <synopsis>IsInteger (num)</synopsis>
+          <para>Check if argument is an integer (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
+         <listitem>
+          <synopsis>IsNonNegativeInteger (num)</synopsis>
+          <para>Check if argument is a non-negative real integer.  That is, either a positive integer or 
zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
+         <listitem>
+          <synopsis>IsPositiveInteger (num)</synopsis>
+          <para>Aliases: <function>IsNaturalNumber</function></para>
+          <para>Check if argument is a positive real integer.  Note that
+we accept the convention that 0 is not a natural number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsRational"/>IsRational</term>
+         <listitem>
+          <synopsis>IsRational (num)</synopsis>
+          <para>Check if argument is a rational number (non-complex).  Of course rational simply means "not 
stored as a floating point number."</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsReal"/>IsReal</term>
+         <listitem>
+          <synopsis>IsReal (num)</synopsis>
+          <para>Check if argument is a real number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Numerator"/>Numerator</term>
+         <listitem>
+          <synopsis>Numerator (x)</synopsis>
+          <para>Get the numerator of a rational number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Numerator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Re"/>Re</term>
+         <listitem>
+          <synopsis>Re (z)</synopsis>
+          <para>Aliases: <function>RealPart</function></para>
+         <para>Get the real part of a complex number.  For example <userinput>Re(3+4i)</userinput> yields 
3.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Real_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Sign"/>Sign</term>
+         <listitem>
+          <synopsis>Sign (x)</synopsis>
+          <para>Aliases: <function>sign</function></para>
+          <para>Return the sign of a number.  That is returns
+<literal>-1</literal> if value is negative,
+<literal>0</literal> if value is zero and
+<literal>1</literal> if value is positive.  If <varname>x</varname> is a complex
+value then <function>Sign</function> returns the direction or 0.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ceil"/>ceil</term>
+         <listitem>
+          <synopsis>ceil (x)</synopsis>
+          <para>Aliases: <function>Ceiling</function></para>
+         <para>Get the lowest integer more than or equal to <varname>n</varname>. Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
+= 2
+<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
+= -1
+</screen>
+           </para>
+          <para>Note that you should be careful and notice that floating point
+                  numbers are stored in binary and so may not be what you
+                  expect.  For example <userinput>ceil(420/4.2)</userinput>
+                  returns 101 instead of the expected 100.  This is because
+                  4.2 is actually very slightly less than 4.2.  Use rational
+                  representation <userinput>42/10</userinput> if you want
+                  exact arithmetic.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exp"/>exp</term>
+         <listitem>
+          <synopsis>exp (x)</synopsis>
+          <para>
+           The exponential function.  This is the function
+           <userinput>e^x</userinput> where <varname>e</varname>
+           is the <link linkend="gel-function-e">base of the natural
+           logarithm</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Exponential_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ExponentialFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-float"/>float</term>
+         <listitem>
+          <synopsis>float (x)</synopsis>
+          <para>Make number a floating point value.  That is returns the floating point representation of 
the number <varname>x</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-floor"/>floor</term>
+         <listitem>
+          <synopsis>floor (x)</synopsis>
+          <para>Aliases: <function>Floor</function></para>
+          <para>Get the highest integer less than or equal to <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ln"/>ln</term>
+         <listitem>
+          <synopsis>ln (x)</synopsis>
+          <para>The natural logarithm, the logarithm to base <varname>e</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Natural_logarithm";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NaturalLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log"/>log</term>
+         <listitem>
+          <synopsis>log (x)</synopsis>
+          <synopsis>log (x,b)</synopsis>
+         <para>Logarithm of <varname>x</varname> base <varname>b</varname> (calls <link 
linkend="gel-function-DiscreteLog"><function>DiscreteLog</function></link> if in modulo mode), if base is not 
given, <link linkend="gel-function-e"><varname>e</varname></link> is used.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log10"/>log10</term>
+         <listitem>
+          <synopsis>log10 (x)</synopsis>
+          <para>Logarithm of <varname>x</varname> base 10.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log2"/>log2</term>
+         <listitem>
+          <synopsis>log2 (x)</synopsis>
+          <para>Aliases: <function>lg</function></para>
+          <para>Logarithm of <varname>x</varname> base 2.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-max"/>max</term>
+         <listitem>
+          <synopsis>max (a,args...)</synopsis>
+          <para>Aliases: <function>Max</function> <function>Maximum</function></para>
+          <para>Returns the maximum of arguments or matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-min"/>min</term>
+         <listitem>
+          <synopsis>min (a,args...)</synopsis>
+          <para>Aliases: <function>Min</function> <function>Minimum</function></para>
+          <para>Returns the minimum of arguments or matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rand"/>rand</term>
+         <listitem>
+          <synopsis>rand (size...)</synopsis>
+          <para>Generate random float in the range <literal>[0,1)</literal>.
+If size is given then a matrix (if two numbers are specified) or vector (if one
+number is specified) of the given size returned.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-randint"/>randint</term>
+         <listitem>
+          <synopsis>randint (max,size...)</synopsis>
+          <para>Generate random integer in the range
+<literal>[0,max)</literal>.
+If size is given then a matrix (if two numbers are specified) or vector (if one
+number is specified) of the given size returned.  For example,
+          <screen><prompt>genius&gt;</prompt> <userinput>randint(4)</userinput>
+= 3
+<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
+=
+[0      1]
+<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
+=
+[2      2       1
+ 0      0       3]
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-round"/>round</term>
+         <listitem>
+          <synopsis>round (x)</synopsis>
+          <para>Aliases: <function>Round</function></para>
+          <para>Round a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sqrt"/>sqrt</term>
+         <listitem>
+          <synopsis>sqrt (x)</synopsis>
+          <para>Aliases: <function>SquareRoot</function></para>
+          <para>The square root.  When operating modulo some integer will return either a 
<constant>null</constant> or a vector of the square roots.  Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>sqrt(2)</userinput>
+= 1.41421356237
+<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
+= 1i
+<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
+=
+[2      5]
+<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
+= 4
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Square_root";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/SquareRoot";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-trunc"/>trunc</term>
+         <listitem>
+          <synopsis>trunc (x)</synopsis>
+          <para>Aliases: <function>Truncate</function> <function>IntegerPart</function></para>
+          <para>Truncate number to an integer (return the integer part).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-trigonometry">
+      <title>Trigonometria</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-acos"/>acos</term>
+         <listitem>
+          <synopsis>acos (x)</synopsis>
+          <para>Aliases: <function>arccos</function></para>
+          <para>The arccos (inverse cos) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acosh"/>acosh</term>
+         <listitem>
+          <synopsis>acosh (x)</synopsis>
+          <para>Aliases: <function>arccosh</function></para>
+          <para>The arccosh (inverse cosh) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acot"/>acot</term>
+         <listitem>
+          <synopsis>acot (x)</synopsis>
+          <para>Aliases: <function>arccot</function></para>
+          <para>The arccot (inverse cot) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acoth"/>acoth</term>
+         <listitem>
+          <synopsis>acoth (x)</synopsis>
+          <para>Aliases: <function>arccoth</function></para>
+          <para>The arccoth (inverse coth) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsc"/>acsc</term>
+         <listitem>
+          <synopsis>acsc (x)</synopsis>
+          <para>Aliases: <function>arccsc</function></para>
+          <para>The inverse cosecant function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsch"/>acsch</term>
+         <listitem>
+          <synopsis>acsch (x)</synopsis>
+          <para>Aliases: <function>arccsch</function></para>
+          <para>The inverse hyperbolic cosecant function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asec"/>asec</term>
+         <listitem>
+          <synopsis>asec (x)</synopsis>
+          <para>Aliases: <function>arcsec</function></para>
+          <para>The inverse secant function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asech"/>asech</term>
+         <listitem>
+          <synopsis>asech (x)</synopsis>
+          <para>Aliases: <function>arcsech</function></para>
+          <para>The inverse hyperbolic secant function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asin"/>asin</term>
+         <listitem>
+          <synopsis>asin (x)</synopsis>
+          <para>Aliases: <function>arcsin</function></para>
+          <para>The arcsin (inverse sin) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asinh"/>asinh</term>
+         <listitem>
+          <synopsis>asinh (x)</synopsis>
+          <para>Aliases: <function>arcsinh</function></para>
+          <para>The arcsinh (inverse sinh) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan"/>atan</term>
+         <listitem>
+          <synopsis>atan (x)</synopsis>
+          <para>Aliases: <function>arctan</function></para>
+          <para>Calculates the arctan (inverse tan) function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Arctangent";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atanh"/>atanh</term>
+         <listitem>
+          <synopsis>atanh (x)</synopsis>
+          <para>Aliases: <function>arctanh</function></para>
+          <para>The arctanh (inverse tanh) function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan2"/>atan2</term>
+         <listitem>
+          <synopsis>atan2 (y, x)</synopsis>
+          <para>Aliases: <function>arctan2</function></para>
+          <para>Calculates the arctan2 function.  If
+         <userinput>x&gt;0</userinput> then it returns
+         <userinput>atan(y/x)</userinput>.  If <userinput>x&lt;0</userinput>
+         then it returns <userinput>sign(y) * (pi - atan(|y/x|)</userinput>.
+         When <userinput>x=0</userinput> it returns <userinput>sign(y) *
+         pi/2</userinput>.  <userinput>atan2(0,0)</userinput> returns 0
+         rather than failing.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Atan2";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cos"/>cos</term>
+         <listitem>
+          <synopsis>cos (x)</synopsis>
+          <para>Calculates the cosine function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cosh"/>cosh</term>
+         <listitem>
+          <synopsis>cosh (x)</synopsis>
+          <para>Calculates the hyperbolic cosine function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cot"/>cot</term>
+         <listitem>
+          <synopsis>cot (x)</synopsis>
+          <para>The cotangent function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-coth"/>coth</term>
+         <listitem>
+          <synopsis>coth (x)</synopsis>
+          <para>The hyperbolic cotangent function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csc"/>csc</term>
+         <listitem>
+          <synopsis>csc (x)</synopsis>
+          <para>The cosecant function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csch"/>csch</term>
+         <listitem>
+          <synopsis>csch (x)</synopsis>
+          <para>The hyperbolic cosecant function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sec"/>sec</term>
+         <listitem>
+          <synopsis>sec (x)</synopsis>
+          <para>The secant function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sech"/>sech</term>
+         <listitem>
+          <synopsis>sech (x)</synopsis>
+          <para>The hyperbolic secant function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sin"/>sin</term>
+         <listitem>
+          <synopsis>sin (x)</synopsis>
+          <para>Calculates the sine function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinh"/>sinh</term>
+         <listitem>
+          <synopsis>sinh (x)</synopsis>
+          <para>Calculates the hyperbolic sine function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tan"/>tan</term>
+         <listitem>
+          <synopsis>tan (x)</synopsis>
+          <para>Calculates the tan function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tanh"/>tanh</term>
+         <listitem>
+          <synopsis>tanh (x)</synopsis>
+          <para>The hyperbolic tangent function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-number-theory">
+      <title>Teoria dos números</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
+         <listitem>
+          <synopsis>AreRelativelyPrime (a,b)</synopsis>
+          <para>
+           Are the real integers <varname>a</varname> and <varname>b</varname> relatively prime?
+           Returns <constant>true</constant> or <constant>false</constant>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coprime_integers";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RelativelyPrime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/RelativelyPrime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
+         <listitem>
+          <synopsis>BernoulliNumber (n)</synopsis>
+          <para>Return the <varname>n</varname>th Bernoulli number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bernoulli_number";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/BernoulliNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
+         <listitem>
+          <synopsis>ChineseRemainder (a,m)</synopsis>
+          <para>Aliases: <function>CRT</function></para>
+         <para>Find the <varname>x</varname> that solves the system given by
+               the vector <varname>a</varname> and modulo the elements of
+               <varname>m</varname>, using the Chinese Remainder Theorem.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Chinese_remainder_theorem";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ChineseRemainderTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
+         <listitem>
+          <synopsis>CombineFactorizations (a,b)</synopsis>
+         <para>Given two factorizations, give the factorization of the
+               product.</para>
+         <para>See <link linkend="gel-function-Factorize">Factorize</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
+         <listitem>
+          <synopsis>ConvertFromBase (v,b)</synopsis>
+          <para>Convert a vector of values indicating powers of b to a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
+         <listitem>
+          <synopsis>ConvertToBase (n,b)</synopsis>
+          <para>Convert a number to a vector of powers for elements in base <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
+         <listitem>
+          <synopsis>DiscreteLog (n,b,q)</synopsis>
+          <para>Find discrete log of <varname>n</varname> base <varname>b</varname> in
+           F<subscript>q</subscript>, the finite field of order <varname>q</varname>, where 
<varname>q</varname>
+           is a prime, using the Silver-Pohlig-Hellman algorithm.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Discrete_logarithm";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/DiscreteLogarithm";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/DiscreteLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Divides"/>Divides</term>
+         <listitem>
+          <synopsis>Divides (m,n)</synopsis>
+          <para>Checks divisibility (if <varname>m</varname> divides <varname>n</varname>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
+         <listitem>
+          <synopsis>EulerPhi (n)</synopsis>
+          <para>
+           Compute the Euler phi function for <varname>n</varname>, that is
+           the number of integers between 1 and <varname>n</varname>
+           relatively prime to <varname>n</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler_phi";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/EulerPhifunction";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/TotientFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
+         <listitem>
+          <synopsis>ExactDivision (n,d)</synopsis>
+          <para>
+           Return <userinput>n/d</userinput> but only if <varname>d</varname>
+           divides <varname>n</varname>.  If <varname>d</varname>
+           does not divide <varname>n</varname> then this function returns
+           garbage.  This is a lot faster for very large numbers
+           than the operation <userinput>n/d</userinput>, but of course only
+           useful if you know that the division is exact.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorize"/>Factorize</term>
+         <listitem>
+          <synopsis>Factorize (n)</synopsis>
+          <para>
+           Return factorization of a number as a matrix.  The first
+           row is the primes in the factorization (including 1) and the
+           second row are the powers.  So for example:
+           <screen><prompt>genius&gt;</prompt> <userinput>Factorize(11*11*13)</userinput>
+=
+[1      11      13
+ 1      2       1]</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Factorization";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factors"/>Factors</term>
+         <listitem>
+          <synopsis>Factors (n)</synopsis>
+          <para>
+           Return all factors of <varname>n</varname> in a vector.  This
+           includes all the non-prime factors as well.  It includes 1 and the
+           number itself.  So for example to print all the perfect numbers
+           (those that are sums of their factors) up to the number 1000 you
+           could do (this is of course very inefficient)
+           <programlisting>for n=1 to 1000 do (
+    if MatrixSum (Factors(n)) == 2*n then
+        print(n)
+)
+</programlisting>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
+         <listitem>
+          <synopsis>FermatFactorization (n,tries)</synopsis>
+          <para>
+           Attempt Fermat factorization of <varname>n</varname> into
+           <userinput>(t-s)*(t+s)</userinput>, returns <varname>t</varname>
+           and <varname>s</varname> as a vector if possible, <constant>null</constant> otherwise.
+           <varname>tries</varname> specifies the number of tries before
+           giving up.
+         </para>
+          <para>
+           This is a fairly good factorization if your number is the product
+           of two factors that are very close to each other.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fermat_factorization";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindPrimitiveElementMod (q)</synopsis>
+          <para>Find the first primitive element in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>.  Of course <varname>q</varname> must be a prime.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
+          <para>Find a random primitive element in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname> (q must be a prime).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
+         <listitem>
+          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
+          <para>Compute discrete log base <varname>b</varname> of n in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname> (<varname>q</varname> a prime), using the
+factor base <varname>S</varname>.  <varname>S</varname> should be a column of
+primes possibly with second column precalculated by
+<link 
linkend="gel-function-IndexCalculusPrecalculation"><function>IndexCalculusPrecalculation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
+         <listitem>
+          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
+         <para>Run the precalculation step of
+                 <link linkend="gel-function-IndexCalculus"><function>IndexCalculus</function></link> for 
logarithms base <varname>b</varname> in
+F<subscript>q</subscript>, the finite group of order <varname>q</varname>
+(<varname>q</varname> a prime), for the factor base <varname>S</varname> (where
+<varname>S</varname> is a column vector of primes).  The logs will be
+precalculated and returned in the second column.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsEven"/>IsEven</term>
+         <listitem>
+          <synopsis>IsEven (n)</synopsis>
+          <para>Tests if an integer is even.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
+         <listitem>
+          <synopsis>IsMersennePrimeExponent (p)</synopsis>
+          <para>
+           Tests if a positive integer <varname>p</varname> is a
+           Mersenne prime exponent.  That is if 
+            2<superscript>p</superscript>-1 is a prime.  It does this
+           by looking it up in a table of known values, which is relatively
+           short.
+           See also
+           <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link>
+           and
+           <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
+         <listitem>
+          <synopsis>IsNthPower (m,n)</synopsis>
+          <para>
+           Tests if a rational number <varname>m</varname> is a perfect
+           <varname>n</varname>th power.  See also
+           <link linkend="gel-function-IsPerfectPower">IsPerfectPower</link>
+           and
+           <link linkend="gel-function-IsPerfectSquare">IsPerfectSquare</link>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
+         <listitem>
+          <synopsis>IsOdd (n)</synopsis>
+          <para>Tests if an integer is odd.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
+         <listitem>
+          <synopsis>IsPerfectPower (n)</synopsis>
+          <para>Check an integer for being any perfect power, a<superscript>b</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
+         <listitem>
+          <synopsis>IsPerfectSquare (n)</synopsis>
+          <para>
+           Check an integer for being a perfect square of an integer.  The number must
+           be an integer.  Negative integers are of course never perfect
+           squares of integers.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
+         <listitem>
+          <synopsis>IsPrime (n)</synopsis>
+          <para>
+           Tests primality of integers, for numbers less than 2.5e10 the
+           answer is deterministic (if Riemann hypothesis is true).  For
+           numbers larger, the probability of a false positive
+           depends on
+           <link linkend="gel-function-IsPrimeMillerRabinReps">
+           <function>IsPrimeMillerRabinReps</function></link>.  That
+           is the probability of false positive is 1/4 to the power
+           <function>IsPrimeMillerRabinReps</function>.  The default
+           value of 22 yields a probability of about 5.7e-14.
+         </para>
+          <para>
+           If <constant>false</constant> is returned, you can be sure that
+           the number is a composite.  If you want to be absolutely sure
+           that you have a prime you can use 
+           <link linkend="gel-function-MillerRabinTestSure">
+           <function>MillerRabinTestSure</function></link> but it may take
+           a lot longer.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
+         <listitem>
+          <synopsis>IsPrimitiveMod (g,q)</synopsis>
+          <para>Check if <varname>g</varname> is primitive in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>, where <varname>q</varname> is a prime.  If <varname>q</varname> is not 
prime results are bogus.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
+         <listitem>
+          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
+          <para>Check if <varname>g</varname> is primitive in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>, where <varname>q</varname> is a prime and
+<varname>f</varname> is a vector of prime factors of <varname>q</varname>-1.
+If <varname>q</varname> is not prime results are bogus.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
+         <listitem>
+          <synopsis>IsPseudoprime (n,b)</synopsis>
+          <para>If <varname>n</varname> is a pseudoprime base <varname>b</varname> but not a prime,
+                 that is if <userinput>b^(n-1) == 1 mod n</userinput>.  This calls the <link 
linkend="gel-function-PseudoprimeTest"><function>PseudoprimeTest</function></link></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
+         <listitem>
+          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
+          <para>Test if <varname>n</varname> is a strong pseudoprime to base <varname>b</varname> but not a 
prime.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
+         <listitem>
+          <synopsis>Jacobi (a,b)</synopsis>
+          <para>Aliases: <function>JacobiSymbol</function></para>
+          <para>Calculate the Jacobi symbol (a/b) (b should be odd).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
+         <listitem>
+          <synopsis>JacobiKronecker (a,b)</synopsis>
+          <para>Aliases: <function>JacobiKroneckerSymbol</function></para>
+          <para>Calculate the Jacobi symbol (a/b) with the Kronecker extension (a/2)=(2/a) when a odd, or 
(a/2)=0 when a even.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
+         <listitem>
+          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
+          <para>Return the residue of <varname>a</varname> mod <varname>n</varname> with the least absolute 
value (in the interval -n/2 to n/2).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Legendre"/>Legendre</term>
+         <listitem>
+          <synopsis>Legendre (a,p)</synopsis>
+          <para>Aliases: <function>LegendreSymbol</function></para>
+          <para>Calculate the Legendre symbol (a/p).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/LegendreSymbol";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LegendreSymbol.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
+         <listitem>
+          <synopsis>LucasLehmer (p)</synopsis>
+          <para>Test if 2<superscript>p</superscript>-1 is a Mersenne prime using the Lucas-Lehmer test.
+           See also
+           <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link>
+           and
+           <link linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>.
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasLhemer";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Lucas-LehmerTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
+         <listitem>
+          <synopsis>LucasNumber (n)</synopsis>
+          <para>Returns the <varname>n</varname>th Lucas number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas_number";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasNumbers";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LucasNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
+         <listitem>
+          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
+          <para>Return all maximal prime power factors of a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
+         <listitem>
+          <synopsis>MersennePrimeExponents</synopsis>
+          <para>
+           A vector of known Mersenne prime exponents, that is
+           a list of positive integers
+           <varname>p</varname> such that
+            2<superscript>p</superscript>-1 is a prime.
+           See also
+           <link linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>
+           and
+           <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
+         <listitem>
+          <synopsis>MillerRabinTest (n,reps)</synopsis>
+          <para>
+           Use the Miller-Rabin primality test on <varname>n</varname>,
+           <varname>reps</varname> number of times.  The probability of false
+           positive is <userinput>(1/4)^reps</userinput>.  It is probably
+           usually better to use
+           <link linkend="gel-function-IsPrime">
+           <function>IsPrime</function></link> since that is faster and
+           better on smaller integers.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink> 
or
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
+         <listitem>
+          <synopsis>MillerRabinTestSure (n)</synopsis>
+          <para>
+           Use the Miller-Rabin primality test on <varname>n</varname> with
+           enough bases that assuming the Generalized Riemann Hypothesis the
+           result is deterministic.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink>, or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
+         <listitem>
+          <synopsis>ModInvert (n,m)</synopsis>
+          <para>Returns inverse of n mod m.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/ModularInverse.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
+         <listitem>
+          <synopsis>MoebiusMu (n)</synopsis>
+          <para>
+           Return the Moebius mu function evaluated in <varname>n</varname>.
+           That is, it returns 0 if <varname>n</varname> is not a product
+           of distinct primes and <userinput>(-1)^k</userinput> if it is
+           a product of <varname>k</varname> distinct primes.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/MoebiusFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/MoebiusFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
+         <listitem>
+          <synopsis>NextPrime (n)</synopsis>
+          <para>
+           Returns the least prime greater than <varname>n</varname>.
+           Negatives of primes are considered prime and so to get the
+           previous prime you can use <userinput>-NextPrime(-n)</userinput>.
+         </para>
+          <para>
+           This function uses the GMPs <function>mpz_nextprime</function>,
+           which in turn uses the probabilistic Miller-Rabin test
+           (See also <link 
linkend="gel-function-MillerRabinTest"><function>MillerRabinTest</function></link>).
+           The probability
+           of false positive is not tunable, but is low enough
+           for all practical purposes.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
+         <listitem>
+          <synopsis>PadicValuation (n,p)</synopsis>
+          <para>Returns the p-adic valuation (number of trailing zeros in base <varname>p</varname>).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/P-adic_order";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/PAdicValuation";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
+         <listitem>
+          <synopsis>PowerMod (a,b,m)</synopsis>
+          <para>
+           Compute <userinput>a^b mod m</userinput>.  The
+           <varname>b</varname>'s power of <varname>a</varname> modulo
+           <varname>m</varname>.  It is not necessary to use this function
+           as it is automatically used in modulo mode.  Hence
+           <userinput>a^b mod m</userinput> is just as fast.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Prime"/>Prime</term>
+         <listitem>
+          <synopsis>Prime (n)</synopsis>
+          <para>Aliases: <function>prime</function></para>
+          <para>Return the <varname>n</varname>th prime (up to a limit).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
+         <listitem>
+          <synopsis>PrimeFactors (n)</synopsis>
+          <para>Return all prime factors of a number as a vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Prime_factor";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeFactor.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
+         <listitem>
+          <synopsis>PseudoprimeTest (n,b)</synopsis>
+         <para>Pseudoprime test, returns <constant>true</constant> if and only if
+               <userinput>b^(n-1) == 1  mod n</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Pseudoprime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pseudoprime.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
+         <listitem>
+          <synopsis>RemoveFactor (n,m)</synopsis>
+          <para>Removes all instances of the factor <varname>m</varname> from the number 
<varname>n</varname>.  That is divides by the largest power of <varname>m</varname>, that divides 
<varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Divisibility";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Factor.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
+         <listitem>
+          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
+          <para>Find discrete log of <varname>n</varname> base <varname>b</varname> in 
F<subscript>q</subscript>, the finite group of order <varname>q</varname>, where <varname>q</varname> is a 
prime using the Silver-Pohlig-Hellman algorithm, given <varname>f</varname> being the factorization of 
<varname>q</varname>-1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
+         <listitem>
+          <synopsis>SqrtModPrime (n,p)</synopsis>
+          <para>Find square root of <varname>n</varname> modulo <varname>p</varname> (where 
<varname>p</varname> is a prime).  Null is returned if not a quadratic residue.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticResidue";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QuadraticResidue.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
+         <listitem>
+          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
+          <para>Run the strong pseudoprime test base <varname>b</varname> on <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Strong_pseudoprime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/StrongPseudoprime";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/StrongPseudoprime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-gcd"/>gcd</term>
+         <listitem>
+          <synopsis>gcd (a,args...)</synopsis>
+          <para>Aliases: <function>GCD</function></para>
+          <para>
+           Greatest common divisor of integers.  You can enter as many
+           integers as you want in the argument list, or you can give
+           a vector or a matrix of integers.  If you give more than
+           one matrix of the same size then GCD is done element by
+           element.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greatest_common_divisor";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/GreatestCommonDivisor";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/GreatestCommonDivisor.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-lcm"/>lcm</term>
+         <listitem>
+          <synopsis>lcm (a,args...)</synopsis>
+          <para>Aliases: <function>LCM</function></para>
+          <para>
+           Least common multiplier of integers.  You can enter as many
+           integers as you want in the argument list, or you can give a 
+           vector or a matrix of integers.  If you give more than one
+           matrix of the same size then LCM is done element by element.    
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Least_common_multiple";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LeastCommonMultiple";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LeastCommonMultiple.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-matrix">
+      <title>Manipulação de matrizes</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix (a,func)</synopsis>
+          <para>Apply a function over all entries of a matrix and return a matrix of the results.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix2 (a,b,func)</synopsis>
+          <para>Apply a function over all entries of 2 matrices (or 1 value and 1 matrix) and return a 
matrix of the results.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
+         <listitem>
+          <synopsis>ColumnsOf (M)</synopsis>
+          <para>Gets the columns of a matrix as a horizontal vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
+         <listitem>
+          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
+          <para>Remove column(s) and row(s) from a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
+         <listitem>
+          <synopsis>CompoundMatrix (k,A)</synopsis>
+          <para>Calculate the kth compound matrix of A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
+         <listitem>
+          <synopsis>CountZeroColumns (M)</synopsis>
+          <para>
+          Count the number of zero columns in a matrix.  For example,
+          once you column-reduce a matrix, you can use this to find
+          the nullity.  See <link linkend="gel-function-cref"><function>cref</function></link>
+          and <link linkend="gel-function-Nullity"><function>Nullity</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
+         <listitem>
+          <synopsis>DeleteColumn (M,col)</synopsis>
+          <para>Delete a column of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
+         <listitem>
+          <synopsis>DeleteRow (M,row)</synopsis>
+          <para>Delete a row of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
+         <listitem>
+          <synopsis>DiagonalOf (M)</synopsis>
+          <para>Gets the diagonal entries of a matrix as a column vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_of_a_matrix#Matrices";>Wikipedia</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
+         <listitem>
+          <synopsis>DotProduct (u,v)</synopsis>
+         <para>Get the dot product of two vectors.  The vectors must be of the
+                 same size.  No conjugates are taken so this is a bilinear form even if working over the 
complex numbers; This is the bilinear scalar product not the sesquilinear scalar product.  See <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link> for the standard sesquilinear inner 
product.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Dot_product";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DotProduct";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
+         <listitem>
+          <synopsis>ExpandMatrix (M)</synopsis>
+          <para>
+           Expands a matrix just like we do on unquoted matrix input.
+           That is we expand any internal matrices as blocks.  This is
+           a way to construct matrices out of smaller ones and this is
+           normally done automatically on input unless the matrix is quoted.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
+         <listitem>
+          <synopsis>HermitianProduct (u,v)</synopsis>
+          <para>Aliases: <function>InnerProduct</function></para>
+          <para>Get the Hermitian product of two vectors.  The vectors must be of the same size.  This is a 
sesquilinear form using the identity matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sesquilinear_form";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/HermitianInnerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-I"/>I</term>
+         <listitem>
+          <synopsis>I (n)</synopsis>
+          <para>Aliases: <function>eye</function></para>
+         <para>Return an identity matrix of a given size, that is <varname>n</varname> by 
<varname>n</varname>.  If <varname>n</varname> is zero, returns <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Identity_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/IdentityMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
+         <listitem>
+          <synopsis>IndexComplement (vec,msize)</synopsis>
+          <para>Return the index complement of a vector of indexes.  Everything is one based.  For example 
for vector <userinput>[2,3]</userinput> and size
+<userinput>5</userinput>, we return <userinput>[1,4,5]</userinput>.  If
+<varname>msize</varname> is 0, we always return <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
+         <listitem>
+          <synopsis>IsDiagonal (M)</synopsis>
+          <para>É uma matriz diagonal.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
+         <listitem>
+          <synopsis>IsIdentity (x)</synopsis>
+          <para>Check if a matrix is the identity matrix.  Automatically returns <constant>false</constant>
+           if the matrix is not square.  Also works on numbers, in which
+           case it is equivalent to <userinput>x==1</userinput>.  When <varname>x</varname> is
+           <constant>null</constant> (we could think of that as a 0 by 0 matrix),
+           no error is generated and <constant>false</constant> is returned.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
+         <listitem>
+          <synopsis>IsLowerTriangular (M)</synopsis>
+          <para>Is a matrix lower triangular. That is, are all the entries above the diagonal zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
+         <listitem>
+          <synopsis>IsMatrixInteger (M)</synopsis>
+          <para>Check if a matrix is a matrix of integers (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
+         <listitem>
+          <synopsis>IsMatrixNonnegative (M)</synopsis>
+          <para>Check if a matrix is non-negative, that is if each element is non-negative.
+         Do not confuse positive matrices with positive semi-definite matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
+         <listitem>
+          <synopsis>IsMatrixPositive (M)</synopsis>
+         <para>Check if a matrix is positive, that is if each element is
+positive (and hence real).  In particular, no element is 0.  Do not confuse
+positive matrices with positive definite matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
+         <listitem>
+          <synopsis>IsMatrixRational (M)</synopsis>
+          <para>Check if a matrix is a matrix of rational (non-complex)
+numbers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
+         <listitem>
+          <synopsis>IsMatrixReal (M)</synopsis>
+          <para>Check if a matrix is a matrix of real (non-complex) numbers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
+         <listitem>
+          <synopsis>IsMatrixSquare (M)</synopsis>
+          <para>
+           Check if a matrix is square, that is its width is equal to
+           its height.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
+         <listitem>
+          <synopsis>IsUpperTriangular (M)</synopsis>
+          <para>Is a matrix upper triangular?  That is, a matrix is upper triangular if all the entries 
below the diagonal are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
+         <listitem>
+          <synopsis>IsValueOnly (M)</synopsis>
+          <para>Check if a matrix is a matrix of numbers only.  Many internal
+functions make this check.  Values can be any number including complex numbers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsVector"/>IsVector</term>
+         <listitem>
+          <synopsis>IsVector (v)</synopsis>
+          <para>
+           Is argument a horizontal or a vertical vector.  Genius does
+           not distinguish between a matrix and a vector and a vector
+           is just a 1 by <varname>n</varname> or <varname>n</varname> by 1 matrix.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsZero"/>IsZero</term>
+         <listitem>
+          <synopsis>IsZero (x)</synopsis>
+          <para>Check if a matrix is composed of all zeros.  Also works on numbers, in which
+           case it is equivalent to <userinput>x==0</userinput>.  When <varname>x</varname> is
+           <constant>null</constant> (we could think of that as a 0 by 0 matrix),
+           no error is generated and <constant>true</constant> is returned as the condition is
+           vacuous.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
+         <listitem>
+          <synopsis>LowerTriangular (M)</synopsis>
+          <para>Returns a copy of the matrix <varname>M</varname> with all the entries above the diagonal 
set to zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
+         <listitem>
+          <synopsis>MakeDiagonal (v,arg...)</synopsis>
+          <para>Aliases: <function>diag</function></para>
+         <para>Make diagonal matrix from a vector.  Alternatively you can pass
+                 in the values to put on the diagonal as arguments.  So
+                 <userinput>MakeDiagonal([1,2,3])</userinput> is the same as
+                 <userinput>MakeDiagonal(1,2,3)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
+         <listitem>
+          <synopsis>MakeVector (A)</synopsis>
+          <para>Make column vector out of matrix by putting columns above
+                 each other.  Returns <constant>null</constant> when given <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
+         <listitem>
+          <synopsis>MatrixProduct (A)</synopsis>
+          <para>
+           Calculate the product of all elements in a matrix or vector.
+           That is we multiply all the elements and return a number that
+           is the product of all the elements.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
+         <listitem>
+          <synopsis>MatrixSum (A)</synopsis>
+          <para>
+           Calculate the sum of all elements in a matrix or vector.  That is
+           we add all the elements and return a number that is the
+           sum of all the elements.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
+         <listitem>
+          <synopsis>MatrixSumSquares (A)</synopsis>
+          <para>Calculate the sum of squares of all elements in a matrix
+           or vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroColumns"/>NonzeroColumns</term>
+         <listitem>
+          <synopsis>NonzeroColumns (M)</synopsis>
+          <para>Returns a row vector of the indices of nonzero columns in the matrix 
<varname>M</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroElements"/>NonzeroElements</term>
+         <listitem>
+          <synopsis>NonzeroElements (v)</synopsis>
+          <para>Returns a row vector of the indices of nonzero elements in the vector 
<varname>v</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
+         <listitem>
+          <synopsis>OuterProduct (u,v)</synopsis>
+          <para>Get the outer product of two vectors.  That is, suppose that
+<varname>u</varname> and <varname>v</varname> are vertical vectors, then
+the outer product is <userinput>v * u.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
+         <listitem>
+          <synopsis>ReverseVector (v)</synopsis>
+         <para>Reverse elements in a vector.  Return <constant>null</constant> if given 
<constant>null</constant></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSum"/>RowSum</term>
+         <listitem>
+          <synopsis>RowSum (m)</synopsis>
+          <para>Calculate sum of each row in a matrix and return a vertical
+vector with the result.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
+         <listitem>
+          <synopsis>RowSumSquares (m)</synopsis>
+          <para>Calculate sum of squares of each row in a matrix and return a vertical vector with the 
results.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
+         <listitem>
+          <synopsis>RowsOf (M)</synopsis>
+         <para>Gets the rows of a matrix as a vertical vector.  Each element
+of the vector is a horizontal vector that is the corresponding row of
+<varname>M</varname>.  This function is useful if you wish to loop over the
+rows of a matrix.  For example, as <userinput>for r in RowsOf(M) do
+something(r)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
+         <listitem>
+          <synopsis>SetMatrixSize (M,rows,columns)</synopsis>
+          <para>Make new matrix of given size from old one.  That is, a new
+         matrix will be returned to which the old one is copied.  Entries that
+         don't fit are clipped and extra space is filled with zeros.
+         If <varname>rows</varname> or <varname>columns</varname> are zero
+         then <constant>null</constant> is returned.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
+         <listitem>
+          <synopsis>ShuffleVector (v)</synopsis>
+         <para>Shuffle elements in a vector.  Return <constant>null</constant> if given 
<constant>null</constant>.</para>
+         <para>Version 1.0.13 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SortVector"/>SortVector</term>
+         <listitem>
+          <synopsis>SortVector (v)</synopsis>
+          <para>Sort vector elements in an increasing order.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
+         <listitem>
+          <synopsis>StripZeroColumns (M)</synopsis>
+          <para>Removes any all-zero columns of <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
+         <listitem>
+          <synopsis>StripZeroRows (M)</synopsis>
+          <para>Removes any all-zero rows of <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
+         <listitem>
+          <synopsis>Submatrix (m,r,c)</synopsis>
+          <para>Return column(s) and row(s) from a matrix.  This is
+just equivalent to <userinput>m@(r,c)</userinput>.  <varname>r</varname>
+and <varname>c</varname> should be vectors of rows and columns (or single numbers if only one row or column 
is needed).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
+         <listitem>
+          <synopsis>SwapRows (m,row1,row2)</synopsis>
+          <para>Swap two rows in a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
+         <listitem>
+          <synopsis>UpperTriangular (M)</synopsis>
+          <para>Returns a copy of the matrix <varname>M</varname> with all the entries below the diagonal 
set to zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-columns"/>columns</term>
+         <listitem>
+          <synopsis>columns (M)</synopsis>
+          <para>Get the number of columns of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-elements"/>elements</term>
+         <listitem>
+          <synopsis>elements (M)</synopsis>
+          <para>Get the total number of elements of a matrix.  This is the
+number of columns times the number of rows.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ones"/>ones</term>
+         <listitem>
+          <synopsis>ones (rows,columns...)</synopsis>
+         <para>Make an matrix of all ones (or a row vector if only one argument is given).  Returns 
<constant>null</constant> if either rows or columns are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rows"/>rows</term>
+         <listitem>
+          <synopsis>rows (M)</synopsis>
+          <para>Get the number of rows of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-zeros"/>zeros</term>
+         <listitem>
+          <synopsis>zeros (rows,columns...)</synopsis>
+         <para>Make a matrix of all zeros (or a row vector if only one argument is given).  Returns 
<constant>null</constant> if either rows or columns are zero.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-linear-algebra">
+      <title>Álgebra linear</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
+         <listitem>
+          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
+          <para>Get the auxiliary unit matrix of size <varname>n</varname>.  This is a square matrix with 
that is all zero except the
+superdiagonal being all ones.  It is the Jordan block matrix of one zero eigenvalue.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information 
on Jordan Canonical Form.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
+         <listitem>
+          <synopsis>BilinearForm (v,A,w)</synopsis>
+          <para>Evaluate (v,w) with respect to the bilinear form given by the matrix A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
+         <listitem>
+          <synopsis>BilinearFormFunction (A)</synopsis>
+          <para>Return a function that evaluates two vectors with respect to the bilinear form given by 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomial (M)</synopsis>
+          <para>Aliases: <function>CharPoly</function></para>
+         <para>Get the characteristic polynomial as a vector.  That is, return
+the coefficients of the polynomial starting with the constant term.  This is
+the polynomial defined by <userinput>det(M-xI)</userinput>.  The roots of this
+polynomial are the eigenvalues of <varname>M</varname>.
+See also <link 
linkend="gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</link>.
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
+         <para>Get the characteristic polynomial as a function.  This is
+the polynomial defined by <userinput>det(M-xI)</userinput>.  The roots of this
+polynomial are the eigenvalues of <varname>M</varname>.
+See also <link linkend="gel-function-CharacteristicPolynomial">CharacteristicPolynomial</link>.
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
+         <listitem>
+          <synopsis>ColumnSpace (M)</synopsis>
+         <para>Get a basis matrix for the columnspace of a matrix.  That is,
+return a matrix whose columns are the basis for the column space of
+<varname>M</varname>.  That is the space spanned by the columns of
+<varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
+         <listitem>
+          <synopsis>CommutationMatrix (m, n)</synopsis>
+         <para>Return the commutation matrix <userinput>K(m,n)</userinput>, which is the unique 
<userinput>m*n</userinput> by
+                 <userinput>m*n</userinput> matrix such that <userinput>K(m,n) * MakeVector(A) = 
MakeVector(A.')</userinput> for all <varname>m</varname> by <varname>n</varname>
+                 matrices <varname>A</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
+         <listitem>
+          <synopsis>CompanionMatrix (p)</synopsis>
+          <para>Companion matrix of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
+         <listitem>
+          <synopsis>ConjugateTranspose (M)</synopsis>
+          <para>Conjugate transpose of a matrix (adjoint).  This is the
+         same as the <userinput>'</userinput> operator.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Conjugate_transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ConjugateTranspose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Convolution"/>Convolution</term>
+         <listitem>
+          <synopsis>Convolution (a,b)</synopsis>
+          <para>Aliases: <function>convol</function></para>
+          <para>Calculate convolution of two horizontal vectors.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
+         <listitem>
+          <synopsis>ConvolutionVector (a,b)</synopsis>
+          <para>Calculate convolution of two horizontal vectors.  Return
+result as a vector and not added together.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
+         <listitem>
+          <synopsis>CrossProduct (v,w)</synopsis>
+         <para>CrossProduct of two vectors in R<superscript>3</superscript> as
+                 a column vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Cross_product";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
+         <listitem>
+          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
+          <para>Get the determinantal divisors of an integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
+         <listitem>
+          <synopsis>DirectSum (M,N...)</synopsis>
+          <para>Direct sum of matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
+         <listitem>
+          <synopsis>DirectSumMatrixVector (v)</synopsis>
+          <para>Direct sum of a vector of matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
+         <listitem>
+          <synopsis>Eigenvalues (M)</synopsis>
+          <para>Aliases: <function>eig</function></para>
+          <para>Get the eigenvalues of a square matrix.
+           Currently only works for matrices of size up to 4 by 4, or for
+           triangular matrices (for which the eigenvalues are on the
+            diagonal).
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvalue";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvalue";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvalue.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
+         <listitem>
+          <synopsis>Eigenvectors (M)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues, &amp;multiplicities)</synopsis>
+         <para>Get the eigenvectors of a square matrix.  Optionally get also
+the eigenvalues and their algebraic multiplicities.
+           Currently only works for matrices of size up to 2 by 2.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvector";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvector";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvector.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
+         <listitem>
+          <synopsis>GramSchmidt (v,B...)</synopsis>
+         <para>Apply the Gram-Schmidt process (to the columns) with respect to
+inner product given by <varname>B</varname>.  If <varname>B</varname> is not
+given then the standard Hermitian product is used.  <varname>B</varname> can
+either be a sesquilinear function of two arguments or it can be a matrix giving
+a sesquilinear form.  The vectors will be made orthonormal with respect to
+<varname>B</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GramSchmidtOrthogonalization";>Planetmath</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
+         <listitem>
+          <synopsis>HankelMatrix (c,r)</synopsis>
+         <para>Hankel matrix, a matrix whose skew-diagonals are constant.  <varname>c</varname> is the first 
row and <varname>r</varname> is the
+                 last column.  It is assumed that both arguments are vectors and the last element of 
<varname>c</varname> is the same
+                 as the first element of <varname>r</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hankel_matrix";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
+         <listitem>
+          <synopsis>HilbertMatrix (n)</synopsis>
+          <para>Hilbert matrix of order <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Image"/>Image</term>
+         <listitem>
+          <synopsis>Image (T)</synopsis>
+          <para>Get the image (columnspace) of a linear transform.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
+         <listitem>
+          <synopsis>InfNorm (v)</synopsis>
+          <para>Get the Inf Norm of a vector, sometimes called the sup norm or the max norm.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
+         <listitem>
+          <synopsis>InvariantFactorsInteger (M)</synopsis>
+          <para>Get the invariant factors of a square integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
+         <listitem>
+          <synopsis>InverseHilbertMatrix (n)</synopsis>
+          <para>Inverse Hilbert matrix of order <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
+         <listitem>
+          <synopsis>IsHermitian (M)</synopsis>
+          <para>Is a matrix Hermitian.  That is, is it equal to its conjugate transpose.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hermitian_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HermitianMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
+         <listitem>
+          <synopsis>IsInSubspace (v,W)</synopsis>
+          <para>Test if a vector is in a subspace.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
+         <listitem>
+          <synopsis>IsInvertible (n)</synopsis>
+          <para>Is a matrix (or number) invertible (Integer matrix is invertible if and only if it is 
invertible over the integers).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
+         <listitem>
+          <synopsis>IsInvertibleField (n)</synopsis>
+          <para>Is a matrix (or number) invertible over a field.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
+         <listitem>
+          <synopsis>IsNormal (M)</synopsis>
+          <para>Is <varname>M</varname> a normal matrix.  That is,
+         does <userinput>M*M' == M'*M</userinput>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/NormalMatrix";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
+         <listitem>
+          <synopsis>IsPositiveDefinite (M)</synopsis>
+          <para>Is <varname>M</varname> a Hermitian positive definite matrix.  That is if
+<userinput>HermitianProduct(M*v,v)</userinput> is always strictly positive for
+any vector <varname>v</varname>.
+<varname>M</varname> must be square and Hermitian to be positive definite.
+The check that is performed is that every principal submatrix has a non-negative
+determinant.
+(See <link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>
+           Note that some authors (for example Mathworld) do not require that
+           <varname>M</varname> be Hermitian, and then the condition is
+           on the real part of the inner product, but we do not take this
+           view.  If you wish to perform this check, just check the
+           Hermitian part of the matrix <varname>M</varname> as follows:
+           <userinput>IsPositiveDefinite(M+M')</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive-definite_matrix";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/PositiveDefinite";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
+         <listitem>
+          <synopsis>IsPositiveSemidefinite (M)</synopsis>
+          <para>Is <varname>M</varname> a Hermitian positive semidefinite matrix.  That is if
+<userinput>HermitianProduct(M*v,v)</userinput> is always non-negative for
+any vector <varname>v</varname>.
+<varname>M</varname> must be square and Hermitian to be positive semidefinite.
+The check that is performed is that every principal submatrix has a non-negative
+determinant.
+(See <link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>
+           Note that some authors do not require that
+           <varname>M</varname> be Hermitian, and then the condition is
+           on the real part of the inner product, but we do not take this
+           view.  If you wish to perform this check, just check the
+           Hermitian part of the matrix <varname>M</varname> as follows:
+           <userinput>IsPositiveSemidefinite(M+M')</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PositiveSemidefinite";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html";>Mathworld</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
+         <listitem>
+          <synopsis>IsSkewHermitian (M)</synopsis>
+          <para>Is a matrix skew-Hermitian.  That is, is the conjugate transpose equal to negative of the 
matrix.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SkewHermitianMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
+         <listitem>
+          <synopsis>IsUnitary (M)</synopsis>
+          <para>Is a matrix unitary?  That is, does
+         <userinput>M'*M</userinput> and <userinput>M*M'</userinput>
+         equal the identity.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/UnitaryTransformation";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/UnitaryMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
+         <listitem>
+          <synopsis>JordanBlock (n,lambda)</synopsis>
+          <para>Aliases: <function>J</function></para>
+          <para>Get the Jordan block corresponding to the eigenvalue
+         <varname>lambda</varname> with multiplicity <varname>n</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Kernel"/>Kernel</term>
+         <listitem>
+          <synopsis>Kernel (T)</synopsis>
+          <para>Get the kernel (nullspace) of a linear transform.</para>
+         <para>
+         (See <link linkend="gel-function-NullSpace">NullSpace</link>)
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerProduct"/>KroneckerProduct</term>
+         <listitem>
+          <synopsis>KroneckerProduct (M, N)</synopsis>
+          <para>Aliases: <function>TensorProduct</function></para>
+         <para>
+                 Compute the Kronecker product (tensor product in standard basis)
+                 of two matrices.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Kronecker_product";>Wikipedia</ulink>, 
+           <ulink url="http://planetmath.org/KroneckerProduct";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/KroneckerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
+         <listitem>
+          <synopsis>LUDecomposition (A, L, U)</synopsis>
+          <para>
+                 Get the LU decomposition of <varname>A</varname>, that is
+                 find a lower triangular matrix and upper triangular
+                 matrix whose product is <varname>A</varname>.
+           Store the result in the <varname>L</varname> and
+           <varname>U</varname>, which should be references.  It returns <constant>true</constant>
+           if successful.
+           For example suppose that A is a square matrix, then after running:
+           <screen><prompt>genius&gt;</prompt> <userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
+</screen>
+           You will have the lower matrix stored in a variable called
+           <varname>L</varname> and the upper matrix in a variable called
+           <varname>U</varname>.
+         </para>
+         <para>
+           This is the LU decomposition of a matrix aka Crout and/or Cholesky
+           reduction.
+           (ISBN 0-201-11577-8 pp.99-103)
+           The upper triangular matrix features a diagonal
+           of values 1 (one).  This is not Doolittle's Method, which features
+           the 1's diagonal on the lower matrix. 
+         </para>
+         <para>
+           Not all matrices have LU decompositions, for example
+           <userinput>[0,1;1,0]</userinput> does not and this function returns
+           <constant>false</constant> in this case and sets <varname>L</varname>
+           and <varname>U</varname> to <constant>null</constant>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/LU_decomposition";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LUDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LUDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Minor"/>Minor</term>
+         <listitem>
+          <synopsis>Minor (M,i,j)</synopsis>
+          <para>Get the <varname>i</varname>-<varname>j</varname> minor of a matrix.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Minor";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
+         <listitem>
+          <synopsis>NonPivotColumns (M)</synopsis>
+          <para>Return the columns that are not the pivot columns of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Norm"/>Norm</term>
+         <listitem>
+          <synopsis>Norm (v,p...)</synopsis>
+          <para>Aliases: <function>norm</function></para>
+          <para>Get the p Norm (or 2 Norm if no p is supplied) of a vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
+         <listitem>
+          <synopsis>NullSpace (T)</synopsis>
+          <para>Get the nullspace of a matrix.  That is the kernel of the
+         linear mapping that the matrix represents.  This is returned
+         as a matrix whose column space is the nullspace of
+         <varname>T</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullspace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Nullity"/>Nullity</term>
+         <listitem>
+          <synopsis>Nullity (M)</synopsis>
+          <para>Aliases: <function>nullity</function></para>
+          <para>Get the nullity of a matrix.  That is, return the dimension of
+the nullspace; the dimension of the kernel of <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullity";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
+         <listitem>
+          <synopsis>OrthogonalComplement (M)</synopsis>
+          <para>Get the orthogonal complement of the columnspace.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
+         <listitem>
+          <synopsis>PivotColumns (M)</synopsis>
+          <para>Return pivot columns of a matrix, that is columns that have a leading 1 in row reduced form. 
 Also returns the row where they occur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Projection"/>Projection</term>
+         <listitem>
+          <synopsis>Projection (v,W,B...)</synopsis>
+         <para>Projection of vector <varname>v</varname> onto subspace
+<varname>W</varname> with respect to inner product given by
+<varname>B</varname>.  If <varname>B</varname> is not given then the standard
+Hermitian product is used.  <varname>B</varname> can either be a sesquilinear
+function of two arguments or it can be a matrix giving a sesquilinear form.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
+         <listitem>
+          <synopsis>QRDecomposition (A, Q)</synopsis>
+          <para>
+           Get the QR decomposition of a square matrix <varname>A</varname>,
+           returns the upper triangular matrix <varname>R</varname>
+           and sets <varname>Q</varname> to the orthogonal (unitary) matrix.
+           <varname>Q</varname> should be a reference or <constant>null</constant> if you don't
+           want any return.
+           For example:
+           <screen><prompt>genius&gt;</prompt> <userinput>R = QRDecomposition(A,&amp;Q)</userinput>
+</screen>
+           You will have the upper triangular matrix stored in
+           a variable called
+           <varname>R</varname> and the orthogonal (unitary) matrix stored in
+           <varname>Q</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/QR_decomposition";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/QRDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QRDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
+         <listitem>
+          <synopsis>RayleighQuotient (A,x)</synopsis>
+          <para>Return the Rayleigh quotient (also called the Rayleigh-Ritz quotient or ratio) of a matrix 
and a vector.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
+         <listitem>
+          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</synopsis>
+          <para>Find eigenvalues of <varname>A</varname> using the Rayleigh
+               quotient iteration method.  <varname>x</varname> is a guess
+               at a eigenvector and could be random.  It should have 
+               nonzero imaginary part if it will have any chance at finding
+               complex eigenvalues.  The code will run at most
+               <varname>maxiter</varname> iterations and return <constant>null</constant>
+               if we cannot get within an error of <varname>epsilon</varname>.
+               <varname>vecref</varname> should either be <constant>null</constant> or a reference
+               to a variable where the eigenvector should be stored.
+               </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information on 
Rayleigh quotient.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rank"/>Rank</term>
+         <listitem>
+          <synopsis>Rank (M)</synopsis>
+          <para>Aliases: <function>rank</function></para>
+          <para>Get the rank of a matrix.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SylvestersLaw";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
+         <listitem>
+          <synopsis>RosserMatrix ()</synopsis>
+          <para>Returns the Rosser matrix, which is a classic symmetric eigenvalue test problem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
+         <listitem>
+          <synopsis>Rotation2D (angle)</synopsis>
+          <para>Aliases: <function>RotationMatrix</function></para>
+          <para>Return the matrix corresponding to rotation around origin in 
R<superscript>2</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
+         <listitem>
+          <synopsis>Rotation3DX (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the x-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
+         <listitem>
+          <synopsis>Rotation3DY (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the y-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
+         <listitem>
+          <synopsis>Rotation3DZ (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the z-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
+         <listitem>
+          <synopsis>RowSpace (M)</synopsis>
+          <para>Get a basis matrix for the rowspace of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
+         <listitem>
+          <synopsis>SesquilinearForm (v,A,w)</synopsis>
+          <para>Evaluate (v,w) with respect to the sesquilinear form given by the matrix A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
+         <listitem>
+          <synopsis>SesquilinearFormFunction (A)</synopsis>
+          <para>Return a function that evaluates two vectors with respect to the sesquilinear form given by 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
+         <listitem>
+          <synopsis>SmithNormalFormField (A)</synopsis>
+          <para>Returns the Smith normal form of a matrix over fields (will end up with 1's on the 
diagonal).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
+         <listitem>
+          <synopsis>SmithNormalFormInteger (M)</synopsis>
+          <para>Return the Smith normal form for square integer matrices over integers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
+         <listitem>
+          <synopsis>SolveLinearSystem (M,V,args...)</synopsis>
+         <para>Solve linear system Mx=V, return solution V if there is a unique solution, 
<constant>null</constant> otherwise.  Extra two reference parameters can optionally be used to get the 
reduced M and V.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
+         <listitem>
+          <synopsis>ToeplitzMatrix (c, r...)</synopsis>
+         <para>Return the Toeplitz matrix constructed given the first column c
+and (optionally) the first row r.  If only the column c is given then it is
+conjugated and the nonconjugated version is used for the first row to give a
+Hermitian matrix (if the first element is real of course).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Toeplitz_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ToeplitzMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Trace"/>Trace</term>
+         <listitem>
+          <synopsis>Trace (M)</synopsis>
+          <para>Aliases: <function>trace</function></para>
+          <para>Calculate the trace of a matrix.  That is the sum of the diagonal elements.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trace_(linear_algebra)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Trace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Transpose"/>Transpose</term>
+         <listitem>
+          <synopsis>Transpose (M)</synopsis>
+          <para>Transpose of a matrix.  This is the same as the
+          <userinput>.'</userinput> operator.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Transpose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
+         <listitem>
+          <synopsis>VandermondeMatrix (v)</synopsis>
+          <para>Aliases: <function>vander</function></para>
+          <para>Return the Vandermonde matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Vandermonde_matrix";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
+         <listitem>
+          <synopsis>VectorAngle (v,w,B...)</synopsis>
+          <para>The angle of two vectors with respect to inner product given by
+<varname>B</varname>.  If <varname>B</varname> is not given then the standard
+Hermitian product is used.  <varname>B</varname> can either be a sesquilinear
+function of two arguments or it can be a matrix giving a sesquilinear form.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
+         <listitem>
+          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
+          <para>The direct sum of the vector spaces M and N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
+         <listitem>
+          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
+          <para>Intersection of the subspaces given by M and N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
+         <listitem>
+          <synopsis>VectorSubspaceSum (M,N)</synopsis>
+          <para>The sum of the vector spaces M and N, that is {w | w=m+n, m in M, n in N}.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-adj"/>adj</term>
+         <listitem>
+          <synopsis>adj (m)</synopsis>
+          <para>Aliases: <function>Adjugate</function></para>
+          <para>Get the classical adjoint (adjugate) of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cref"/>cref</term>
+         <listitem>
+          <synopsis>cref (M)</synopsis>
+          <para>Aliases: <function>CREF</function> <function>ColumnReducedEchelonForm</function></para>
+          <para>Compute the Column Reduced Echelon Form.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-det"/>det</term>
+         <listitem>
+          <synopsis>det (M)</synopsis>
+          <para>Aliases: <function>Determinant</function></para>
+          <para>Get the determinant of a matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Determinant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Determinant2";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ref"/>ref</term>
+         <listitem>
+          <synopsis>ref (M)</synopsis>
+          <para>Aliases: <function>REF</function> <function>RowEchelonForm</function></para>
+         <para>Get the row echelon form of a matrix.  That is, apply gaussian
+elimination but not backaddition to <varname>M</varname>.  The pivot rows are
+divided to make all pivots 1.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rref"/>rref</term>
+         <listitem>
+          <synopsis>rref (M)</synopsis>
+          <para>Aliases: <function>RREF</function> <function>ReducedRowEchelonForm</function></para>
+          <para>Get the reduced row echelon form of a matrix.  That is, apply gaussian elimination together 
with backaddition to <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Reduced_row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ReducedRowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-combinatorics">
+      <title>Combinatória</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Catalan"/>Catalan</term>
+         <listitem>
+          <synopsis>Catalan (n)</synopsis>
+          <para>Get <varname>n</varname>th Catalan number.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CatalanNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Combinations"/>Combinations</term>
+         <listitem>
+          <synopsis>Combinations (k,n)</synopsis>
+          <para>Get all combinations of k numbers from 1 to n as a vector of vectors.
+         (See also <link linkend="gel-function-NextCombination">NextCombination</link>)
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
+         <listitem>
+          <synopsis>DoubleFactorial (n)</synopsis>
+          <para>Double factorial: <userinput>n(n-2)(n-4)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/DoubleFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorial"/>Factorial</term>
+         <listitem>
+          <synopsis>Factorial (n)</synopsis>
+          <para>Factorial: <userinput>n(n-1)(n-2)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Factorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
+         <listitem>
+          <synopsis>FallingFactorial (n,k)</synopsis>
+          <para>Falling factorial: <userinput>(n)_k = n(n-1)...(n-(k-1))</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FallingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
+         <listitem>
+          <synopsis>Fibonacci (x)</synopsis>
+          <para>Aliases: <function>fib</function></para>
+          <para>
+           Calculate <varname>n</varname>th Fibonacci number.  That
+           is the number defined recursively by
+           <userinput>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</userinput>
+           and 
+           <userinput>Fibonacci(1) = Fibonacci(2) = 1</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fibonacci_number";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/FibonacciSequence";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FibonacciNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
+         <listitem>
+          <synopsis>FrobeniusNumber (v,arg...)</synopsis>
+          <para>
+           Calculate the Frobenius number.  That is calculate largest
+           number that cannot be given as a non-negative integer linear
+           combination of a given vector of non-negative integers.
+           The vector can be given as separate numbers or a single vector.
+           All the numbers given should have GCD of 1.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coin_problem";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FrobeniusNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
+         <listitem>
+          <synopsis>GaloisMatrix (combining_rule)</synopsis>
+          <para>Galois matrix given a linear combining rule (a_1*x_1+...+a_n*x_n=x_(n+1)).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
+         <listitem>
+          <synopsis>GreedyAlgorithm (n,v)</synopsis>
+          <para>
+           Find the vector <varname>c</varname> of non-negative integers
+           such that taking the dot product with <varname>v</varname> is
+           equal to n.  If not possible returns <constant>null</constant>.  <varname>v</varname>
+           should be given sorted in increasing order and should consist
+           of non-negative integers.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greedy_algorithm";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GreedyAlgorithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
+         <listitem>
+          <synopsis>HarmonicNumber (n,r)</synopsis>
+          <para>Aliases: <function>HarmonicH</function></para>
+         <para>Harmonic Number, the <varname>n</varname>th harmonic number of order <varname>r</varname>.
+               That is, it is the sum of <userinput>1/k^r</userinput> for <varname>k</varname>
+               from 1 to n.  Equivalent to <userinput>sum k = 1 to n do 1/k^r</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Harmonic_number";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
+         <listitem>
+          <synopsis>Hofstadter (n)</synopsis>
+          <para>Hofstadter's function q(n) defined by q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2)).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hofstadter_sequence";>Wikipedia</ulink> for more 
information.
+           The sequence is <ulink url="https://oeis.org/A005185";>A005185 in OEIS</ulink>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
+         <listitem>
+          <synopsis>LinearRecursiveSequence (seed_values,combining_rule,n)</synopsis>
+          <para>Compute linear recursive sequence using Galois stepping.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
+         <listitem>
+          <synopsis>Multinomial (v,arg...)</synopsis>
+          <para>Calculate multinomial coefficients.  Takes a vector of
+           <varname>k</varname>
+           non-negative integers and computes the multinomial coefficient.
+           This corresponds to the coefficient in the homogeneous polynomial
+           in <varname>k</varname> variables with the corresponding powers.
+         </para>
+         <para>
+           The formula for <userinput>Multinomial(a,b,c)</userinput>
+           can be written as:
+<programlisting>(a+b+c)! / (a!b!c!)
+</programlisting>
+           In other words, if we would have only two elements, then
+<userinput>Multinomial(a,b)</userinput> is the same thing as
+<userinput>Binomial(a+b,a)</userinput> or
+<userinput>Binomial(a+b,b)</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Multinomial_theorem";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MultinomialTheorem";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/MultinomialCoefficient.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
+         <listitem>
+          <synopsis>NextCombination (v,n)</synopsis>
+         <para>Get combination that would come after v in call to
+combinations, first combination should be <userinput>[1:k]</userinput>.  This
+function is useful if you have many combinations to go through and you don't
+want to waste memory to store them all.
+         </para>
+         <para>
+           For example with Combinations you would normally write a loop like:
+          <screen><userinput>for n in Combinations (4,6) do (
+  SomeFunction (n)
+);</userinput>
+</screen>
+           But with NextCombination you would write something like:
+          <screen><userinput>n:=[1:4];
+do (
+  SomeFunction (n)
+) while not IsNull(n:=NextCombination(n,6));</userinput>
+</screen>
+         See also <link linkend="gel-function-Combinations">Combinations</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Pascal"/>Pascal</term>
+         <listitem>
+          <synopsis>Pascal (i)</synopsis>
+          <para>Get the Pascal's triangle as a matrix.  This will return
+         an <varname>i</varname>+1 by <varname>i</varname>+1 lower diagonal
+         matrix that is the Pascal's triangle after <varname>i</varname>
+         iterations.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PascalsTriangle";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Permutations"/>Permutations</term>
+         <listitem>
+          <synopsis>Permutations (k,n)</synopsis>
+          <para>Get all permutations of <varname>k</varname> numbers from 1 to <varname>n</varname> as a 
vector of vectors.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
+         <listitem>
+          <synopsis>RisingFactorial (n,k)</synopsis>
+          <para>Aliases: <function>Pochhammer</function></para>
+          <para>(Pochhammer) Rising factorial: (n)_k = n(n+1)...(n+(k-1)).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RisingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
+         <listitem>
+          <synopsis>StirlingNumberFirst (n,m)</synopsis>
+          <para>Aliases: <function>StirlingS1</function></para>
+          <para>Stirling number of the first kind.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersOfTheFirstKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
+         <listitem>
+          <synopsis>StirlingNumberSecond (n,m)</synopsis>
+          <para>Aliases: <function>StirlingS2</function></para>
+          <para>Stirling number of the second kind.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersSecondKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html";>Mathworld</ulink> 
for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
+         <listitem>
+          <synopsis>Subfactorial (n)</synopsis>
+          <para>Subfactorial: n! times sum_{k=0}^n (-1)^k/k!.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Triangular"/>Triangular</term>
+         <listitem>
+          <synopsis>Triangular (nth)</synopsis>
+          <para>Calculate the <varname>n</varname>th triangular number.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/TriangularNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nCr"/>nCr</term>
+         <listitem>
+          <synopsis>nCr (n,r)</synopsis>
+          <para>Aliases: <function>Binomial</function></para>
+          <para>Calculate combinations, that is, the binomial coefficient.
+               <varname>n</varname> can be any real number.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Choose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nPr"/>nPr</term>
+         <listitem>
+          <synopsis>nPr (n,r)</synopsis>
+          <para>Calculate the number of permutations of size
+          <varname>r</varname> of numbers from 1 to <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-calculus">
+      <title>Cálculo</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
+          <para>Integration of f by Composite Simpson's Rule on the interval [a,b] with n subintervals with 
error of max(f'''')*h^4*(b-a)/180, note that n should be even.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,FourthDerivativeBound,Tolerance)</synopsis>
+          <para>Integration of f by Composite Simpson's Rule on the interval [a,b] with the number of steps 
calculated by the fourth derivative bound and the desired tolerance.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Derivative"/>Derivative</term>
+         <listitem>
+          <synopsis>Derivative (f,x0)</synopsis>
+          <para>Attempt to calculate derivative by trying first symbolically and then numerically.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
+         <listitem>
+          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
+         <para>Return a function that is the even periodic extension of
+<function>f</function> with half period <varname>L</varname>.  That
+is a function defined on the interval <userinput>[0,L]</userinput>
+extended to be even on <userinput>[-L,L]</userinput> and then
+extended to be periodic with period <userinput>2*L</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link>
+           and
+           <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
+         <listitem>
+          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
+         <para>Return a function that is a Fourier series with the
+coefficients given by the vectors <varname>a</varname> (sines) and
+<varname>b</varname> (cosines).  Note that <userinput>a@(1)</userinput> is
+the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
+the term <userinput>cos(x*(n-1)*pi/L)</userinput>, while
+<userinput>b@(n)</userinput> refers to the term
+<userinput>sin(x*n*pi/L)</userinput>.  Either <varname>a</varname>
+or <varname>b</varname> can be <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
+         <listitem>
+          <synopsis>InfiniteProduct (func,start,inc)</synopsis>
+          <para>Try to calculate an infinite product for a single parameter function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
+         <listitem>
+          <synopsis>InfiniteProduct2 (func,arg,start,inc)</synopsis>
+          <para>Try to calculate an infinite product for a double parameter function with func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
+         <listitem>
+          <synopsis>InfiniteSum (func,start,inc)</synopsis>
+          <para>Try to calculate an infinite sum for a single parameter function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
+         <listitem>
+          <synopsis>InfiniteSum2 (func,arg,start,inc)</synopsis>
+          <para>Try to calculate an infinite sum for a double parameter function with func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
+         <listitem>
+          <synopsis>IsContinuous (f,x0)</synopsis>
+          <para>Try and see if a real-valued function is continuous at x0 by calculating the limit 
there.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
+         <listitem>
+          <synopsis>IsDifferentiable (f,x0)</synopsis>
+          <para>Test for differentiability by approximating the left and right limits and comparing.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
+         <listitem>
+          <synopsis>LeftLimit (f,x0)</synopsis>
+          <para>Calculate the left limit of a real-valued function at x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Limit"/>Limit</term>
+         <listitem>
+          <synopsis>Limit (f,x0)</synopsis>
+          <para>Calculate the limit of a real-valued function at x0.  Tries to calculate both left and right 
limits.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
+         <listitem>
+          <synopsis>MidpointRule (f,a,b,n)</synopsis>
+          <para>Integration by midpoint rule.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
+         <listitem>
+          <synopsis>NumericalDerivative (f,x0)</synopsis>
+          <para>Aliases: <function>NDerivative</function></para>
+          <para>Attempt to calculate numerical derivative.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of vectors <userinput>[a,b]</userinput>
+where <varname>a</varname> are the cosine coefficients and
+<varname>b</varname> are the sine coefficients of
+the Fourier series of
+<function>f</function> with half-period <varname>L</varname> (that is defined
+on <userinput>[-L,L]</userinput> and extended periodically) with coefficients
+up to <varname>N</varname>th harmonic computed numerically.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the Fourier series of
+<function>f</function> with half-period <varname>L</varname> (that is defined
+on <userinput>[-L,L]</userinput> and extended periodically) with coefficients
+up to <varname>N</varname>th harmonic computed numerically.  This is the
+trigonometric real series composed of sines and cosines.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of coefficients of 
+the cosine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the even periodic extension and compute the Fourier series, which
+only has cosine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.
+Note that <userinput>a@(1)</userinput> is
+the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
+the term <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the cosine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the even periodic extension and compute the Fourier series, which
+only has cosine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of coefficients of 
+the sine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the odd periodic extension and compute the Fourier series, which
+only has sine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the sine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the odd periodic extension and compute the Fourier series, which
+only has sine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
+         <listitem>
+          <synopsis>NumericalIntegral (f,a,b)</synopsis>
+          <para>Integration by rule set in NumericalIntegralFunction of f from a to b using 
NumericalIntegralSteps steps.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
+         <listitem>
+          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
+          <para>Attempt to calculate numerical left derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
+         <listitem>
+          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerance,successive_for_success,N)</synopsis>
+          <para>Attempt to calculate the limit of f(step_fun(i)) as i goes from 1 to N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
+         <listitem>
+          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
+          <para>Attempt to calculate numerical right derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
+         <listitem>
+          <synopsis>OddPeriodicExtension (f,L)</synopsis>
+         <para>Return a function that is the odd periodic extension of
+<function>f</function> with half period <varname>L</varname>.  That
+is a function defined on the interval <userinput>[0,L]</userinput>
+extended to be odd on <userinput>[-L,L]</userinput> and then
+extended to be periodic with period <userinput>2*L</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>
+           and
+           <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Compute one-sided derivative using five point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Compute one-sided derivative using three-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
+         <listitem>
+          <synopsis>PeriodicExtension (f,a,b)</synopsis>
+         <para>Return a function that is the periodic extension of
+<function>f</function> defined on the interval <userinput>[a,b]</userinput>
+and has period <userinput>b-a</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link>
+           and
+           <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
+         <listitem>
+          <synopsis>RightLimit (f,x0)</synopsis>
+          <para>Calculate the right limit of a real-valued function at x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Compute two-sided derivative using five-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Compute two-sided derivative using three-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-functions">
+      <title>Funções</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Argument"/>Argument</term>
+         <listitem>
+          <synopsis>Argument (z)</synopsis>
+          <para>Aliases: <function>Arg</function> <function>arg</function></para>
+          <para>argument (angle) of complex number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
+         <listitem>
+          <synopsis>BesselJ0 (x)</synopsis>
+          <para>Bessel function of the first kind of order 0.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
+         <listitem>
+          <synopsis>BesselJ1 (x)</synopsis>
+          <para>Bessel function of the first kind of order 1.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
+         <listitem>
+          <synopsis>BesselJn (n,x)</synopsis>
+         <para>Bessel function of the first kind of order <varname>n</varname>.  Only implemented for real 
numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
+         <listitem>
+          <synopsis>BesselY0 (x)</synopsis>
+          <para>Bessel function of the second kind of order 0.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
+         <listitem>
+          <synopsis>BesselY1 (x)</synopsis>
+          <para>Bessel function of the second kind of order 1.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
+         <listitem>
+          <synopsis>BesselYn (n,x)</synopsis>
+         <para>Bessel function of the second kind of order <varname>n</varname>.  Only implemented for real 
numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
+         <listitem>
+          <synopsis>DirichletKernel (n,t)</synopsis>
+         <para>Dirichlet kernel of order <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
+         <listitem>
+          <synopsis>DiscreteDelta (v)</synopsis>
+          <para>Returns 1 if and only if all elements are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
+         <listitem>
+          <synopsis>ErrorFunction (x)</synopsis>
+          <para>Aliases: <function>erf</function></para>
+          <para>The error function, 2/sqrt(pi) * int_0^x e^(-t^2) dt.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Error_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ErrorFunction";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
+         <listitem>
+          <synopsis>FejerKernel (n,t)</synopsis>
+          <para>Fejer kernel of order <varname>n</varname> evaluated at
+               <varname>t</varname></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FejerKernel";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
+         <listitem>
+          <synopsis>GammaFunction (x)</synopsis>
+          <para>Aliases: <function>Gamma</function></para>
+          <para>The Gamma function.  Currently only implemented for real values.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/GammaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Gamma_function";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
+         <listitem>
+          <synopsis>KroneckerDelta (v)</synopsis>
+          <para>Returns 1 if and only if all elements are equal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertW"/>LambertW</term>
+         <listitem>
+          <synopsis>LambertW (x)</synopsis>
+         <para>
+                 The principal branch of Lambert W function computed for only
+                 real values greater than or equal to <userinput>-1/e</userinput>.
+                 That is, <function>LambertW</function> is the inverse of
+                 the expression <userinput>x*e^x</userinput>.  Even for
+                 real <varname>x</varname> this expression is not one to one and
+                 therefore has two branches over <userinput>[-1/e,0)</userinput>.
+                 See <link linkend="gel-function-LambertWm1"><function>LambertWm1</function></link> for the 
other real branch.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertWm1"/>LambertWm1</term>
+         <listitem>
+          <synopsis>LambertWm1 (x)</synopsis>
+         <para>
+                 The minus-one branch of Lambert W function computed for only
+                 real values greater than or equal to <userinput>-1/e</userinput>
+                 and less than 0.
+                 That is, <function>LambertWm1</function> is the second
+                 branch of the inverse of <userinput>x*e^x</userinput>.
+                 See <link linkend="gel-function-LambertW"><function>LambertW</function></link> for the 
principal branch.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
+         <listitem>
+          <synopsis>MinimizeFunction (func,x,incr)</synopsis>
+          <para>Find the first value where f(x)=0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
+         <listitem>
+          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
+          <para>Moebius mapping of the disk to itself mapping a to 0.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
+         <listitem>
+          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking z2,z3,z4 to 1,0, and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to infinity and z2,z3 to 1 and 0 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to 1 and z3,z4 to 0 and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to 0 and z2,z4 to 1 and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
+         <listitem>
+          <synopsis>PoissonKernel (r,sigma)</synopsis>
+          <para>Poisson kernel on D(0,1) (not normalized to 1, that is integral of this is 2pi).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
+         <listitem>
+          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
+          <para>Poisson kernel on D(0,R) (not normalized to 1).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
+         <listitem>
+          <synopsis>RiemannZeta (x)</synopsis>
+          <para>Aliases: <function>zeta</function></para>
+          <para>The Riemann zeta function.  Currently only implemented for real values.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RiemannZetaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Riemann_zeta_function";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
+         <listitem>
+          <synopsis>UnitStep (x)</synopsis>
+          <para>The unit step function is 0 for x&lt;0, 1 otherwise.  This is the integral of the Dirac 
Delta function.  Also called the Heaviside function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Unit_step";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cis"/>cis</term>
+         <listitem>
+          <synopsis>cis (x)</synopsis>
+          <para>
+           The <function>cis</function> function, that is the same as
+           <userinput>cos(x)+1i*sin(x)</userinput>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
+         <listitem>
+          <synopsis>deg2rad (x)</synopsis>
+          <para>Convert degrees to radians.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
+         <listitem>
+          <synopsis>rad2deg (x)</synopsis>
+          <para>Convert radians to degrees.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinc"/>sinc</term>
+         <listitem>
+          <synopsis>sinc (x)</synopsis>
+         <para>Calculates the unnormalized sinc function, that is
+                 <userinput>sin(x)/x</userinput>.
+                 If you want the normalized function call <userinput>sinc(pi*x)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sinc";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-equation-solving">
+      <title>Solução de equações</title>
+      <variablelist>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
+         <listitem>
+          <synopsis>CubicFormula (p)</synopsis>
+          <para>
+           Compute roots of a cubic (degree 3) polynomial using the
+           cubic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>4*x^3 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,4]</userinput>.
+           Returns a column vector of the three solutions.  The first solution is always
+           the real one as a cubic always has one real solution.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CubicFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/CubicFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Cubic_equation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
+         <listitem>
+          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns <varname>y</varname> at <varname>x1</varname>.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKutta">RungeKutta</link>
+           for solving ODE.
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
+         <listitem>
+          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKuttaFull">RungeKuttaFull</link>
+           for solving ODE.
+           Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
+         <listitem>
+          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the bisection method.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
+         <listitem>
+          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the method of false position.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
+         <listitem>
+          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
+          <para>Find root of a function using the Muller's method.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
+         <listitem>
+          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the secant method.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
+         <listitem>
+          <synopsis>HalleysMethod (f,df,ddf,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Halley's method.  <varname>f</varname> is
+                 the function, <varname>df</varname> is the derivative of
+                 <varname>f</varname>, and <varname>ddf</varname> is the second derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link> and 
<link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Halley%27s_method";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethod"/>NewtonsMethod</term>
+         <listitem>
+          <synopsis>NewtonsMethod (f,df,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Newton's method.  <varname>f</varname> is
+                 the function and <varname>df</varname> is the derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link 
linkend="gel-function-NewtonsMethodPoly"><function>NewtonsMethodPoly</function></link> and <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
+         <listitem>
+          <synopsis>PolynomialRoots (p)</synopsis>
+          <para>
+           Compute roots of a polynomial (degrees 1 through 4)
+           using one of the formulas for such polynomials.
+           The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>4*x^3 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,4]</userinput>.
+           Returns a column vector of the solutions.
+         </para>
+         <para>
+           The function calls
+           <link linkend="gel-function-QuadraticFormula">QuadraticFormula</link>,
+           <link linkend="gel-function-CubicFormula">CubicFormula</link>, and
+           <link linkend="gel-function-QuarticFormula">QuarticFormula</link>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
+         <listitem>
+          <synopsis>QuadraticFormula (p)</synopsis>
+          <para>
+           Compute roots of a quadratic (degree 2) polynomial using the
+           quadratic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>3*x^2 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,3]</userinput>.
+           Returns a column vector of the two solutions.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticFormula";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/QuadraticFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quadratic_formula";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
+         <listitem>
+          <synopsis>QuarticFormula (p)</synopsis>
+          <para>
+           Compute roots of a quartic (degree 4) polynomial using the
+           quartic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>5*x^4 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,0,5]</userinput>.
+           Returns a column vector of the four solutions.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuarticFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/QuarticEquation.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quartic_equation";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
+         <listitem>
+          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments, returns <varname>y</varname> at <varname>x1</varname>.
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
+         <listitem>
+          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.  Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-statistics">
+      <title>Estatística</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Average"/>Average</term>
+         <listitem>
+          <synopsis>Average (m)</synopsis>
+          <para>Aliases: <function>average</function> <function>Mean</function> 
<function>mean</function></para>
+          <para>Calculate average (the arithmetic mean) of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
+         <listitem>
+          <synopsis>GaussDistribution (x,sigma)</synopsis>
+         <para>Integral of the GaussFunction from 0 to <varname>x</varname> (area under the normal 
curve).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
+         <listitem>
+          <synopsis>GaussFunction (x,sigma)</synopsis>
+          <para>The normalized Gauss distribution function (the normal curve).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Median"/>Median</term>
+         <listitem>
+          <synopsis>Median (m)</synopsis>
+          <para>Aliases: <function>median</function></para>
+          <para>Calculate median of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>PopulationStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>stdevp</function></para>
+          <para>Calculate the population standard deviation of a whole matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
+         <listitem>
+          <synopsis>RowAverage (m)</synopsis>
+          <para>Aliases: <function>RowMean</function></para>
+         <para>Calculate average of each row in a matrix.  That is, compute the
+         arithmetic mean.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
+         <listitem>
+          <synopsis>RowMedian (m)</synopsis>
+          <para>Calculate median of each row in a matrix and return a column
+         vector of the medians.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>rowstdevp</function></para>
+          <para>Calculate the population standard deviations of rows of a matrix and return a vertical 
vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
+         <listitem>
+          <synopsis>RowStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>rowstdev</function></para>
+          <para>Calculate the standard deviations of rows of a matrix and return a vertical vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+        <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
+         <listitem>
+          <synopsis>StandardDeviation (m)</synopsis>
+          <para>Aliases: <function>stdev</function></para>
+          <para>Calculate the standard deviation of a whole matrix.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-polynomials">
+      <title>Polinômios</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
+         <listitem>
+          <synopsis>AddPoly (p1,p2)</synopsis>
+          <para>Add two polynomials (vectors).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
+         <listitem>
+          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
+          <para>Divide two polynomials (as vectors) using long division.
+          Returns the quotient
+          of the two polynomials.  The optional argument <varname>r</varname>
+          is used to return the remainder.  The remainder will have lower
+          degree than <varname>q</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PolynomialLongDivision";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
+         <listitem>
+          <synopsis>IsPoly (p)</synopsis>
+          <para>Check if a vector is usable as a polynomial.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
+         <listitem>
+          <synopsis>MultiplyPoly (p1,p2)</synopsis>
+          <para>Multiply two polynomials (as vectors).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
+         <listitem>
+          <synopsis>NewtonsMethodPoly (poly,guess,epsilon,maxn)</synopsis>
+         <para>Find a root of a polynomial using Newton's method.  <varname>poly</varname> is
+                 the polynomial as a vector and <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
+         <listitem>
+          <synopsis>Poly2ndDerivative (p)</synopsis>
+          <para>Take second polynomial (as vector) derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
+         <listitem>
+          <synopsis>PolyDerivative (p)</synopsis>
+          <para>Take polynomial (as vector) derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
+         <listitem>
+          <synopsis>PolyToFunction (p)</synopsis>
+          <para>Make function out of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
+         <listitem>
+          <synopsis>PolyToString (p,var...)</synopsis>
+          <para>Make string out of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
+         <listitem>
+          <synopsis>SubtractPoly (p1,p2)</synopsis>
+          <para>Subtract two polynomials (as vectors).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
+         <listitem>
+          <synopsis>TrimPoly (p)</synopsis>
+          <para>Trim zeros from a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-set-theory">
+      <title>Teoria dos conjuntos</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Intersection"/>Intersection</term>
+         <listitem>
+          <synopsis>Intersection (X,Y)</synopsis>
+          <para>Returns a set theoretic intersection of X and Y (X and Y are vectors pretending to be 
sets).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIn"/>IsIn</term>
+         <listitem>
+          <synopsis>IsIn (x,X)</synopsis>
+         <para>Returns <constant>true</constant> if the element x is in the set X (where X is a vector 
pretending to be a set).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
+         <listitem>
+          <synopsis>IsSubset (X, Y)</synopsis>
+         <para>Returns <constant>true</constant> if X is a subset of Y (X and Y are vectors pretending to be 
sets).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
+         <listitem>
+          <synopsis>MakeSet (X)</synopsis>
+          <para>Returns a vector where every element of X appears only once.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
+         <listitem>
+          <synopsis>SetMinus (X,Y)</synopsis>
+          <para>Returns a set theoretic difference X-Y (X and Y are vectors pretending to be sets).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Union"/>Union</term>
+         <listitem>
+          <synopsis>Union (X,Y)</synopsis>
+          <para>Returns a set theoretic union of X and Y (X and Y are vectors pretending to be sets).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-commutative-algebra">
+      <title>Álgebra comutativa</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
+         <listitem>
+          <synopsis>MacaulayBound (c,d)</synopsis>
+          <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>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+       
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
+         <listitem>
+          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
+          <para>The c_&lt;d&gt; operator from Green's proof of Macaulay's Theorem.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
+         <listitem>
+          <synopsis>MacaulayRep (c,d)</synopsis>
+          <para>Return the dth Macaulay representation of a positive integer c.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-miscellaneous">
+      <title>Miscelânea</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
+         <listitem>
+          <synopsis>ASCIIToString (vec)</synopsis>
+          <para>Convert a vector of ASCII values to a string.
+                 See also
+                 <link linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
+= "abc"
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
+         <listitem>
+          <synopsis>AlphabetToString (vec,alphabet)</synopsis>
+         <para>Convert a vector of 0-based alphabet values (positions in the alphabet string) to a string.  
A <constant>null</constant> vector results in an empty string.
+                 See also
+                 <link linkend="gel-function-StringToAlphabet"><function>StringToAlphabet</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>AlphabetToString([1,2,3,0,0],"abcd")</userinput>
+= "bcdaa"
+<prompt>genius&gt;</prompt> <userinput>AlphabetToString(null,"abcd")</userinput>
+= ""
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
+         <listitem>
+          <synopsis>StringToASCII (str)</synopsis>
+         <para>Convert a string to a (row) vector of ASCII values.
+                 See also
+                 <link linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
+= [97, 98, 99]
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
+         <listitem>
+          <synopsis>StringToAlphabet (str,alphabet)</synopsis>
+         <para>Convert a string to a (row) vector of 0-based alphabet values
+                 (positions in the alphabet string), -1's for unknown letters.
+                 An empty string results in a <constant>null</constant>.
+                 See also
+                 <link linkend="gel-function-AlphabetToString"><function>AlphabetToString</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToAlphabet("cca","abcd")</userinput>
+= [2, 2, 0]
+<prompt>genius&gt;</prompt> <userinput>StringToAlphabet("ccag","abcd")</userinput>
+= [2, 2, 0, -1]
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-symbolic">
+      <title>Operações simbólicas</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
+         <listitem>
+          <synopsis>SymbolicDerivative (f)</synopsis>
+          <para>Tenta simbolicamente derivar a função f, onde f é uma função de uma variável.</para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(sin)</userinput>
+= (`(x)=cos(x))
+<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
+= (`(x)=(7*(2*x)))
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicDerivativeTry (f)</synopsis>
+         <para>Attempt to symbolically differentiate the function f, where f is a function of one variable, 
returns <constant>null</constant> if unsuccessful but is silent.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
+          <para>Attempt to symbolically differentiate a function n times.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
+         <para>Attempt to symbolically differentiate a function n times quietly and return 
<constant>null</constant> on failure
+         (See <link 
linkend="gel-function-SymbolicNthDerivative"><function>SymbolicNthDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
+         <listitem>
+          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
+         <para>Attempt to construct the Taylor approximation function around x0 to the nth degree.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-plotting">
+      <title>Plotagem</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
+         <listitem>
+          <synopsis>ExportPlot (file,type)</synopsis>
+          <synopsis>ExportPlot (file)</synopsis>
+          <para>
+                 Export the contents of the plotting window to a file.
+                 The type is a string that specifies the file type to
+                 use, "png", "eps", or "ps".  If the type is not
+                 specified, then it is taken to be the extension, in
+                 which case the extension must be ".png", ".eps", or ".ps".
+         </para>
+         <para>
+                 Note that files are overwritten without asking.
+         </para>
+         <para>
+                 On successful export, true is returned.  Otherwise
+                 error is printed and exception is raised.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>ExportPlot("file.png")</userinput>
+<prompt>genius&gt;</prompt> <userinput>ExportPlot("/directory/file","eps")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
+         <listitem>
+          <synopsis>LinePlot (func1,func2,func3,...)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2])</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2,y1,y2])</synopsis>
+          <para>
+           Plot a function (or several functions) with a line.
+           First (up to 10) arguments are functions, then optionally
+            you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>)
+           If the y limits are not specified, then the functions are computed and then the maxima and minima
+           are used.
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
+         <listitem>
+          <synopsis>LinePlotClear ()</synopsis>
+          <para>
+            Show the line plot window and clear out functions and any other
+            lines that were drawn.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
+         <listitem>
+          <synopsis>LinePlotCParametric (func,...)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <para>
+           Plot a parametric complex valued function with a line.  First comes
+the function that returns <computeroutput>x+iy</computeroutput>,
+then optionally the <varname>t</varname> limits as <userinput>t1,t2,tinc</userinput>, then
+optionally the limits as <userinput>x1,x2,y1,y2</userinput>.
+          </para>
+         <para>
+           If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+           If instead the string "fit" is given for the x and y limits, then the limits are the maximum 
extent of
+           the graph
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
+         <listitem>
+          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
+          <synopsis>LinePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,
+           <varname>x2</varname>,<varname>y2</varname> can be replaced by an
+           <varname>n</varname> by 2 matrix for a longer polyline.
+           Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+           that is an <varname>n</varname> by 1 matrix and each complex number is then
+           considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           arrows, the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           <userinput>"arrow"</userinput>, or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, type of arrow, or the legend.  (Arrow and window are from version 1.0.6 onwards.)
+         </para>
+         <para>
+           If the line is to be treated as a filled polygon, filled with the given color, you
+           can specify the argument <userinput>"filled"</userinput>.  Since version 1.0.22 onwards.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Arrow specification should be
+           <userinput>"origin"</userinput>,
+           <userinput>"end"</userinput>,
+           <userinput>"both"</userinput>, or
+           <userinput>"none"</userinput>.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.
+         </para>
+         <para>
+                 Specifying <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
+         <listitem>
+          <synopsis>LinePlotDrawPoints (x,y,...)</synopsis>
+          <synopsis>LinePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>.
+                 The input can be an <varname>n</varname> by 2 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>.
+                 Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+                 that is an <varname>n</varname> by 1 matrix and each complex number is then
+                 considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The 7th 
roots of unity")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.  Therefore, notice in the
+                 last example the transpose of the vector <userinput>0:6</userinput>
+                 to make it into a column vector.
+         </para>
+         <para>
+                 Available from version 1.0.18 onwards.  Specifying
+                 <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
+         <listitem>
+          <synopsis>LinePlotMouseLocation ()</synopsis>
+          <para>
+           Returns a row vector of a point on the line plot corresponding to
+           the current mouse location.  If the line plot is not visible,
+           then prints an error and returns <constant>null</constant>.
+           In this case you should run
+           <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> or
+           <link linkend="gel-function-LinePlotClear"><function>LinePlotClear</function></link>
+           to put the graphing window into the line plot mode.
+           See also
+           <link 
linkend="gel-function-LinePlotWaitForClick"><function>LinePlotWaitForClick</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
+         <listitem>
+          <synopsis>LinePlotParametric (xfunc,yfunc,...)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")</synopsis>
+          <para>
+           Plot a parametric function with a line.  First come the functions
+for <varname>x</varname> and <varname>y</varname> then optionally the <varname>t</varname> limits as 
<userinput>t1,t2,tinc</userinput>, then optionally the
+limits as <userinput>x1,x2,y1,y2</userinput>.
+          </para>
+         <para>
+           If x and y limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+           If instead the string "fit" is given for the x and y limits, then the limits are the maximum 
extent of
+           the graph
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
+         <listitem>
+          <synopsis>LinePlotWaitForClick ()</synopsis>
+          <para>
+           If in line plot mode, waits for a click on the line plot window
+           and returns the location of the click as a row vector.
+           If the window is closed
+           the function returns immediately with <constant>null</constant>.
+           If the window is not in line plot mode, it is put in it and shown
+           if not shown.
+           See also
+           <link 
linkend="gel-function-LinePlotMouseLocation"><function>LinePlotMouseLocation</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasFreeze"/>PlotCanvasFreeze</term>
+         <listitem>
+          <synopsis>PlotCanvasFreeze ()</synopsis>
+          <para>
+                 Freeze drawing of the canvas plot temporarily.  Useful if you need to draw a bunch of 
elements
+                 and want to delay drawing everything to avoid flicker in an animation.  After everything
+                 has been drawn you should call <link 
linkend="gel-function-PlotCanvasThaw"><function>PlotCanvasThaw</function></link>.
+          </para>
+          <para>
+                 The canvas is always thawed after end of any execution, so it will never remain frozen.  
The moment
+                 a new command line is shown for example the plot canvas is thawed automatically.  Also note 
that
+                 calls to freeze and thaw may be safely nested.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
+         <listitem>
+          <synopsis>PlotCanvasThaw ()</synopsis>
+          <para>
+                 Thaw the plot canvas frozen by
+                 <link linkend="gel-function-PlotCanvasFreeze"><function>PlotCanvasFreeze</function></link>
+                 and redraw the canvas immediately.  The canvas is also always thawed after end of execution
+                 of any program.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
+         <listitem>
+          <synopsis>PlotWindowPresent ()</synopsis>
+          <para>
+                 Show and raise the plot window, creating it if necessary.
+                 Normally the window is created when one of the plotting
+                 functions is called, but it is not always raised if it
+                 happens to be below other windows.  So this function is
+                 good to call in scripts where the plot window might have 
+                 been created before, and by now is hidden behind the
+                 console or other windows.
+          </para>
+         <para>Version 1.0.19 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
+         <listitem>
+          <synopsis>SlopefieldClearSolutions ()</synopsis>
+          <para>
+           Clears the solutions drawn by the
+           <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>
+           function.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
+         <listitem>
+          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
+          <para>
+           When a slope field plot is active, draw a solution with
+           the specified initial condition.  The standard
+           Runge-Kutta method is used with increment <varname>dx</varname>.
+           Solutions stay on the graph until a different plot is shown or until
+           you call 
+           <link 
linkend="gel-function-SlopefieldClearSolutions"><function>SlopefieldClearSolutions</function></link>.
+           You can also use the graphical interface to draw solutions and specify
+           initial conditions with the mouse.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
+         <listitem>
+          <synopsis>SlopefieldPlot (func)</synopsis>
+          <synopsis>SlopefieldPlot (func,x1,x2,y1,y2)</synopsis>
+          <para>
+           Plot a slope field.  The function <varname>func</varname>
+           should take two real numbers <varname>x</varname>
+           and <varname>y</varname>, or a single complex
+           number.
+            Optionally you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+       <varlistentry>
+        <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
+         <listitem>
+          <synopsis>SurfacePlot (func)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2)</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2])</synopsis>
+          <para>
+           Plot a surface function that takes either two arguments or a complex number.  First comes the 
function then optionally limits as <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>,
+           <varname>z1</varname>, <varname>z2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>).
+           Genius can only plot a single surface function at this time.
+          </para>
+          <para>
+           If the z limits are not specified then the maxima and minima of the function are used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
+         <listitem>
+          <synopsis>SurfacePlotClear ()</synopsis>
+          <para>
+            Show the surface plot window and clear out functions and any other
+            lines that were drawn.
+          </para>
+          <para>
+           Available in version 1.0.19 and onwards.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
+         <listitem>
+          <synopsis>SurfacePlotData (data)</synopsis>
+          <synopsis>SurfacePlotData (data,label)</synopsis>
+          <synopsis>SurfacePlotData (data,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,label,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotData (data,label,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <para>
+                 Plot a surface from data.  The data is an n by 3 matrix whose
+                 rows are the x, y and z coordinates.  The data can also be
+                 simply a vector whose length is a multiple of 3 and so
+                 contains the triples of x, y, z.  The data should contain at
+                 least 3 points.
+         </para>
+          <para>
+                 Optionally we can give the label and also optionally the
+                 limits.  If limits are not given, they are computed from
+                 the data, <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>
+                 is not used, if you want to use it, pass it in explicitly.
+                 If label is not given then empty label is used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,-1,1,-1,1,0,10)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,SurfacePlotWindow)</userinput>
+</screen>
+          </para>
+         <para>
+                 Here's an example of how to plot in polar coordinates,
+                 in particular how to plot the function
+                 <userinput>-r^2 * theta</userinput>:
+          <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>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
+         <listitem>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2],label)</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],label)</synopsis>
+          <para>
+                 Plot a surface from regular rectangular data.
+                 The data is given in a n by m matrix where the rows are the
+                 x coordinate and the columns are the y coordinate.
+                 The x coordinate is divided into equal n-1 subintervals
+                 and y coordinate is divided into equal m-1 subintervals.
+                 The limits <varname>x1</varname> and <varname>x2</varname>
+                 give the interval on the x-axis that we use, and 
+                 the limits <varname>y1</varname> and <varname>y2</varname>
+                 give the interval on the y-axis that we use.
+                 If the limits <varname>z1</varname> and <varname>z2</varname>
+                 are not given they are computed from the data (to be
+                 the extreme values from the data).
+         </para>
+          <para>
+                 Optionally we can give the label, if label is not given then
+                 empty label is used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = 
(0.1*i-1)^2-(0.1*j)^2;</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"half a saddle")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
+          <synopsis>SurfacePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname>,
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname> can be replaced by an
+           <varname>n</varname> by 3 matrix for a longer polyline.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>,
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawPoints (x,y,z,...)</synopsis>
+          <synopsis>SurfacePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>,<varname>z</varname>.
+                 The input can be an <varname>n</varname> by 3 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-SurfacePlotDrawLine">SurfacePlotDrawLine</link>.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
+         <listitem>
+          <synopsis>VectorfieldClearSolutions ()</synopsis>
+          <para>
+           Clears the solutions drawn by the
+           <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>
+           function.
+          </para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
+         <listitem>
+          <synopsis>VectorfieldDrawSolution (x, y, dt, tlen)</synopsis>
+          <para>
+           When a vector field plot is active, draw a solution with
+           the specified initial condition.  The standard
+           Runge-Kutta method is used with increment <varname>dt</varname>
+           for an interval of length <varname>tlen</varname>.
+           Solutions stay on the graph until a different plot is shown or until
+           you call 
+           <link 
linkend="gel-function-VectorfieldClearSolutions"><function>VectorfieldClearSolutions</function></link>.
+           You can also use the graphical interface to draw solutions and specify
+           initial conditions with the mouse.
+          </para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
+         <listitem>
+          <synopsis>VectorfieldPlot (funcx, funcy)</synopsis>
+          <synopsis>VectorfieldPlot (funcx, funcy, x1, x2, y1, y2)</synopsis>
+          <para>
+           Plot a two dimensional vector field.  The function
+           <varname>funcx</varname>
+           should be the dx/dt of the vectorfield and the function
+           <varname>funcy</varname> should be the dy/dt of the vectorfield.
+           The functions
+           should take two real numbers <varname>x</varname>
+           and <varname>y</varname>, or a single complex
+           number.  When the parameter
+           <link 
linkend="gel-function-VectorfieldNormalized"><function>VectorfieldNormalized</function></link>
+           is <constant>true</constant>, then the magnitude of the vectors is normalized.  That is, only
+           the direction and not the magnitude is shown.
+         </para>
+         <para>
+            Optionally you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, `(x,y)=y^2-x, -1, 1, 
-1, 1)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL examples ============================= -->
+  <chapter id="genius-gel-example-programs">
+    <title>Example Programs in GEL</title>
+
+    <para>
+Here is a function that calculates factorials:
+<programlisting><![CDATA[function f(x) = if x <= 1 then 1 else (f(x-1)*x)
+]]></programlisting>
+    </para>
+    <para>
+With indentation it becomes:
+<programlisting><![CDATA[function f(x) = (
+  if x <= 1 then
+    1
+  else
+    (f(x-1)*x)
+)
+]]></programlisting>
+    </para>
+    <para>
+This is a direct port of the factorial function from the <application>bc</application> manpage. The syntax 
seems similar to <application>bc</application>, but different in that in GEL, the last expression is the one 
that is returned. Using the <literal>return</literal> function instead, it would be:
+<programlisting><![CDATA[function f(x) = (
+  if (x <= 1) then return (1);
+  return (f(x-1) * x)
+)
+]]></programlisting>
+    </para>
+
+    <para>
+By far the easiest way to define a factorial function would be using
+the product loop as follows.  This is not only the shortest and fastest,
+but also probably the most readable version.
+<programlisting>function f(x) = prod k=1 to x do k
+</programlisting>
+    </para>
+
+    <para>
+Here is a larger example, this basically redefines the internal
+<link linkend="gel-function-ref"><function>ref</function></link> function to calculate the row echelon form 
of a
+matrix.  The function <function>ref</function> is built in and much faster,
+but this example demonstrates some of the more complex features of GEL.
+<programlisting><![CDATA[# Calculate the row-echelon form of a matrix
+function MyOwnREF(m) = (
+  if not IsMatrix(m) or not IsValueOnly(m) then
+    (error("MyOwnREF: argument not a value only matrix");bailout);
+  s := min(rows(m), columns(m));
+  i := 1;
+  d := 1;
+  while d <= s and i <= columns(m) do (
+
+    # This just makes the anchor element non-zero if at
+    # all possible
+    if m@(d,i) == 0 then (
+      j := d+1;
+      while j <= rows(m) do (
+        if m@(j,i) == 0 then
+          (j=j+1;continue);
+        a := m@(j,);
+        m@(j,) := m@(d,);
+        m@(d,) := a;
+        j := j+1;
+        break
+      )
+    );
+    if m@(d,i) == 0 then
+      (i:=i+1;continue);
+    
+    # Here comes the actual zeroing of all but the anchor
+    # element rows
+    j := d+1;
+    while j <= rows(m)) do (
+      if m@(j,i) != 0 then (
+        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
+      );
+      j := j+1
+    );
+    m@(d,) := m@(d,) * (1/m@(d,i));
+    d := d+1;
+    i := i+1
+  );
+  m
+)
+]]></programlisting>
+    </para>
+
+  </chapter>
+
+  <!-- ============= Customization ============================ -->
+  <chapter id="genius-prefs"> 
+    <title>Preferências</title> 
+
+    <para>
+      To configure <application>Genius Mathematics Tool</application>, choose
+      <menuchoice><guimenu>Settings</guimenu>
+      <guimenuitem>Preferences</guimenuitem></menuchoice>.
+      There are several basic parameters provided by the calculator in addition
+      to the ones provided by the standard library.  These control how the
+      calculator behaves.
+    </para>
+
+    <note>
+      <title>Changing Settings with GEL</title>
+      <para>
+       Many of the settings in Genius are simply global variables, and can
+       be evaluated and assigned to in the same way as normal variables. See
+       <xref linkend="genius-gel-variables"/> about evaluating and assigning
+       to variables, and <xref linkend="genius-gel-function-parameters"/> for
+       a list of settings that can be modified in this way.
+      </para>
+      <para>
+As an example, you can set the maximum number of digits in a result to 12 by typing:
+<programlisting>MaxDigits = 12
+</programlisting>
+      </para>
+    </note>
+
+    <sect1 id="genius-prefs-output"> 
+      <title>Saída</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum digits to output</guilabel>
+      </term> 
+         <listitem>
+                 <para>The maximum digits in a result (<link 
linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Resultados como números reais</guilabel>
+      </term> 
+         <listitem>
+                 <para>If the results should be always printed as floats (<link 
linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Resultados em notação científica</guilabel>
+      </term> 
+         <listitem>
+                 <para>If floats should be in scientific notation (<link 
linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Sempre mostrar expressões completas</guilabel>
+      </term> 
+         <listitem>
+                 <para>Should we print out full expressions for non-numeric return values (longer than a 
line) (<link linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Usa frações mistas</guilabel>
+      </term> 
+         <listitem>
+                 <para>If fractions should be printed as mixed fractions such as "1 1/3" rather than "4/3". 
(<link linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Exibir 0.0 quando o número de ponto flutuante for menor que 10^-x (0=nunca 
arredondar)</guilabel>
+      </term> 
+         <listitem>
+         <para>How to chop output.  But only when other numbers nearby are large.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+            <guilabel>Só arredondar números quando outro número for maior que 10^-x</guilabel>
+      </term> 
+         <listitem>
+                 <para>When to chop output.  This is set by the parameter <link 
linkend="gel-function-OutputChopWhenExponent"><function>OutputChopWhenExponent</function></link>.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Lembrar a saída de configurações entre sessões</guilabel>
+      </term> 
+         <listitem>
+        <para>Should the output settings in the <guilabel>Number/Expression output options</guilabel> frame
+             be remembered for next session.  Does not apply to the <guilabel>Error/Info output 
options</guilabel> frame.</para>
+             <para>
+                If unchecked,
+          either the default or any previously saved settings are used each time Genius starts
+          up.  Note that
+          settings are saved at the end of the session, so if you wish to change the defaults
+          check this box, restart <application>Genius Mathematics Tool</application> and then uncheck it 
again.
+             </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Exibir erros em uma caixa de diálogo</guilabel>
+      </term> 
+         <listitem>
+        <para>If set the errors will be displayed in a separate dialog, if
+       unset the errors will be printed on the console.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Exibir mensagens de informação em uma caixa de diálogo</guilabel>
+      </term> 
+         <listitem>
+       <para>If set the information messages will be displayed in a separate
+       dialog, if unset the information messages will be printed on the
+       console.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Erros máximos para mostrar</guilabel>
+      </term> 
+         <listitem>
+        <para>
+         The maximum number of errors to return on one evaluation
+         (<link linkend="gel-function-MaxErrors"><function>MaxErrors</function></link>).  If you set this to 
0 then
+         all errors are always returned.  Usually if some loop causes
+         many errors, then it is unlikely that you will be able to make
+         sense out of more than a few of these, so seeing a long list
+         of errors is usually not helpful.
+         </para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+
+      <para>
+       In addition to these preferences, there are some preferences that can
+       only be changed by setting them in the workspace console.  For others
+       that may affect the output see <xref linkend="genius-gel-function-parameters"/>.
+      </para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <function>IntegerOutputBase</function>
+      </term> 
+         <listitem>
+        <para>The base that will be used to output integers</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <function>OutputStyle</function>
+      </term> 
+         <listitem>
+       <para>A string, can be <literal>"normal"</literal>,
+<literal>"latex"</literal>, <literal>"mathml"</literal> or
+<literal>"troff"</literal> and it will affect how matrices (and perhaps other
+stuff) is printed, useful for pasting into documents.  Normal style is the
+default human readable printing style of <application>Genius Mathematics Tool</application>.  The other 
styles are for
+typesetting in LaTeX, MathML (XML), or in Troff.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+   </sect1> 
+
+    <sect1 id="genius-prefs-precision"> 
+      <title>Precisão</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Precisão de ponto flutuante</guilabel>
+      </term> 
+         <listitem>
+        <para>
+         The floating point precision in bits
+         (<link linkend="gel-function-FloatPrecision"><function>FloatPrecision</function></link>).
+         Note that changing this only affects newly computed quantities.
+         Old values stored in variables are obviously still in the old
+         precision and if you want to have them more precise you will have
+         to recompute them.  Exceptions to this are the system constants
+         such as <link linkend="gel-function-pi"><function>pi</function></link> or
+         <link linkend="gel-function-e"><function>e</function></link>.
+         </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Lembrar as configurações de precisão entre sessões</guilabel>
+      </term> 
+         <listitem>
+        <para>
+          Should the precision setting be remembered for the next session.  If unchecked,
+          either the default or any previously saved setting is used each time Genius starts
+          up.  Note that
+          settings are saved at the end of the session, so if you wish to change the default
+          check this box, restart genius and then uncheck it again.
+         </para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-terminal"> 
+      <title>Terminal</title> 
+
+      <para>
+       Terminal refers to the console in the work area.
+      </para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Rolar linha para trás</guilabel>
+      </term> 
+         <listitem>
+        <para>Lines of scrollback in the terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Fonte</guilabel>
+      </term> 
+         <listitem>
+        <para>The font to use on the terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Preto em branco</guilabel>
+      </term> 
+         <listitem>
+        <para>If to use black on white on the terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Cursor piscante</guilabel>
+      </term> 
+         <listitem>
+        <para>If the cursor in the terminal should blink when the terminal is in focus.  This can sometimes 
be annoying and it generates idle traffic if you are using Genius remotely.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-memory"> 
+      <title>Memória</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Número máximo de nós para alocar</guilabel>
+      </term> 
+         <listitem>
+        <para>
+          Internally all data is put onto small nodes in memory.  This gives
+          a limit on the maximum number of nodes to allocate for
+          computations.  This limit avoids the problem of running out of memory
+          if you do something by mistake that uses too much memory, such
+          as a recursion without end.  This could slow your computer and make
+          it hard to even interrupt the program.
+         </para>
+        <para>
+          Once the limit is reached, <application>Genius Mathematics Tool</application> asks if you wish to 
interrupt
+          the computation or if you wish to continue.  If you continue, no
+          limit is applied and it will be possible to run your computer
+          out of memory.  The limit will be applied again next time you
+          execute a program or an expression on the Console regardless of how
+          you answered the question.
+        </para>
+        <para>
+          Setting the limit to zero means there is no limit to the amount of
+          memory that genius uses.
+        </para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist> 
+    </sect1> 
+
+  </chapter>
+
+<!-- ============= About ====================================== -->
+  <chapter id="genius-about"> 
+    <title>About <application>Genius Mathematics Tool</application></title> 
+
+    <para> <application>Genius Mathematics Tool</application> was written by Jiří (George) Lebl
+(<email>jirka 5z com</email>).  The history of <application>Genius Mathematics Tool</application> goes back 
to late
+1997.  It was the first calculator program for GNOME, but it then grew
+beyond being just a desktop calculator.  To find more information about
+<application>Genius Mathematics Tool</application>, please visit the <ulink 
url="http://www.jirka.org/genius.html"; type="http">Genius Web page</ulink>.
+    </para>
+    <para>
+      To report a bug or make a suggestion regarding this application or
+      this manual, send email to me (the author) or post to the mailing
+      list (see the web page).
+    </para>
+
+    <para> This program is distributed under the terms of the GNU
+      General Public license as published by the Free Software
+      Foundation; either version 3 of the License, or (at your option)
+      any later version. A copy of this license can be found at this
+      <ulink url="http://www.gnu.org/copyleft/gpl.html"; type="http">link</ulink>, or in the file
+      COPYING included with the source code of this program. </para>
+
+    <para>Jiří Lebl was during various parts of the development
+      partially supported for the work by NSF grants DMS 0900885, 
+      DMS 1362337,
+      the University of Illinois at Urbana-Champaign,
+      the University of California at San Diego, 
+      the University of Wisconsin-Madison, and
+      Oklahoma State University.  The software has
+      been used for both teaching and research.</para>
+
+  </chapter>
+
+</book>
diff --git a/help/pt_BR/html/index.html b/help/pt_BR/html/index.html
index ab7555b..9a89635 100644
--- a/help/pt_BR/html/index.html
+++ b/help/pt_BR/html/index.html
@@ -1,5 +1,5 @@
 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Manual do 
Genius</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="description" 
content="Manual da ferramenta matemática Genius"><link rel="home" href="index.html" title="Manual do 
Genius"><link rel="next" href="ch01.html" title="Capítulo 1. Introdução"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" 
summary="Navigation header"><tr><th colspan="3" align="center">Manual do Genius</th></tr><tr><td width="20%" 
align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" 
href="ch01.html">Próxima</a></td></tr></table><hr></div><div lang="pt_BR" class="book"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a>Manual do Genius</h1></div><div><div 
class="authorgroup"><div class="author"><h3 class="author"><span cl
 ass="firstname">Jiří</span> <span class="surname">Lebl</span></h3><div class="affiliation"><span 
class="orgname">Universidade do Estado de Oklahoma<br></span><div class="address"><p> <code 
class="email">&lt;<a class="email" href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code> 
</p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Kai</span> <span 
class="surname">Willadsen</span></h3><div class="affiliation"><span class="orgname">Universidade de 
Queensland, Austrália<br></span><div class="address"><p> <code class="email">&lt;<a class="email" 
href="mailto:kaiw itee uq edu au">kaiw itee uq edu au</a>&gt;</code> 
</p></div></div></div></div></div><div><p class="releaseinfo">This manual describes version 1.0.22 of Genius.
-    </p></div><div><p class="copyright">Copyright © 1997-2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><p class="copyright">Copyright © 2013. Enrico 
Nicoletto (liverig gmail com)</p></div><div><div class="legalnotice"><a name="legalnotice"></a><p>Permissão 
concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação 
Livre GNU (GNU Free Documentation License), Versão 1.1 ou qualquer versão mais recente publicada pela Free 
Software Foundation; sem Seções Invariantes, Textos de Capa Frontal, e sem Textos de Contracapa. Você pode 
encontrar uma cópia da licença GFDL neste <a class="ulink" href="ghelp:fdl" target="_top">link</a> ou no 
arquivo COPYING-DOCS distribuído com este manual.</p><p>Este manual é parte da coleção de manuais do GNOME 
distribuídos sob a GFDL. Se você quiser distribuí-lo separadamente da coleção, você pode fazê-lo adicionando 
ao manu
 al uma cópia da licença, como descrito na seção 6 da licença.</p><p>Muitos dos nomes usados por empresas 
para distinguir seus produtos e serviços são reivindicados como marcas registradas. Onde esses nomes aparecem 
em qualquer documentação do GNOME e os membros do Projeto de Documentação do GNOME estiverem cientes dessas 
marcas registradas, os nomes aparecerão impressos em letras maiúsculas ou com iniciais em maiúsculas.</p><p>O 
DOCUMENTO E VERSÕES MODIFICADAS DO DOCUMENTO SÃO FORNECIDOS SOB OS TERMOS DA GNU FREE DOCUMENTATION LICENSE 
COM O ENTENDIMENTO ADICIONAL DE QUE: </p><div class="orderedlist"><ol class="orderedlist" type="1"><li 
class="listitem"><p>O DOCUMENTO É FORNECIDO NA BASE "COMO ESTÁ", SEM GARANTIAS DE QUALQUER TIPO, TANTO 
EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS DE QUE O DOCUMENTO OU VERSÃO MODIFICADA DO 
DOCUMENTO SEJA COMERCIALIZÁVEL, LIVRE DE DEFEITOS, PRÓPRIO PARA UM PROPÓSITO ESPECÍFICO OU SEM INFRAÇÕES. TO
 DO O RISCO A RESPEITO DA QUALIDADE, EXATIDÃO, E DESEMPENHO DO DOCUMENTO OU VERSÕES MODIFICADAS DO DOCUMENTO 
É DE SUA RESPONSABILIDADE. SE ALGUM DOCUMENTO OU VERSÃO MODIFICADA SE PROVAR DEFEITUOSO EM QUALQUER ASPECTO, 
VOCÊ (NÃO O ESCRITOR INICIAL, AUTOR OU QUALQUER CONTRIBUIDOR) ASSUME O CUSTO DE QUALQUER SERVIÇO NECESSÁRIO, 
REPARO OU CORREÇÃO. ESSA RENÚNCIA DE GARANTIAS CONSTITUI UMA PARTE ESSENCIAL DESTA LICENÇA. NENHUM USO DESTE 
DOCUMENTO OU VERSÃO MODIFICADA DESTE DOCUMENTO É AUTORIZADO SE NÃO FOR SOB ESSA RENÚNCIA; E</p></li><li 
class="listitem"><p>SOB NENHUMA CIRCUNSTÂNCIA E SOB NENHUMA TEORIA LEGAL, TANTO EM DANO (INCLUINDO 
NEGLIGÊNCIA), CONTRATO, OU OUTROS, DEVEM O AUTOR, ESCRITOR INICIAL, QUALQUER CONTRIBUIDOR, OU QUALQUER 
DISTRIBUIDOR DO DOCUMENTO OU VERSÃO MODIFICADA DO DOCUMENTO, OU QUALQUER FORNECEDOR DE ALGUMA DESSAS PARTES, 
SEREM CONSIDERADOS RESPONSÁVEIS A QUALQUER PESSOA POR QUALQUER DANO, SEJA DIRETO, INDIRETO, ESPECIAL, 
ACIDENTAL OU DANO
 S DECORRENTES DE QUALQUER NATUREZA, INCLUINDO, MAS NÃO LIMITADO A, DANOS POR PERDA DE BOA VONTADE, TRABALHO 
PARADO, FALHA OU MAU FUNCIONAMENTO DO COMPUTADOR, OU QUALQUER E TODOS OS OUTROS DANOS OU PERDAS RESULTANTES 
OU RELACIONADOS AO USO DO DOCUMENTO E VERSÕES MODIFICADAS, MESMO QUE TAL PARTE TENHA SIDO INFORMADA DA 
POSSIBILIDADE DE TAIS DANOS.</p></li></ol></div></div></div><div><div class="legalnotice"><a 
name="idm45857544496400"></a><p class="legalnotice-title"><b>Comentários</b></p><p>
+    </p></div><div><p class="copyright">Copyright © 1997-2016 Jiří (George) Lebl</p></div><div><p 
class="copyright">Copyright © 2004 Kai Willadsen</p></div><div><p class="copyright">Copyright © 2013. Enrico 
Nicoletto (liverig gmail com)</p></div><div><div class="legalnotice"><a name="legalnotice"></a><p>Permissão 
concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação 
Livre GNU (GNU Free Documentation License), Versão 1.1 ou qualquer versão mais recente publicada pela Free 
Software Foundation; sem Seções Invariantes, Textos de Capa Frontal, e sem Textos de Contracapa. Você pode 
encontrar uma cópia da licença GFDL neste <a class="ulink" href="ghelp:fdl" target="_top">link</a> ou no 
arquivo COPYING-DOCS distribuído com este manual.</p><p>Este manual é parte da coleção de manuais do GNOME 
distribuídos sob a GFDL. Se você quiser distribuí-lo separadamente da coleção, você pode fazê-lo adicionando 
ao manu
 al uma cópia da licença, como descrito na seção 6 da licença.</p><p>Muitos dos nomes usados por empresas 
para distinguir seus produtos e serviços são reivindicados como marcas registradas. Onde esses nomes aparecem 
em qualquer documentação do GNOME e os membros do Projeto de Documentação do GNOME estiverem cientes dessas 
marcas registradas, os nomes aparecerão impressos em letras maiúsculas ou com iniciais em maiúsculas.</p><p>O 
DOCUMENTO E VERSÕES MODIFICADAS DO DOCUMENTO SÃO FORNECIDOS SOB OS TERMOS DA GNU FREE DOCUMENTATION LICENSE 
COM O ENTENDIMENTO ADICIONAL DE QUE: </p><div class="orderedlist"><ol class="orderedlist" type="1"><li 
class="listitem"><p>O DOCUMENTO É FORNECIDO NA BASE "COMO ESTÁ", SEM GARANTIAS DE QUALQUER TIPO, TANTO 
EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS DE QUE O DOCUMENTO OU VERSÃO MODIFICADA DO 
DOCUMENTO SEJA COMERCIALIZÁVEL, LIVRE DE DEFEITOS, PRÓPRIO PARA UM PROPÓSITO ESPECÍFICO OU SEM INFRAÇÕES. TO
 DO O RISCO A RESPEITO DA QUALIDADE, EXATIDÃO, E DESEMPENHO DO DOCUMENTO OU VERSÕES MODIFICADAS DO DOCUMENTO 
É DE SUA RESPONSABILIDADE. SE ALGUM DOCUMENTO OU VERSÃO MODIFICADA SE PROVAR DEFEITUOSO EM QUALQUER ASPECTO, 
VOCÊ (NÃO O ESCRITOR INICIAL, AUTOR OU QUALQUER CONTRIBUIDOR) ASSUME O CUSTO DE QUALQUER SERVIÇO NECESSÁRIO, 
REPARO OU CORREÇÃO. ESSA RENÚNCIA DE GARANTIAS CONSTITUI UMA PARTE ESSENCIAL DESTA LICENÇA. NENHUM USO DESTE 
DOCUMENTO OU VERSÃO MODIFICADA DESTE DOCUMENTO É AUTORIZADO SE NÃO FOR SOB ESSA RENÚNCIA; E</p></li><li 
class="listitem"><p>SOB NENHUMA CIRCUNSTÂNCIA E SOB NENHUMA TEORIA LEGAL, TANTO EM DANO (INCLUINDO 
NEGLIGÊNCIA), CONTRATO, OU OUTROS, DEVEM O AUTOR, ESCRITOR INICIAL, QUALQUER CONTRIBUIDOR, OU QUALQUER 
DISTRIBUIDOR DO DOCUMENTO OU VERSÃO MODIFICADA DO DOCUMENTO, OU QUALQUER FORNECEDOR DE ALGUMA DESSAS PARTES, 
SEREM CONSIDERADOS RESPONSÁVEIS A QUALQUER PESSOA POR QUALQUER DANO, SEJA DIRETO, INDIRETO, ESPECIAL, 
ACIDENTAL OU DANO
 S DECORRENTES DE QUALQUER NATUREZA, INCLUINDO, MAS NÃO LIMITADO A, DANOS POR PERDA DE BOA VONTADE, TRABALHO 
PARADO, FALHA OU MAU FUNCIONAMENTO DO COMPUTADOR, OU QUALQUER E TODOS OS OUTROS DANOS OU PERDAS RESULTANTES 
OU RELACIONADOS AO USO DO DOCUMENTO E VERSÕES MODIFICADAS, MESMO QUE TAL PARTE TENHA SIDO INFORMADA DA 
POSSIBILIDADE DE TAIS DANOS.</p></li></ol></div></div></div><div><div class="legalnotice"><a 
name="idm51"></a><p class="legalnotice-title"><b>Comentários</b></p><p>
              To report a bug or make a suggestion regarding the <span class="application">Genius Mathematics 
Tool</span>
              application or this manual, please visit the
              <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">Genius
diff --git a/help/ru/genius.xml b/help/ru/genius.xml
new file mode 100644
index 0000000..9a898a9
--- /dev/null
+++ b/help/ru/genius.xml
@@ -0,0 +1,9669 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY app "<application>Genius Mathematics Tool</application>">
+<!ENTITY appname "Genius">
+<!ENTITY appversion "1.0.22">
+<!ENTITY date "September 2016">
+<!ENTITY legal SYSTEM "legal.xml">
+<!ENTITY manrevision "0.2">
+<!ENTITY lt "&#60;">
+<!ENTITY gt "&#62;">
+<!ENTITY le "&#8804;">
+<!ENTITY ge "&#8805;">
+<!ENTITY lsquo "&#8216;">
+<!ENTITY rsquo "&#8217;">
+<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
+<!-- 
+      (Do not remove this comment block.)
+  Maintained by the GNOME Documentation Project
+  http://developer.gnome.org/projects/gdp
+  Template version: 2.0 beta
+  Template last modified Apr 11, 2002
+-->
+<!-- =============Document Header ============================= -->
+<book id="index" lang="ru">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <bookinfo>
+         <abstract role="description"><para>Руководство по Математическому инструменту 
Genius.</para></abstract>
+    <title>Руководство пользователя Genius</title>       
+
+    <copyright>
+      <year>1997-2016</year>
+      <holder>Jiří (George) Lebl</holder>
+    </copyright>
+    <copyright>
+      <year>2004</year>
+      <holder>Kai Willadsen</holder>
+    </copyright><copyright><year>2012</year><holder>Алексей Кабанов (ak099 mail ru)</holder></copyright>
+<!-- translators: uncomment this:
+  <copyright>
+   <year>2002</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+-->
+
+    <publisher> 
+      <publishername/> 
+    </publisher> 
+
+     <legalnotice id="legalnotice">
+       <para>
+         Permission is granted to copy, distribute and/or modify this
+         document under the terms of the GNU Free Documentation
+         License (GFDL), Version 1.1 or any later version published
+         by the Free Software Foundation with no Invariant Sections,
+         no Front-Cover Texts, and no Back-Cover Texts.  You can find
+         a copy of the GFDL at this <ulink type="help" url="ghelp:fdl">link</ulink> or in the file 
COPYING-DOCS
+         distributed with this manual.
+         </para>
+         <para> This manual is part of a collection of GNOME manuals
+          distributed under the GFDL.  If you want to distribute this
+          manual separately from the collection, you can do so by
+          adding a copy of the license to the manual, as described in
+          section 6 of the license.
+       </para>
+
+       <para>
+         Many of the names used by companies to distinguish their
+         products and services are claimed as trademarks. Where those
+         names appear in any GNOME documentation, and the members of
+         the GNOME Documentation Project are made aware of those
+         trademarks, then the names are in capital letters or initial
+         capital letters.
+       </para>
+
+       <para>
+         DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED
+         UNDER  THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE
+         WITH THE FURTHER UNDERSTANDING THAT:
+
+         <orderedlist>
+               <listitem>
+                 <para>DOCUMENT IS PROVIDED ON AN "AS IS" BASIS,
+                    WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+                    IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
+                    THAT THE DOCUMENT OR MODIFIED VERSION OF THE
+                    DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR
+                    A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
+                    RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE
+                    OF THE DOCUMENT OR MODIFIED VERSION OF THE
+                    DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR
+                    MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT,
+                    YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY
+                    CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+                    SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+                    OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
+                    LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED
+                    VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER
+                    EXCEPT UNDER THIS DISCLAIMER; AND
+                 </para>
+               </listitem>
+               <listitem>
+                 <para>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
+                       THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE),
+                       CONTRACT, OR OTHERWISE, SHALL THE AUTHOR,
+                       INITIAL WRITER, ANY CONTRIBUTOR, OR ANY
+                       DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION
+                       OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH
+                       PARTIES, BE LIABLE TO ANY PERSON FOR ANY
+                       DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
+                       CONSEQUENTIAL DAMAGES OF ANY CHARACTER
+                       INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS
+                       OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
+                       MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR
+                       LOSSES ARISING OUT OF OR RELATING TO USE OF THE
+                       DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT,
+                       EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
+                       THE POSSIBILITY OF SUCH DAMAGES.
+                 </para>
+               </listitem>
+         </orderedlist>
+       </para>
+  </legalnotice>
+
+
+   <!-- This file  contains link to license for the documentation (GNU FDL), and 
+        other legal stuff such as "NO WARRANTY" statement. Please do not change 
+       any of this. -->
+
+    <authorgroup> 
+      <author role="maintainer"> 
+               <firstname>Jiří</firstname> 
+               <surname>Lebl</surname> 
+               <affiliation> 
+                       <orgname>Oklahoma State University</orgname> 
+                       <address> <email>jirka 5z com</email> </address> 
+               </affiliation> 
+      </author> 
+      <author> 
+               <firstname>Kai</firstname> 
+               <surname>Willadsen</surname> 
+               <affiliation> 
+                       <orgname>Университет Квинслэнда, Австралия</orgname> 
+                       <address> <email>kaiw itee uq edu au</email> </address> 
+               </affiliation> 
+      </author> 
+      
+<!-- This is appropriate place for other contributors: translators,
+     maintainers,  etc. Commented out by default.
+     
+      <othercredit role="translator">
+               <firstname>Latin</firstname> 
+               <surname>Translator 1</surname> 
+               <affiliation> 
+                       <orgname>Latin Translation Team</orgname> 
+                       <address> <email>translator gnome org</email> </address> 
+               </affiliation>
+               <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+    </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+-->
+<!-- than the current revision. -->
+<!-- The revision numbering system for GNOME manuals is as follows: -->
+<!-- * the revision number consists of two components -->
+<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
+<!-- * the second component of the revision number is a decimal unit that is incremented with each revision 
of the manual. -->
+<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
+<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
+<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
+<!-- to V3.0, and so on. -->  
+<!--  This is unmaintained quite a bit so screw this it just makes things
+      ugly and we don't update the manrevision stuff anyway
+    <revhistory>
+      <revision> 
+               <revnumber>&manrevision;</revnumber> 
+               <date>&date;</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>0.1</revnumber> 
+               <date>September 2004</date> 
+               <revdescription> 
+                       <para role="author">Kai Willadsen
+               <email>kaiw itee uq edu au</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>Genius Calculator Manual</revnumber> 
+               <date>August 2004</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+    </revhistory> 
+-->
+
+    <revhistory>
+      <revision> 
+               <revnumber>0.2</revnumber> 
+               <date>September 2016</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl <email>jirka 5z com</email></para>
+               </revdescription> 
+      </revision> 
+    </revhistory>
+    <releaseinfo>This manual describes version 1.0.22 of Genius.
+    </releaseinfo> 
+    <legalnotice> 
+      <title>Обратная связь</title> 
+      <para>
+             To report a bug or make a suggestion regarding the <application>Genius Mathematics 
Tool</application>
+             application or this manual, please visit the
+             <ulink url="http://www.jirka.org/genius.html"; type="http">Genius
+                     Web page</ulink>
+             or email me at <email>jirka 5z com</email>.
+      </para>
+<!-- Translators may also add here feedback address for translations -->
+    </legalnotice> 
+  </bookinfo> 
+
+<!-- ============= Introduction =============================== -->
+  <chapter id="genius-introduction"> 
+    <title>Введение</title> 
+    <para>
+       The <application>Genius Mathematics Tool</application> application is a general calculator for use as 
a desktop
+       calculator, an educational tool in mathematics, and is useful even for
+       research.  The language used in <application>Genius Mathematics Tool</application> is designed to be
+       ‘mathematical’ in the sense that it should be ‘what
+       you mean is what you get’.  Of course that is not an
+       entirely attainable goal.  <application>Genius Mathematics Tool</application> features rationals, 
arbitrary
+       precision integers and multiple precision floats using the GMP library.
+       It handles complex numbers using cartesian notation.  It has good
+       vector and matrix manipulation and can handle basic linear algebra.
+       The programming language allows user defined functions, variables and
+       modification of parameters.
+    </para> 
+
+    <para><application>Математический инструмент Genius</application> имеет две версии. Одна из них — это 
версия с графическим интерфейсом для GNOME, имеющая интерфейс в стиле интегрированных сред разработки (IDE) и 
способная строить графики функций одной или двух переменных. Версия для командной строки не требует наличия 
GNOME, но и не реализует тех возможностей, которые требуют наличия графического интерфейса.</para> 
+
+    <para>
+           Parts of this manual describe the graphical version of the calculator,
+       but the language is of course the same.  The command line only version
+       lacks the graphing capabilities and all other capabilities that require
+       the graphical user interface.
+    </para>
+
+    <para>
+           Generally, when some feature of the language (function, operator, etc...)
+           is new in some version past 1.0.5, it is mentioned, but
+           below 1.0.5 you would have to look at the NEWS file.
+    </para>
+
+  </chapter>
+
+<!-- =========== Getting Started ============================== -->
+  <chapter id="genius-getting-started"> 
+    <title>Приступая к работе</title> 
+
+    <sect1 id="genius-to-start">
+      <title>Запуск <application>Математического инструмента Genius</application></title>
+      <para>You can start <application>Genius Mathematics Tool</application> in the following ways:
+      </para> 
+      <variablelist>
+        <varlistentry>
+          <term>Меню <guimenu>Приложения</guimenu></term>
+          <listitem>
+           <para>В зависимости от установленной операционной системы и её версии, команда меню для запуска 
<application>Математического инструмента Genius</application> может находиться в различных местах. Она может 
располагаться в подменю <guisubmenu>Образование</guisubmenu>, <guisubmenu>Стандартные</guisubmenu>, 
<guisubmenu>Офис</guisubmenu>, <guisubmenu>Наука</guisubmenu> или других подобных подменю. Нужный вам элемент 
меню называется <guimenuitem>Математический инструмент Genius</guimenuitem>. Когда вы найдёте этот элемент 
меню, щёлкните на нём, чтобы запустить <application>Математический инструмент Genius</application>.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Диалог запуска</term>
+          <listitem>
+           <para>В некоторых операционных системах упомянутая выше команда меню может быть недоступна. В 
этом случае можно открыть диалог запуска и выполнить команду <command>gnome-genius</command>.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>Командная строка</term>
+         <listitem>
+           <para>Чтобы запустить версию <application>Математического инструмента Genius</application> для 
GNOME, выполните в командной строке <command>gnome-genius</command>.</para>
+           <para>Чтобы запустить версию для командной строки, выполните следующую команду: 
<command>genius</command>. Эта версия не содержит графического интерфейса и некоторые возможности, такие как 
построение графиков, будут в ней недоступны.</para> 
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-when-start">
+    <title>После запуска Genius</title>
+      <para>После запуска версии <application>Математического инструмента Genius</application> для GNOME 
появится окно, изображённое на иллюстрации <xref linkend="mainwindow-fig"/>.</para>
+
+      <figure id="mainwindow-fig"> 
+        <title>Окно <application>Математического инструмента Genius</application></title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+             <phrase>Shows <application>Математический инструмент Genius</application> main window. Contains 
titlebar, menubar,
+toolbar and working area. Menubar contains <guilabel>Файл</guilabel>,
+<guilabel>Правка</guilabel>, <guilabel>Калькулятор</guilabel>,
+<guilabel>Examples</guilabel>,
+<guilabel>Programs</guilabel>,
+<guilabel>Настройки</guilabel>, and <guilabel>Справка</guilabel> menus.</phrase> 
+            </textobject> 
+          </mediaobject>
+        </screenshot> 
+      </figure>
+
+      <para>Окно <application>Математического инструмента Genius</application> содержит следующие 
элементы:</para>
+      <variablelist>
+        <varlistentry>
+          <term>Строка меню.</term>
+          <listitem>
+            <para>Строка меню содержит все команды, необходимые для работы с файлами в 
<application>Математическом инструменте Genius</application>. Меню <guilabel>Файл</guilabel> содержит команды 
для загрузки и сохранения объектов и создания новых программ. Команда <guilabel>Загрузить и 
выполнить...</guilabel> не открывает новое окно для программы, а просто сразу выполняет программу. Её 
действие эквивалентно действию команды <command>load</command>.</para>
+           <para>
+               The <guilabel>Calculator</guilabel> menu controls the
+calculator engine.  It allows you to run the currently selected program or to
+interrupt the current calculation.  You can also look at the full expression of
+the last answer (useful if the last answer was too large to fit onto the
+console), or you can view a listing of the values of all user defined
+variables.  You can also monitor user variables, which is especially useful
+while a long calculation is running, or to debug a certain program.
+                   Finally the <guilabel>Calculator</guilabel> allows plotting functions using a user 
friendly dialog box.
+          </para>
+          <para>
+                  The <guilabel>Examples</guilabel> menu is a list of example
+                  programs or demos.  If you open the menu, it will load the
+                  example into a new program, which you can run, edit, modify,
+                  and save.  These programs should be well documented
+                  and generally demonstrate either some feature of <application>Genius Mathematics 
Tool</application>
+                  or some mathematical concept.
+          </para>
+          <para>
+                  The <guilabel>Programs</guilabel> menu lists
+                  the currently open programs and allows you to switch
+                  between them.
+          </para>
+          <para>Остальные меню выполняют такие же действия, как в других приложениях.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Панель инструментов.</term>
+          <listitem>
+            <para>Панель инструментов содержит некоторые из команд, к которым можно получить доступ через 
строку меню.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Рабочая область</term>
+          <listitem>
+            <para>Рабочая область — основной способ взаимодействия с приложением.</para>
+           <para>
+               The working area initially has just the <guilabel>Console</guilabel> tab, which is
+               the main way of interacting with the calculator.  Here you
+               type expressions and the results are immediately returned
+               after you hit the Enter key.
+           </para>
+           <para>
+               Alternatively you can write longer programs and those can
+               appear in separate tabs.  The programs are a set of commands or
+               functions that can be run all at once rather than entering them
+               at the command line.  The programs can be saved in files for later
+               retrieval.
+           </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+<!-- ================ Usage =================================== -->
+  <chapter id="genius-usage"> 
+    <title>Основы работы с программой</title> 
+
+    <sect1 id="genius-usage-workarea"> 
+      <title>Использование рабочей области</title> 
+
+      <para>
+        Normally you interact with the calculator in the <guilabel>Console</guilabel> tab of the
+       work area.  If you are running the text only version then the console
+       will be the only thing that is available to you.  If you want to use
+       <application>Genius Mathematics Tool</application> as a calculator only, just type in your expression 
in the console, it
+       will be evaluated, and the returned value will be printed.
+      </para>
+
+      <para>
+             To evaluate an expression, type it into the <guilabel>Console</guilabel> work area and press 
enter.
+             Expressions are written in a
+language called GEL.  The most simple GEL expressions just looks like
+mathematics.  For example
+<screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
+</screen>
+or
+<screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
+</screen>
+(Last is the harmonic sum from 1 to 70)
+</para>
+<para>Чтобы получить список функций и команд, наберите: <screen><prompt>genius&gt; 
</prompt><userinput>help</userinput>
+</screen> Для получения дополнительной справки по отдельной функции наберите : <screen><prompt>genius&gt; 
</prompt><userinput>help ИмяФункции</userinput>
+</screen> Чтобы увидеть это руководство, наберите: <screen><prompt>genius&gt; 
</prompt><userinput>manual</userinput>
+</screen></para>
+<para>
+Suppose you have previously saved some GEL commands as a program to a file and
+you now want to execute them.
+To load this program from the file <filename>path/to/program.gel</filename>,
+type
+<screen><prompt>genius&gt; </prompt><userinput>load path/to/program.gel</userinput>
+</screen>
+<application>Genius Mathematics Tool</application> keeps track of the current directory.
+To list files in the current directory type <command>ls</command>, to change directory
+do <userinput>cd directory</userinput> as in the UNIX command shell.
+</para>
+    </sect1>
+
+    <sect1 id="genius-usage-create-program"> 
+      <title>Создание новой программы</title> 
+      <para>
+             If you wish to enter several more complicated commands, or perhaps write a complicated
+             function using the <link linkend="genius-gel">GEL</link> language, you can create a new
+            program.
+      </para>
+      <para>
+To start writing a new program, choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>New
+Program</guimenuitem></menuchoice>. A new tab will appear in the work area. You
+can write a <link linkend="genius-gel">GEL</link> program in this work area.
+Once you have written your program you can run it by 
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice> (or
+the <guilabel>Run</guilabel> toolbar button).
+This will execute your program and will display any output on the <guilabel>Console</guilabel> tab.
+Executing a program is equivalent of taking the text of the program and
+typing it into the console.  The only difference is that this input is done
+independent of the console and just the output goes onto the console.
+<menuchoice><guimenu>Calculator</guimenu><guimenuitem>Run</guimenuitem></menuchoice>
+will always run the currently selected program even if you are on the <guilabel>Console</guilabel>
+tab.  The currently selected program has its tab in bold type.  To select a
+program, just click on its tab.
+      </para>
+      <para>
+To save the program you've just written, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save 
As...</guimenuitem></menuchoice>.
+Similarly as in other programs you can choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice> to save a program that 
already has
+a filename attached to it.  If you have many opened programs you have edited and wish to save you can also 
choose
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save All Unsaved</guimenuitem></menuchoice>.
+      </para>
+      <para>
+             Programs that have unsaved changes will have a "[+]" next to their filename.  This way you can 
see if the file
+             on disk and the currently opened tab differ in content.  Programs which have not yet had a 
filename associated
+             with them are always considered unsaved and no "[+]" is printed.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-usage-open-program"> 
+      <title>Открытие и запуск программы</title> 
+      <para>Чтобы открыть файл, выберите 
<menuchoice><guimenu>Файл</guimenu><guimenuitem>Открыть</guimenuitem></menuchoice>. В рабочей области 
появится новая вкладка с содержимым файла. Вы можете использовать её для редактирования файла.</para>
+      <para>Чтобы запустить программу из файла, выберите 
<menuchoice><guimenu>Файл</guimenu><guimenuitem>Загрузить и выполнить...</guimenuitem></menuchoice>. Это 
действие запустит программу, не открывая её в отдельной вкладке. Это эквивалентно команде 
<command>load</command>.</para>
+      <para>
+             If you have made edits to a file you wish to throw away and want to reload to the version 
that's on disk,
+             you can choose the
+             <menuchoice><guimenu>File</guimenu><guimenuitem>Reload from Disk</guimenuitem></menuchoice> 
menuitem.  This is useful for experimenting
+             with a program and making temporary edits, to run a program, but that you do not intend to keep.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Plotting ============================== -->
+  <chapter id="genius-gel-plotting">
+    <title>Построение графиков</title>
+
+    <para>Построение графиков поддерживается только в версии с графическим интерфейсом для GNOME. Все 
варианты графиков, имеющиеся в графическом интерфейсе, доступны из окна <guilabel>Создать график</guilabel>. 
Чтобы открыть это окно, нажмите кнопку <guilabel>График</guilabel> на панели инструментов или выберите 
<guilabel>Нарисовать график</guilabel> из меню <guilabel>Калькулятор</guilabel>. Можно также использовать 
команды <link linkend="genius-gel-function-list-plotting">построения графиков</link> языка GEL. Смотрите 
<xref linkend="genius-gel"/>, чтобы узнать, как вводить выражения, которые понимает Genius.</para>
+
+    <sect1 id="genius-line-plots">
+      <title>Линейные графики</title>
+      <para>
+       To graph real valued functions of one variable open the <guilabel>Create Plot</guilabel>
+       window.  You can also use the
+        <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> function
+       on the command line (see its documentation).
+      </para>
+      <para>После нажатия кнопки <guilabel>График</guilabel> откроется окно с несколькими вкладками. Вам 
нужна вкладка <guilabel>Линейный график функции</guilabel>, внутри которой следует выбрать вкладку 
<guilabel>Функции / Выражения</guilabel>. Смотрите <xref linkend="lineplot-fig"/>.</para>
+
+      <figure id="lineplot-fig"> 
+        <title>Create Plot Window</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Shows the line plotting window.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       Type expressions with <userinput>x</userinput> as
+       the independent variable into the textboxes.  Alternatively you can give names of functions such as
+       <userinput>cos</userinput> rather then having to type <userinput>cos(x)</userinput>.
+       You can graph up to ten functions.  If you make a mistake and Genius cannot
+       parse the input it will signify this with a warning icon on the right of the text
+       input box where the error occurred, as well as giving you an error dialog.
+       You can change the ranges of the dependent and independent variables in the bottom
+       part of the dialog.
+       The <varname>y</varname> (dependent) range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+       checkbox.
+       The names of the variables can also be changed.
+       Pressing the <guilabel>Plot</guilabel> button produces the graph shown in <xref 
linkend="lineplot2-fig"/>.
+      </para>
+      <para>
+             The variables can be renamed by clicking the <guilabel>Change variable names...</guilabel> 
button, which is useful if you wish to print or save the figure and don't want to use the standard
+             names.  Finally you can also avoid printing the legend and the axis labels completely,
+             which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="lineplot2-fig"> 
+        <title>Plot Window</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>The graph produced.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       From here you can print out the plot, create encapsulated postscript
+       or a PNG version of the plot or change the zoom.  If the dependent axis was
+       not set correctly you can have Genius fit it by finding out the extrema of
+       the graphed functions.
+      </para>
+
+      <para>
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> function.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-parametric-plots">
+      <title>Parametric Plots</title>
+      <para>
+       In the create plot window, you can also choose the <guilabel>Parametric</guilabel> notebook
+        tab to create two dimensional parametric plots.  This way you can
+       plot a single parametric function.  You can either specify the
+       points as <varname>x</varname> and <varname>y</varname>, or giving a single complex number
+       as a function of the variable <varname>t</varname>.
+       The range of the variable <varname>t</varname> is given explicitly, and the function is sampled
+       according to the given increment.
+       The <varname>x</varname> and <varname>y</varname> range can be set
+       automatically by turning on the <guilabel>Fit dependent axis</guilabel>
+       checkbox, or it can be specified explicitly.
+       See <xref linkend="paramplot-fig"/>.
+      </para>
+
+      <figure id="paramplot-fig"> 
+        <title>Parametric Plot Tab</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Parametric plotting tab in the <guilabel>Create Plot</guilabel> window.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+       An example of a parametric plot is given in
+       <xref linkend="paramplot2-fig"/>.
+       Similar operations can be
+       done on such graphs as can be done on the other line plots.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> or
+        <link linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link> 
function.
+      </para>
+
+      <figure id="paramplot2-fig"> 
+        <title>Parametric Plot</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Parametric plot produced</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+    </sect1>
+
+    <sect1 id="genius-slopefield-plots">
+      <title>Slopefield Plots</title>
+      <para>
+       In the create plot window, you can also choose the <guilabel>Slope field</guilabel> notebook
+        tab to create a two dimensional slope field plot.
+       Similar operations can be
+       done on such graphs as can be done on the other line plots.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link> function.
+      </para>
+
+      <para>
+       When a slope field is active, there is an extra <guilabel>Solver</guilabel> menu available,
+       through which you can bring up the solver dialog.  Here you can have Genius plot specific
+       solutions for the given initial conditions.  You can either specify initial conditions in the dialog,
+       or you can click on the plot directly to specify the initial point.  While the solver dialog
+       is active, the zooming by clicking and dragging does not work.  You have to close the dialog first
+       if you want to zoom using the mouse.
+      </para>
+
+      <para>
+       The solver uses the standard Runge-Kutta method.
+       The plots will stay on the screen until cleared.  The solver will stop whenever it reaches the 
boundary
+       of the plot window.  Zooming does not change the limits or parameters of the solutions,
+       you will have to clear and redraw them with appropriate parameters.
+       You can also use the
+        <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>
+       function to draw solutions from the command line or programs.  
+      </para>
+
+    </sect1>
+
+    <sect1 id="genius-vectorfield-plots">
+      <title>Vectorfield Plots</title>
+      <para>
+       In the create plot window, you can also choose the <guilabel>Vector field</guilabel> notebook
+        tab to create a two dimensional vector field plot.
+       Similar operations can be
+       done on such graphs as can be done on the other line plots.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link> function.
+      </para>
+
+      <para>
+       By default the direction and magnitude of the vector field is shown.
+       To only show direction and not the magnitude, check the appropriate
+       checkbox to normalize the arrow lengths.
+      </para>
+
+      <para>
+       When a vector field is active, there is an extra <guilabel>Solver</guilabel> menu available,
+       through which you can bring up the solver dialog.  Here you can have Genius plot specific
+       solutions for the given initial conditions.  You can either specify initial conditions in the dialog,
+       or you can click on the plot directly to specify the initial point.  While the solver dialog
+       is active, the zooming by clicking and dragging does not work.  You have to close the dialog first
+       if you want to zoom using the mouse.
+      </para>
+
+      <para>
+       The solver uses the standard Runge-Kutta method.
+       The plots will stay on the screen until cleared.
+       Zooming does not change the limits or parameters of the solutions,
+       you will have to clear and redraw them with appropriate parameters.
+       You can also use the
+        <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>
+       function to draw solutions from the command line or programs.  
+      </para>
+
+    </sect1>
+
+    <sect1 id="genius-surface-plots">
+      <title>Графики поверхностей</title>
+      <para>
+       Genius can also plot surfaces.  Select the <guilabel>Surface plot</guilabel> tab in the
+       main notebook of the <guilabel>Create Plot</guilabel> window.  Here you can specify a single
+       expression that should use either <varname>x</varname> and <varname>y</varname> as real independent 
variables
+       or <varname>z</varname> as a complex variable (where <varname>x</varname> is the real part of 
<varname>z</varname> and <varname>y</varname> is the
+       imaginary part).  For example to plot the modulus of the cosine
+       function for complex parameters,
+       you could enter <userinput>|cos(z)|</userinput>.  This would be
+       equivalent to <userinput>|cos(x+1i*y)|</userinput>.
+       See <xref linkend="surfaceplot-fig"/>.
+       For plotting using the command line see the documentation of the
+        <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link> function.
+      </para>
+      <para>
+             The <varname>z</varname> range can be set automatically by turning on the <guilabel>Fit 
dependent axis</guilabel>
+             checkbox.  The variables can be renamed by clicking the <guilabel>Change variable 
names...</guilabel> button, which is useful if you wish to print or save the figure and don't want to use the 
standard
+             names.  Finally you can also avoid printing the legend, which is also useful if printing or
+             saving, when the legend might simply be clutter.
+      </para>
+
+      <figure id="surfaceplot-fig"> 
+        <title>Surface Plot</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Modulus of the complex cosine function.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>
+             In surface mode, left and right arrow keys on your keyboard will rotate the
+             view along the z axis.  Alternatively you can rotate along any axis by
+             selecting <guilabel>Rotate axis...</guilabel> in the <guilabel>View</guilabel> 
+             menu.  The <guilabel>View</guilabel> menu also has a top view mode which rotates the
+             graph so that the z axis is facing straight out, that is, we view the graph from the top
+             and get essentially just the colors that define the values of the function getting a
+             temperature plot of the function.  Finally you should
+             try <guilabel>Start rotate animation</guilabel>, to start a continuous slow rotation.
+             This is especially good if using <application>Genius Mathematics Tool</application> to present 
to an audience.
+      </para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL ====================================== -->
+  <chapter id="genius-gel"> 
+    <title>Основы GEL</title> 
+
+       <para>
+         GEL stands for Genius Extension Language.    It is the language you use
+         to write programs in Genius. A program in GEL is simply an
+         expression that evaluates to a number, a matrix, or another object
+         in GEL.
+         <application>Genius Mathematics Tool</application> can be used as a simple calculator, or as a
+         powerful theoretical research tool.  The syntax is meant to
+         have as shallow of a learning curve as possible, especially for use
+         as a calculator.
+       </para>
+
+    <sect1 id="genius-gel-values">
+      <title>Значения</title>
+
+      <para>
+             Values in GEL can be <link linkend="genius-gel-values-numbers">numbers</link>, <link 
linkend="genius-gel-values-booleans">Booleans</link>, or <link 
linkend="genius-gel-values-strings">strings</link>.   GEL also treats 
+<link linkend="genius-gel-matrices">matrices</link> as values.
+             Values can be used in calculations, assigned to variables and returned from functions, among 
other uses.
+      </para>
+
+      <sect2 id="genius-gel-values-numbers">
+        <title>Числа</title>
+        <para>Целые числа — первый тип чисел в GEL. Целые числа записываются общепринятым способом. 
<programlisting>1234
+</programlisting> Шестнадцатиричные и восьмиричные числа можно записать, используя нотацию языка C. 
Например: <programlisting>0x123ABC
+01234
+</programlisting> Можно также набрать числа в произвольной системе счисления, используя запись 
<literal>&lt;основание&gt;\&lt;число&gt;</literal>. Для цифр больше 10 используются буквы, как и в 
шестнадцатиричном счислении. Например, число по основанию 23 может быть записано в виде: 
<programlisting>23\1234ABCD
+</programlisting></para>
+
+        <para>Второй тип чисел в GEL — это рациональные числа. Они получаются делением двух целых чисел. 
Поэтому можно написать: <programlisting>3/4
+</programlisting> чтобы обозначить три четвёртых. Рациональные числа также можно записывать в виде смешанных 
дробей. Чтобы указать одну целую три десятых, можно написать: <programlisting>1 3/10
+</programlisting></para>
+
+        <para>
+The next type of number is floating point. These are entered in a similar fashion to C notation. You can use 
<literal>E</literal>, <literal>e</literal> or <literal>@</literal> as the exponent delimiter. Note that using 
the exponent delimiter gives a float even if there is no decimal point in the number. Examples:
+<programlisting>1.315
+7.887e77
+7.887e-77
+.3
+0.3
+77e5
+</programlisting>
+       When Genius prints a floating point number it will always append a
+       <computeroutput>.0</computeroutput> even if the number is whole.  This is to indicate that
+       floating point numbers are taken as imprecise quantities.  When a number is written in the
+       scientific notation, it is always a floating point number and thus Genius does not
+       print the <computeroutput>.0</computeroutput>.
+        </para>
+
+        <para>
+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:
+<programlisting>1+2i
+8.01i
+77*e^(1.3i)
+</programlisting>
+        </para>
+
+        <important>
+          <para>При вводе мнимых чисел перед символом <literal>i</literal> должно стоять число. Если 
использовать символ <literal>i</literal> сам по себе, Genius интерпретирует его как ссылку на переменную 
<varname>i</varname>. Если нужно указать саму мнимую единицу <literal>i</literal>, используйте вместо неё 
<literal>1i</literal>.</para>
+
+          <para>Чтобы использовать смешанные дроби в мнимых числах, нужно взять смешанную дробь в круглые 
скобки: (например, <userinput>(1 2/5)i</userinput>)</para>
+        </important>
+
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-booleans">
+        <title>Логические значения</title>
+        <para>Genius также поддерживает логические значения. Определены две логические константы: 
<constant>true</constant> и <constant>false</constant>; их можно использовать, как и любую переменную. В 
качестве псевдонимов к ним можно также использовать <constant>True</constant>, <constant>TRUE</constant>, 
<constant>False</constant> и <constant>FALSE</constant>.</para>
+        <para>Там, где требуется логическое выражение, можно использовать логическое значение или любое 
выражение, дающее в результате число или логическое значение. Если Genius нужно использовать число как 
логическое значение, он будет интерпретировать 0 как <constant>false</constant> и любое другое число как 
<constant>true</constant>.</para>
+        <para>Кроме того, с логическими значениями можно выполнять арифметические операции. Например: 
<programlisting>( (1 + true) - false ) * true
+</programlisting> это то же самое, что и: <programlisting>( (true or true) or not false ) and true
+</programlisting> Поддерживаются только сложение, вычитание и умножение. Если вы используете в выражении 
смесь чисел с логическими значениями, то числа преобразовываются в логические значения, как описано выше. То 
есть, результатом выражения: <programlisting>1 == true
+</programlisting> всегда будет <constant>true</constant>, так как 1 преобразовывается в 
<constant>true</constant> перед сравнением с <constant>true</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-strings">
+        <title>Строки</title>
+        <para>
+Like numbers and Booleans, strings in GEL can be stored as values inside variables and passed to functions. 
You can also concatenate a string with another value using the plus operator. For example:
+<programlisting>a=2+3;"Результат равен: "+a
+</programlisting>
+will create the string:
+<programlisting>Результат равен: 5
+</programlisting>
+You can also use C-like escape sequences such as 
<literal>\n</literal>,<literal>\t</literal>,<literal>\b</literal>,<literal>\a</literal> and 
<literal>\r</literal>. To get a <literal>\</literal> or <literal>"</literal> into the string you can quote it 
with a <literal>\</literal>. For example:
+<programlisting>"Косая черта: \\ Кавычки: \" Табуляция: \t1\t2\t3"
+</programlisting>
+will make a string:
+<programlisting>Косая черта: \ Кавычки: " Табуляция:   1       2       3
+</programlisting>
+Do note however that when a string is returned from a function, escapes are
+quoted, so that the output can be used as input.  If you wish to print the
+string as it is (without escapes), use the 
+<link linkend="gel-function-print"><function>print</function></link>
+or
+<link linkend="gel-function-printn"><function>printn</function></link> functions.
+        </para>
+        <para>
+               In addition, you can use the library function <link 
linkend="gel-function-string"><function>string</function></link> to convert anything to a string. For example:
+<programlisting>string(22)
+</programlisting>
+will return
+<programlisting>"22"
+</programlisting>
+Strings can also be compared with <literal>==</literal> (equal), <literal>!=</literal> (not equal) and 
<literal>&lt;=&gt;</literal> (comparison) operators
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-null">
+        <title>Null</title>
+        <para>
+There is a special value called
+<constant>null</constant>. No operations can be performed on
+it, and nothing is printed when it is returned. Therefore,
+<constant>null</constant> is useful when you do not want output from an
+expression.  The value <constant>null</constant> can be obtained as an expression when you
+type <literal>.</literal>, the constant <constant>null</constant> or nothing.
+By nothing we mean that if you end an expression with
+a separator <literal>;</literal>, it is equivalent to ending it with a
+separator followed by a <constant>null</constant>.
+        </para>
+        <para>Пример: <programlisting>x=5;.
+x=5;
+</programlisting></para>
+<para>Некоторые функции возвращают <constant>null</constant>, если невозможно вернуть значение или произошла 
ошибка. Также <constant>null</constant> используется как пустой вектор или матрица, или пустая ссылка.</para>
+      </sect2>
+
+    </sect1>
+
+    <sect1 id="genius-gel-variables">
+      <title>Использование переменных</title>
+
+      <para>Синтаксис: <programlisting>ИмяПеременной
+</programlisting> Пример: <screen><prompt>genius&gt; </prompt><userinput>e</userinput>
+= 2.71828182846
+</screen></para>
+
+      <para>Чтобы вычислить значение переменной, просто введите имя переменной и программа вернёт её 
значение. Можно использовать переменную в любом месте, где обычно используется число или строка. Кроме того, 
переменные необходимы при определении функций, принимающих аргументы (см. <xref 
linkend="genius-gel-functions-defining"/>).</para>
+
+      <tip>
+        <title>Использование автозавершения по клавише Tab</title>
+        <para>Вы можете использовать автозавершение по нажатию клавиши Tab, чтобы Genius автоматически 
подставлял полное имя переменной. Попробуйте набрать несколько первых букв имени и нажать 
<userinput>Tab</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Имена переменных чувствительны к регистру</title>
+        <para>Имена переменных чувствительны к регистру символов. Это означает, что переменные 
<varname>hello</varname>, <varname>HELLO</varname> и <varname>Hello</varname> — это разные переменные.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-variables-setting">
+        <title>Присваивание значения переменным</title>
+        <para>Синтаксис: <programlisting><![CDATA[<identifier> = <value>
+<identifier> := <value>]]>
+</programlisting> Пример: <programlisting>x = 3
+x := 3
+</programlisting></para>
+
+        <para>
+To assign a value to a variable, use the <literal>=</literal> or <literal>:=</literal> operators. These 
operators set the value of the variable and return the value you set, so you can do things like
+<programlisting>a = b = 5
+</programlisting>
+This will set <varname>b</varname> to 5 and then also set <varname>a</varname> to 5.
+        </para>
+
+        <para>Для присваивания значения переменным можно использовать любой из операторов 
<literal>=</literal> и <literal>:=</literal>. Различие между ними в том, что оператор <literal>:=</literal> 
всегда действует как оператор присваивания, а оператор <literal>=</literal> может интерпретироваться как 
проверка на равенство там, где ожидается логическое выражение.</para>
+
+       <para>
+         For more information about the scope of variables, that is when are what variables visible, see 
<xref linkend="genius-gel-variables-global"/>.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-variables-built-in">
+        <title>Встроенные переменные</title>
+        <para>
+GEL has a number of built-in ‘variables’, such as
+<varname>e</varname>, <varname>pi</varname> or <varname>GoldenRatio</varname>.  These are widely used 
constants with a preset value, and
+they cannot be assigned new values.
+There are a number of other built-in variables.
+See <xref linkend="genius-gel-function-list-constants"/> for a full list.  Note that <varname>i</varname> is 
not by default
+the square root of negative one (the imaginary number), and is undefined to allow its use as a counter.  If 
you wish to write the imaginary number you need to
+use <userinput>1i</userinput>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-previous-result">
+        <title>Переменные с результатом предыдущего вычисления</title>
+        <para>Переменные <varname>Ans</varname> и <varname>ans</varname> могут использоваться для получения 
результата последнего вычисления. Например, чтобы добавить 389 к результату предыдущего вычисления, можно 
набрать: <programlisting>Ans+389
+</programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-functions">
+      <title>Использование функций</title>
+
+      <para>Синтаксис: <programlisting>ИмяФункции(аргумент1, аргумент2, ...)
+</programlisting> Пример: <programlisting>Factorial(5)
+cos(2*pi)
+gcd(921,317)
+</programlisting> Чтобы вычислить значение функции, введите имя функции, за которым следуют аргументы 
функции (если они имеются) в круглых скобках. Программа вернёт результат применения функции к её аргументам. 
Разумеется, число аргументов  может быть разным для разных функций.</para>
+
+      <para>
+             There are many built-in functions, such as <link 
linkend="gel-function-sin"><function>sin</function></link>, <link 
linkend="gel-function-cos"><function>cos</function></link> and <link 
linkend="gel-function-tan"><function>tan</function></link>. You can use the <link 
linkend="gel-command-help"><function>help</function></link> built-in command to get a list of available 
functions, or see <xref linkend="genius-gel-function-list"/> for a full listing.
+      </para>
+
+      <tip>
+        <title>Использование автозавершения по клавише Tab</title>
+        <para>Можно использовать автозавершение по клавише Tab, чтобы Genius автоматически подставлял имена 
функций. Попробуйте набрать первые несколько букв имени и нажать <userinput>Tab</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Имена функций чувствительны к регистру</title>
+        <para>Имена функций чувствительны к регистру символов. Это означает, что функции 
<function>dosomething</function>, <function>DOSOMETHING</function> и <function>DoSomething</function> — это 
разные функции.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-functions-defining">
+        <title>Определение функций</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[function <identifier>(<comma separated arguments>) = <function body>
+<identifier> = (`() = <function body>)
+]]></programlisting>
+The <literal>`</literal> is the backquote character, and signifies an anonymous function. By setting it to a 
variable name you effectively define a function.
+        </para>
+
+        <para>
+A function takes zero or more comma separated arguments, and returns the result of the function body. 
Defining your own functions is primarily a matter of convenience; one possible use is to have sets of 
functions defined in GEL files that Genius can load in order to make them available.
+Example:
+<programlisting>function addup(a,b,c) = a+b+c
+</programlisting>
+then <userinput>addup(1,4,9)</userinput> yields 14
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-functions-variable-argument-lists">
+        <title>Variable Argument Lists</title>
+        <para>
+If you include <literal>...</literal> after the last argument name in the function declaration, then Genius 
will allow any number of arguments to be passed in place of that argument. If no arguments were passed then 
that argument will be set to <constant>null</constant>. Otherwise, it will be a horizontal vector containing 
all the arguments. For example:
+<programlisting>function f(a,b...) = b
+</programlisting>
+Then <userinput>f(1,2,3)</userinput> yields <computeroutput>[2,3]</computeroutput>, while 
<userinput>f(1)</userinput> yields a <constant>null</constant>.
+        </para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-functions-passing-functions">
+        <title>Passing Functions to Functions</title>
+
+        <para>
+In Genius, it is possible to pass a function as an argument to another function. This can be done using 
either ‘function nodes’ or anonymous functions.
+        </para>
+
+        <para>
+If you do not enter the parentheses after a function name, instead of being evaluated, the function will 
instead be returned as a ‘function node’. The function node can then be passed to another function.
+Example:
+<programlisting>function f(a,b) = a(b)+1;
+function b(x) = x*x;
+f(b,2)
+</programlisting>
+        </para>
+        <para>
+To pass functions that are not defined,
+you can use an anonymous function (see <xref linkend="genius-gel-functions-defining"/>).  That is, you want 
to pass a function without giving it a name.
+Syntax:
+<programlisting><![CDATA[function(<comma separated arguments>) = <function body>
+`(<comma separated arguments>) = <function body>
+]]></programlisting>
+Example:
+<programlisting>function f(a,b) = a(b)+1;
+f(`(x) = x*x,2)
+</programlisting>
+This will return 5.
+        </para>
+      </sect2>
+
+
+    <sect2 id="genius-gel-functions-operations">
+      <title>Операции с функциями</title>
+      <para>
+             Some functions allow arithmetic operations, and some single argument functions such as <link 
linkend="gel-function-exp"><function>exp</function></link> or <link 
linkend="gel-function-ln"><function>ln</function></link>, to operate on the function. For example,
+<programlisting>exp(sin*cos+4)
+</programlisting>
+will return a function that takes <varname>x</varname> and returns 
<userinput>exp(sin(x)*cos(x)+4)</userinput>.  It is functionally equivalent
+to typing
+<programlisting>`(x) = exp(sin(x)*cos(x)+4)
+</programlisting>
+
+This operation can be useful when quickly defining functions. For example to create a function called 
<varname>f</varname>
+to perform the above operation, you can just type:
+<programlisting>f = exp(sin*cos+4)
+</programlisting>
+It can also be used in plotting. For example, to plot sin squared you can enter:
+<programlisting>LinePlot(sin^2)
+</programlisting>
+      </para>
+
+      <warning>
+        <para>
+Not all functions can be used in this way.  For example, when you use a binary operation the functions must 
take the same number of arguments. 
+        </para>
+      </warning>
+    </sect2>
+
+
+    </sect1>
+
+    <sect1 id="genius-gel-separator">
+      <title>Разделитель</title>
+      <para>
+             GEL is somewhat different from other languages in how it deals with multiple commands and 
functions.
+             In GEL you must chain commands together with a separator operator.
+That is, if you want to type more than one expression you have to use
+the <literal>;</literal> operator in between the expressions.   This is
+a way in which both expressions are evaluated and the result of the second one (or the last one
+if there is more than two expressions) is returned.
+Suppose you type the following:
+<programlisting>3 ; 5
+</programlisting>
+This expression will yield 5.
+      </para>
+      <para>
+This will require some parenthesizing to make it unambiguous sometimes,
+especially if the <literal>;</literal> is not the top most primitive. This slightly differs from
+other programming languages where the <literal>;</literal> is a terminator of statements, whereas
+in GEL it’s actually a binary operator. If you are familiar with pascal
+this should be second nature. However genius can let you pretend it is a
+terminator to some degree.  If a <literal>;</literal> is found at the end of a parenthesis or a block,
+genius will append a null to it as if you would have written
+<userinput>;null</userinput>.
+This is useful in case you do not want to return a value from say a loop,
+or if you handle the return differently. Note that it will slightly slow down
+the code if it is executed too often as there is one more operator involved.
+      </para>
+      <para>
+             If you are typing expressions in a program you do not have to add a semicolon.  In this case
+             genius will simply print the return value whenever it executes the expression.  However, do 
note that if you are defining a
+             function, the body of the function is a single expression.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comments">
+      <title>Comments</title>
+      <para>
+             GEL is similar to other scripting languages in that <literal>#</literal> denotes
+             a comment, that is text that is not meant to be evaluated.  Everything beyond the
+             pound sign till the end of line will just be ignored.  For example,
+<programlisting># This is just a comment
+# every line in a comment must have its own pound sign
+# in the next line we set x to the value 123
+x=123;
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-modular-evaluation">
+      <title>Modular Evaluation</title>
+      <para>
+             Genius implements modular arithmetic.
+To use it you just add "mod &lt;integer&gt;" after
+the expression.  Example:
+<userinput>2^(5!) * 3^(6!) mod 5</userinput>
+It could be possible to do modular arithmetic by computing with integers and then modding in the end with
+the <literal>%</literal> operator, which simply gives the remainder, but
+that may be time consuming if not impossible when working with larger numbers.
+For example, <userinput>10^(10^10) % 6</userinput> will simply not work (the exponent
+will be too large), while
+<userinput>10^(10^10) mod 6</userinput> is instantaneous.  The first expression first tries to compute the 
integer
+<userinput>10^(10^10)</userinput> and then find remainder after division by 6, while the second expression 
evaluates
+everything modulo 6 to begin with.
+      </para>
+      <para>
+You can calculate the inverses of numbers mod some integer by just using
+rational numbers (of course the inverse has to exist).
+Examples:
+<programlisting>10^-1 mod 101
+1/10 mod 101</programlisting>
+You can also do modular evaluation with matrices including taking inverses,
+powers and dividing.
+Example:
+<programlisting>A = [1,2;3,4]
+B = A^-1 mod 5
+A*B mod 5</programlisting>
+This should yield the identity matrix as B will be the inverse of A mod 5.
+      </para>
+      <para>
+Some functions such as
+<link linkend="gel-function-sqrt"><function>sqrt</function></link> or
+<link linkend="gel-function-log"><function>log</function></link>
+work in a different way when in modulo mode.  These will then work like their
+discrete versions working within the ring of integers you selected.  For
+example:
+<programlisting>genius&gt; sqrt(4) mod 7
+=
+[2, 5]
+genius&gt; 2*2 mod 7
+= 4</programlisting>
+       <function>sqrt</function> will actually return all the possible square
+       roots.
+      </para>
+      <para>
+             Do not chain mod operators, simply place it at the end of the computation, all computations in 
the expression on the left
+             will be carried out in mod arithmetic.  If you place a mod inside
+             a mod, you will get unexpected results.  If you simply want to
+             mod a single number and control exactly when remainders are
+             taken, best to use the <literal>%</literal> operator.  When you
+             need to chain several expressions in modular arithmetic with
+             different divisors, it may be best to just split up the expression into several and use
+             temporary variables to avoid a mod inside a mod.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-operator-list">
+      <title>Список операторов GEL</title>
+
+      <para>
+             Everything in GEL is really just an expression.  Expressions are stringed together with
+             different operators.  As we have seen, even the separator is simply a binary operator
+             in GEL.  Here is a list of the operators in GEL. 
+      </para>
+
+      <variablelist>
+        <varlistentry>
+         <term><userinput>a;b</userinput></term>
+         <listitem>
+           <para>Разделитель, просто вычисляющий как <varname>a</varname>, так и <varname>b</varname>, но 
возвращающий только результат <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a=b</userinput></term>
+         <listitem>
+           <para>
+            The assignment operator.  This assigns <varname>b</varname> to
+<varname>a</varname> (<varname>a</varname> must be a valid <link linkend="genius-gel-lvalues">lvalue</link>) 
(note however that this operator
+may be translated to <literal>==</literal> if used in a place where boolean
+expression is expected)
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:=b</userinput></term>
+         <listitem>
+           <para>
+            The assignment operator.  Assigns <varname>b</varname> to
+<varname>a</varname> (<varname>a</varname> must be a valid <link 
linkend="genius-gel-lvalues">lvalue</link>).  This is
+different from <literal>=</literal> because it never gets translated to a
+<literal>==</literal>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>|a|</userinput></term>
+         <listitem>
+           <para>
+                  Absolute value.
+                  In case the expression is a complex number the result will be the modulus
+(distance from the origin).  For example:
+<userinput>|3 * e^(1i*pi)|</userinput>
+returns 3.
+         </para>
+          <para>Смотрите <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld</ulink> для 
дополнительной информации.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a^b</userinput></term>
+         <listitem>
+           <para>Возводит переменную <varname>a</varname> в степень <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.^b</userinput></term>
+         <listitem>
+           <para>Поэлементное возведение в степень. Возводит каждый элемент матрицы <varname>a</varname> в 
степень <varname>b</varname>. Или, если <varname>b</varname> — матрица той же размерности, что и 
<varname>a</varname>, выполняет операцию поэлементно. Если <varname>a</varname> — число, а 
<varname>b</varname> — матрица, то создаёт матрицу той же размерности, что и <varname>b</varname> со 
значением <varname>a</varname>, возведённым во все степени, содержащиеся в <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a+b</userinput></term>
+         <listitem>
+           <para>
+             Addition.  Adds two numbers, matrices, functions or strings.  If
+            you add a string to anything the result will just be a string.  If one is
+            a square matrix and the other a number, then the number is multiplied by
+            the identity matrix.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a-b</userinput></term>
+         <listitem>
+           <para>Вычитание. Вычитает два числа, матрицы или функции.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a*b</userinput></term>
+         <listitem>
+           <para>Умножение. Это обычное умножение матриц.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.*b</userinput></term>
+         <listitem>
+           <para>Поэлементное умножение, если <varname>a</varname> и <varname>b</varname> являются 
матрицами.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a/b</userinput></term>
+         <listitem>
+           <para>
+                  Division.  When <varname>a</varname> and <varname>b</varname> are just numbers
+                  this is the normal division.  When they are matrices, then this is
+                  equivalent to <userinput>a*b^-1</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a./b</userinput></term>
+         <listitem>
+           <para>
+                  Element by element division.  Same as <userinput>a/b</userinput> for
+                  numbers, but operates element by element on matrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a\b</userinput></term>
+         <listitem>
+           <para>Обратное деление. Это то же самое, что <userinput>b/a</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.\b</userinput></term>
+         <listitem>
+           <para>Поэлементное обратное деление.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a%b</userinput></term>
+         <listitem>
+           <para>
+            The mod operator.  This does not turn on the <link 
linkend="genius-gel-modular-evaluation">modular mode</link>, but
+             just returns the remainder of integer division
+             <userinput>a/b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.%b</userinput></term>
+         <listitem>
+           <para>
+             Element by element mod operator.  Returns the remainder
+            after element by element integer division
+            <userinput>a./b</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a mod b</userinput></term>
+         <listitem>
+           <para>
+             Modular evaluation operator.  The expression <varname>a</varname>
+            is evaluated modulo <varname>b</varname>.  See <xref linkend="genius-gel-modular-evaluation"/>.
+            Some functions and operators behave differently modulo an integer.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!</userinput></term>
+         <listitem>
+           <para>Факториал: <userinput>1*...*(n-2)*(n-1)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!!</userinput></term>
+         <listitem>
+           <para>Двойной факториал: <userinput>1*...*(n-4)*(n-2)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a==b</userinput></term>
+         <listitem>
+           <para>
+            Equality operator.
+            Returns <constant>true</constant> or <constant>false</constant>
+            depending on <varname>a</varname> and <varname>b</varname> being equal or not.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!=b</userinput></term>
+         <listitem>
+           <para>Оператор неравенства, возвращает <constant>true</constant>, если <varname>a</varname> не 
равно <varname>b</varname>, в противном случае возвращает <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;&gt;b</userinput></term>
+         <listitem>
+           <para>Альтернативный оператор неравенства, возвращает <constant>true</constant>, если 
<varname>a</varname> не равно <varname>b</varname>, иначе возвращает <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>
+             Less than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt;= b &lt;= c</userinput> (can
+            also be combined with the less than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>
+             Greater than or equal operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than or equal to 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt;= b &gt;= c</userinput>
+            (and they can also be combined with the greater than operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a&lt;b</userinput></term>
+         <listitem>
+           <para>
+             Less than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            less than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &lt; b &lt; c</userinput>
+            (they can also be combined with the less than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;b</userinput></term>
+         <listitem>
+           <para>
+             Greater than operator,
+            returns <constant>true</constant> if <varname>a</varname> is
+            greater than 
+            <varname>b</varname> else returns <constant>false</constant>.
+            These can be chained as in <userinput>a &gt; b &gt; c</userinput>
+            (they can also be combined with the greater than or equal to operator).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=&gt;b</userinput></term>
+         <listitem>
+           <para>Оператор сравнения. Если <varname>a</varname> равно <varname>b</varname>, возвращает 0; 
если <varname>a</varname> меньше <varname>b</varname>, возвращает -1; если <varname>a</varname> больше 
<varname>b</varname>, возвращает 1.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a and b</userinput></term>
+         <listitem>
+           <para>
+                  Logical and.  Returns true if both
+                  <varname>a</varname> and <varname>b</varname> are true,
+                  else returns false.  If given numbers, nonzero numbers
+                  are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a or b</userinput></term>
+         <listitem>
+           <para>
+             Logical or.
+            Returns true if either
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a xor b</userinput></term>
+         <listitem>
+           <para>
+             Logical xor.
+            Returns true if exactly one of
+            <varname>a</varname> or <varname>b</varname> is true,
+            else returns false.  If given numbers, nonzero numbers
+            are treated as true.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>not a</userinput></term>
+         <listitem>
+           <para>
+                  Logical not.  Returns the logical negation of <varname>a</varname>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>-a</userinput></term>
+         <listitem>
+           <para>
+             Negation operator.  Returns the negative of a number or a matrix (works element-wise on a 
matrix).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>&amp;a</userinput></term>
+         <listitem>
+           <para>
+             Variable referencing (to pass a reference to a variable).
+            See <xref linkend="genius-gel-references"/>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>*a</userinput></term>
+         <listitem>
+           <para>
+             Variable dereferencing (to access a referenced variable).
+            See <xref linkend="genius-gel-references"/>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a'</userinput></term>
+         <listitem>
+           <para>
+                  Matrix conjugate transpose.  That is, rows and columns get swapped and we take complex 
conjugate of all entries.  That is
+                  if the i,j element of <varname>a</varname> is x+iy, then the j,i element of 
<userinput>a'</userinput> is x-iy.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.'</userinput></term>
+         <listitem>
+           <para>
+             Matrix transpose, does not conjugate the entries.  That is, 
+            the i,j element of <varname>a</varname>  becomes the j,i element of <userinput>a.'</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,c)</userinput></term>
+         <listitem>
+           <para>
+            Get element of a matrix in row <varname>b</varname> and column
+            <varname>c</varname>.   If <varname>b</varname>,
+            <varname>c</varname> are vectors, then this gets the corresponding
+            rows, columns or submatrices.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,)</userinput></term>
+         <listitem>
+           <para>
+             Get row of a matrix (or multiple rows if <varname>b</varname> is a vector).
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,:)</userinput></term>
+         <listitem>
+           <para>То же, что и выше.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(,c)</userinput></term>
+         <listitem>
+           <para>Возвращает столбец матрицы (или столбцы, если <varname>c</varname> является 
вектором).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(:,c)</userinput></term>
+         <listitem>
+           <para>То же, что и выше.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b)</userinput></term>
+         <listitem>
+           <para>
+             Get an element from a matrix treating it as a vector.  This will
+            traverse the matrix row-wise.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b</userinput></term>
+         <listitem>
+           <para>
+             Build a vector from <varname>a</varname> to <varname>b</varname> (or specify a row, column 
region for the <literal>@</literal> operator).  For example to get rows 2 to 4 of matrix <varname>A</varname> 
we could do
+            <programlisting>A@(2:4,)
+            </programlisting>
+            as <userinput>2:4</userinput> will return a vector
+            <userinput>[2,3,4]</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b:c</userinput></term>
+         <listitem>
+           <para>
+            Build a vector from <varname>a</varname> to <varname>c</varname>
+            with <varname>b</varname> as a step.  That is for example
+            <programlisting>genius&gt; 1:2:9
+=
+`[1, 3, 5, 7, 9]
+</programlisting>
+           </para>
+          <para>
+            When the numbers involved are floating point numbers, for example
+            <userinput>1.0:0.4:3.0</userinput>, the output is what is expected
+            even though adding 0.4 to 1.0 five times is actually just slightly
+            more than 3.0 due to the way that floating point numbers are
+            stored in base 2 (there is no 0.4, the actual number stored is
+            just ever so slightly bigger).  The way this is handled is the
+            same as in the for, sum, and prod loops.  If the end is within
+            <userinput>2^-20</userinput> times the step size of the endpoint,
+            the endpoint is used and we assume there were roundoff errors.
+            This is not perfect, but it handles the majority of the cases.
+            This check is done only from version 1.0.18 onwards, so execution
+            of your code may differ on older versions.  If you want to avoid
+            dealing with this issue, use actual rational numbers, possibly
+            using the <function>float</function> if you wish to get floating
+            point numbers in the end.  For example
+            <userinput>1:2/5:3</userinput> does the right thing and
+            <userinput>float(1:2/5:3)</userinput> even gives you floating
+            point numbers and is ever so slightly more precise than
+            <userinput>1.0:0.4:3.0</userinput>.
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>(a)i</userinput></term>
+         <listitem>
+           <para>
+            Make <varname>a</varname> into an imaginary number (multiply <varname>a</varname> by the
+            imaginary).  Normally the imaginary number <varname>i</varname> is
+            written as <userinput>1i</userinput>.  So the above is equal to
+            <programlisting>(a)*1i
+            </programlisting>
+           </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>`a</userinput></term>
+         <listitem>
+           <para>
+             Quote an identifier so that it doesn't get evaluated.  Or
+            quote a matrix so that it doesn't get expanded.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a swapwith b</userinput></term>
+         <listitem>
+           <para>Меняет местами значение <varname>a</varname> со значением <varname>b</varname>. В настоящее 
время не работает с диапазонами элементов матрицы. Возвращает <constant>null</constant>. Доступен, начиная с 
версии 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a</userinput></term>
+         <listitem>
+           <para>Инкремент переменной <varname>a</varname> на 1. Если <varname>a</varname> — матрица, то 
инкрементирует каждый элемент. Это эквивалентно   <userinput>a=a+1</userinput>, но немного быстрее. 
Возвращает <constant>null</constant>. Доступен с версии 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a by b</userinput></term>
+         <listitem>
+           <para>Инкремент переменной <varname>a</varname> на величину <varname>b</varname>. Если 
<varname>a</varname> — матрица, то инкрементирует каждый элемент. Это эквивалентно 
<userinput>a=a+b</userinput>, но немного быстрее. Возвращает <constant>null</constant>. Доступен с версии 
1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+
+<note>
+<para>Оператор @() делает использование оператора : наиболее полезным. С его помощью можно указывать области 
матрицы. Таким образом, a@(2:4,6) — это строки 2,3,4 столбца 6. Или a@(,1:2) возвращает два первых столбца 
матрицы. Можно также присваивать значения оператору @(), если правое значение — это матрица, совпадающая по 
размеру с данной областью, или если это любой другой тип значений.</para>
+</note>
+
+<note>
+<para>
+The comparison operators (except for the &lt;=&gt; operator, which behaves normally), are not strictly 
binary operators, they can in fact be grouped in the normal mathematical way, e.g.: (1&lt;x&lt;=y&lt;5) is a 
legal boolean expression and means just what it should, that is (1&lt;x and x≤y and y&lt;5)
+</para>
+</note>
+
+<note>
+<para>
+The unitary minus operates in a different fashion depending on where it
+appears.  If it appears before a number it binds very closely, if it appears in
+front of an expression it binds less than the power and factorial operators.
+So for example <userinput>-1^k</userinput> is really <userinput>(-1)^k</userinput>,
+but <userinput>-foo(1)^k</userinput> is really <userinput>-(foo(1)^k)</userinput>.  So
+be careful how you use it and if in doubt, add parentheses.
+</para>
+</note>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL Programming ========================== -->
+  <chapter id="genius-gel-programming">
+    <title>Программирование в GEL</title>
+
+    <sect1 id="genius-gel-conditionals">
+      <title>Условные операторы</title>
+      <para>
+Syntax:
+<programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
+]]></programlisting>
+If <literal>else</literal> is omitted, then if the <literal>expression1</literal> yields 
<constant>false</constant> or 0, <literal>NULL</literal> is returned.
+      </para>
+      <para>
+Examples:
+<programlisting><![CDATA[if(a==5)then(a=a-1)
+if b<a then b=a
+if c>0 then c=c-1 else c=0
+a = ( if b>0 then b else 1 )
+]]></programlisting>
+Note that <literal>=</literal> will be translated to <literal>==</literal> if used inside the expression for 
<literal>if</literal>, so
+<programlisting>if a=5 then a=a-1
+</programlisting>
+will be interpreted as:
+<programlisting>if a==5 then a:=a-1
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-loops">
+      <title>Циклы</title>
+
+      <sect2 id="genius-gel-loops-while">
+        <title>Циклы While</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[while <expression1> do <expression2>
+until <expression1> do <expression2>
+do <expression2> while <expression1>
+do <expression2> until <expression1>]]></programlisting>
+
+       These are similar to other languages.  However, as in GEL it is simply an expression that must have 
some return value, these
+       constructs will simply return the result of the last iteration or <literal>NULL</literal> if no 
iteration was done.  In the boolean expression, <literal>=</literal> is translated into <literal>==</literal> 
just as for the <literal>if</literal> statement.
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-for">
+        <title>Циклы For</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
+for <identifier> = <from> to <to> by <increment> do <body>]]></programlisting>
+
+Loop with identifier being set to all values from <literal>&lt;from&gt;</literal> to 
<literal>&lt;to&gt;</literal>, optionally using an increment other than 1. These are faster, nicer and more 
compact than the normal loops such as above, but less flexible. The identifier must be an identifier and 
can't be a dereference. The value of identifier is the last value of identifier, or 
<literal>&lt;from&gt;</literal> if body was never evaluated. The variable is guaranteed to be initialized 
after a loop, so you can safely use it.  Also the <literal>&lt;from&gt;</literal>, 
<literal>&lt;to&gt;</literal> and <literal>&lt;increment&gt;</literal> must be non complex values. The 
<literal>&lt;to&gt;</literal> is not guaranteed to be hit, but will never be overshot, for example the 
following prints out odd numbers from 1 to 19:
+<programlisting>for i = 1 to 20 by 2 do print(i)
+</programlisting>
+        </para>
+        <para>
+               When one of the values is a floating point number, then the
+               final check is done to within 2^-20 of the step size.  That is,
+               even if we overshoot by 2^-20 times the "by" above, we still execute the last
+               iteration.  This way 
+<programlisting>for x = 0 to 1 by 0.1 do print(x)
+</programlisting>
+does the expected even though adding 0.1 ten times becomes just slightly more than 1.0 due to the way that 
floating point numbers
+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
+the majority of the cases.  If you want to avoid dealing with this issue, use actual rational numbers for 
example:
+<programlisting>for x = 0 to 1 by 1/10 do print(x)
+</programlisting>
+               This check is done only from version 1.0.16 onwards, so execution of your code may differ on 
older versions.
+       </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-foreach">
+        <title>Циклы Foreach</title>
+        <para>
+Syntax:
+<programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting>
+
+                       For each element in the matrix, going row by row from left to right we execute the 
body
+                      with the identifier set to the current element. To
+print numbers 1,2,3 and 4 in this order you could do:
+<programlisting>for n in [1,2:3,4] do print(n)
+</programlisting>
+If you wish to run through the rows and columns of a matrix, you can use
+the RowsOf and ColumnsOf functions, which return a vector of the rows or
+columns of the matrix.  So,
+<programlisting>for n in RowsOf ([1,2:3,4]) do print(n)
+</programlisting>
+will print out [1,2] and then [3,4].
+        </para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-break-continue">
+        <title>Break и Continue</title>
+        <para>В циклах также можно использовать команды <literal>break</literal> и 
<literal>continue</literal>. Команда <literal>continue</literal> перезапускает текущий цикл с его следующей 
итерации, а команда <literal>break</literal> позволяет выйти из текущего цикла. 
<programlisting><![CDATA[while(<expression1>) do (
+  if(<expression2>) break
+  else if(<expression3>) continue;
+  <expression4>
+)
+]]></programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-sums-products">
+      <title>Суммы и произведения</title>
+      <para>Синтаксис: <programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
+sum <identifier> = <from> to <to> by <increment> do <body>
+sum <identifier> in <matrix> do <body>
+prod <identifier> = <from> to <to> do <body>
+prod <identifier> = <from> to <to> by <increment> do <body>
+prod <identifier> in <matrix> do <body>]]></programlisting> Если заменить <literal>for</literal> на 
<literal>sum</literal> или <literal>prod</literal>, то вместо цикла <literal>for</literal> получатся циклы 
вычисления суммы или произведения. Вместо того, чтобы возвращать последнее значение, эти команды возвращают 
сумму или произведение значений, соответственно.</para>
+      <para>Если тело цикла не вычислялось (например, <userinput>sum i=1 to 0 do ...</userinput>), то 
<literal>sum</literal> возвращает 0, а <literal>prod</literal> возвращает 1.</para>
+      <para>
+             For floating point numbers the same roundoff error protection is done as in the for loop.
+            See <xref linkend="genius-gel-loops-for"/>.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-comparison-operators">
+      <title>Операторы сравнения</title>
+      <para>В GEL поддерживаются следующие стандартные операторы сравнения, имеющие очевидное значение: 
<literal>==</literal>, <literal>&gt;=</literal>, <literal>&lt;=</literal>, <literal>!=</literal>, 
<literal>&lt;&gt;</literal>, <literal>&lt;</literal>, <literal>&gt;</literal>. Они возвращают 
<constant>true</constant> или <constant>false</constant>. Операторы <literal>!=</literal> и 
<literal>&lt;&gt;</literal> эквивалентны и означают «не равно». GEL также поддерживает оператор 
<literal>&lt;=&gt;</literal>, который возвращает -1, если левая сторона меньше, 0 при равенстве обеих сторон 
и 1, если левая сторона больше.</para>
+
+      <para>
+       Normally <literal>=</literal> is translated to <literal>==</literal> if
+       it happens to be somewhere where GEL is expecting a condition such as
+       in the if condition.  For example
+       <programlisting>if a=b then c
+if a==b then c
+</programlisting>
+       are the same thing in GEL.  However you should really use
+       <literal>==</literal> or <literal>:=</literal> when you want to compare
+       or assign respectively if you want your code to be easy to read and
+       to avoid mistakes.
+      </para>
+
+      <para>
+       All the comparison operators (except for the
+       <literal>&lt;=&gt;</literal> operator, which
+       behaves normally), are not strictly binary operators, they can in fact
+       be grouped in the normal mathematical way, e.g.:
+       (<literal>1&lt;x&lt;=y&lt;5</literal>) is
+       a legal boolean expression and means just what it should, that is
+       (1&lt;x and x≤y and y&lt;5)
+      </para>
+      <para>
+       To build up logical expressions use the words <literal>not</literal>,
+       <literal>and</literal>, <literal>or</literal>, <literal>xor</literal>.
+       The operators <literal>or</literal> and <literal>and</literal> are
+special beasts as they evaluate their arguments one by one, so the usual trick
+for conditional evaluation works here as well. For example, <literal>1 or a=1</literal> will not set
+<literal>a=1</literal> since the first argument was true.
+      </para>
+    </sect1>
+
+      <sect1 id="genius-gel-variables-global">
+        <title>Глобальные переменные и область видимости переменных</title>
+       <para>
+         GEL is a
+         <ulink url="https://en.wikipedia.org/wiki/Scope_%28programming%29";>
+         dynamically scoped language</ulink>.  We will explain what this
+         means below.  That is, normal variables and functions are dynamically
+         scoped.  The exception are 
+         <link linkend="genius-gel-parameters">parameter variables</link>,
+         which are always global.
+       </para>
+       <para>
+         Like most programming languages, GEL has different types
+         of variables.  Normally when a variable is defined in a function,
+         it is visible from that function and from all functions that are
+         called (all higher contexts).  For example, suppose a function
+         <function>f</function> defines a variable <varname>a</varname>
+         and then calls function <function>g</function>.  Then
+         function <function>g</function> can reference
+         <varname>a</varname>.  But once <function>f</function> returns,
+         the variable <varname>a</varname> goes out of scope.
+         For example, the following code will print out 5.
+         The function <function>g</function> cannot be called on the
+         top level (outside <function>f</function> as <varname>a</varname>
+         will not be defined).
+<programlisting>function f() = (a:=5; g());
+function g() = print(a);
+f();
+</programlisting>
+        </para>
+        <para>
+         If you define a variable inside a function it will override
+         any variables defined in calling functions.  For example,
+         we modify the above code and write:
+<programlisting>function f() = (a:=5; g());
+function g() = print(a);
+a:=10;
+f();
+</programlisting>
+         This code will still print out 5.  But if you call
+         <function>g</function> outside of <function>f</function> then
+         you will get a printout of 10.  Note that
+         setting <varname>a</varname>
+         to 5 inside <function>f</function> does not change
+         the value of <varname>a</varname> at the top (global) level,
+         so if you now check the value of <varname>a</varname> it will
+         still be 10.
+        </para>
+       <para>
+         Function arguments are exactly like variables defined inside
+         the function, except that they are initialized with the value
+         that was passed to the function.  Other than this point, they are
+         treated just like all other variables defined inside the
+         function.
+       </para>
+       <para>
+         Functions are treated exactly like variables.  Hence you can
+         locally redefine functions.  Normally (on the top level) you
+         cannot redefine protected variables and functions.  But locally
+         you can do this.  Consider the following session:
+<screen><prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
+= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
+<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
+= 1e20
+</screen>
+       </para>
+       <para>
+         Functions and variables defined at the top level are
+         considered global.  They are visible from anywhere.  As we
+         said the following function <function>f</function>
+         will not change the value of <varname>a</varname> to 5.
+<programlisting>a=6;
+function f() = (a:=5);
+f();
+</programlisting>
+         Sometimes, however, it is necessary to set
+a global variable from inside a function.  When this behavior is needed,
+use the
+<link linkend="gel-function-set"><function>set</function></link> function. Passing a string or a quoted 
identifier to
+this function sets the variable globally (on the top level).
+For example, to set
+<varname>a</varname> to the value 3 you could call:
+<programlisting>set(`a,3)
+</programlisting>
+or:
+<programlisting>set("a",3)
+</programlisting>
+        </para>
+        <para>
+         The <function>set</function> function always sets the toplevel
+         global.  There is no way to set a local variable in some function
+         from a subroutine.  If this is required, must use passing by
+         reference.
+        </para>
+       <para>
+               See also the
+               <link linkend="gel-function-SetElement"><function>SetElement</function></link> and
+               <link linkend="gel-function-SetVElement"><function>SetVElement</function></link> functions.
+       </para>
+       <para>
+         So to recap in a more technical language:  Genius operates with
+         different numbered contexts.  The top level is the context 0
+         (zero).  Whenever a function is entered, the context is raised,
+         and when the function returns the context is lowered.  A function
+         or a variable is always visible from all higher numbered contexts.
+         When a variable was defined in a lower numbered context, then
+         setting this variable has the effect of creating a new local
+         variable in the current context number and this variable
+         will now be visible from all higher numbered contexts.
+       </para>
+       <para>
+         There are also true local variables that are not seen from
+         anywhere but the current context.  Also when returning functions
+         by value it may reference variables not visible from higher context
+         and this may be a problem.  See the sections
+         <link linkend="genius-gel-true-local-variables">True
+         Local Variables</link> and
+         <link linkend="genius-gel-returning-functions">Returning
+         Functions</link>.
+       </para>
+      </sect1>
+
+      <sect1 id="genius-gel-parameters">
+        <title>Parameter variables</title>
+       <para>
+         As we said before, there exist special variables called parameters
+         that exist in all scopes.  To declare a parameter called
+         <varname>foo</varname> with the initial value 1, we write
+<programlisting><![CDATA[parameter foo = 1
+]]></programlisting>
+         From then on, <varname>foo</varname> is a strictly global variable.
+         Setting <varname>foo</varname> inside any function will modify the
+         variable in all contexts, that is, functions do not have a private
+         copy of parameters.
+        </para>
+        <para>
+         When you undefine a parameter using the
+         <link linkend="gel-function-undefine">
+         <function>undefine</function></link> function, it stops being
+         a parameter.
+        </para>
+        <para>
+         Some parameters are built-in and modify the behavior of genius.
+        </para>
+      </sect1>
+
+    <sect1 id="genius-gel-returning">
+      <title>Returning</title>
+       <para>
+         Normally a function is one or several expressions separated by a
+semicolon, and the value of the last expression is returned.  This is fine for
+simple functions, but
+sometimes you do not want a function to return the last thing calculated. You may, for example, want to 
return from a middle of a function. In this case, you can use the <literal>return</literal> keyword. 
<literal>return</literal> takes one argument, which is the value to be returned.
+      </para>
+      <para>Пример: <programlisting><![CDATA[function f(x) = (
+  y=1;
+  while true do (
+    if x>50 then return y;
+    y=y+1;
+    x=x+1
+  )
+)
+]]></programlisting></para>
+    </sect1>
+
+
+    <sect1 id="genius-gel-references">
+      <title>References</title>
+      <para>
+       It may be necessary for some functions to return more than one value.
+       This may be accomplished by returning a vector of values, but many
+       times it is convenient to use passing a reference to a variable.
+       You pass a reference to a variable to a function, and the function
+       will set the variable for you using a dereference.  You do not have
+       to use references only for this purpose, but this is their main use.
+      </para>
+      <para>
+       When using functions that return values through references
+       in the argument list, just pass the variable name with an ampersand.
+       For example the following code will compute an eigenvalue of a matrix
+       <varname>A</varname> with initial eigenvector guess
+       <varname>x</varname>, and store the computed eigenvector
+       into the variable named <varname>v</varname>:
+<programlisting><![CDATA[RayleighQuotientIteration (A,x,0.001,100,&v)
+]]></programlisting>
+      </para>
+      <para>
+The details of how references work and the syntax is similar to the C language.
+The operator
+<literal>&amp;</literal> references a variable
+and <literal>*</literal> dereferences a variable. Both can only be applied to an identifier,
+so <literal>**a</literal> is not a legal expression in GEL.
+      </para>
+      <para>
+References are best explained by an example:
+<programlisting><![CDATA[a=1;
+b=&a;
+*b=2;
+]]></programlisting>
+now <varname>a</varname> contains 2.  You can also reference functions:
+<programlisting><![CDATA[function f(x) = x+1;
+t=&f;
+*t(3)
+]]></programlisting>
+gives us 4.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-lvalues">
+      <title>Lvalues</title>
+      <para>
+       An lvalue is the left hand side of an assignment. In other words, an
+       lvalue is what you assign something to.  Valid lvalues are:
+<variablelist>
+  <varlistentry>
+    <term><userinput>a</userinput></term>
+    <listitem>
+      <para>
+       Identifier.  Here we would be setting the variable of name
+       <varname>a</varname>.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>*a</userinput></term>
+    <listitem>
+      <para>
+       Dereference of an identifier.  This will set whatever variable
+       <varname>a</varname> points to.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>a@(&lt;region&gt;)</userinput></term>
+    <listitem>
+      <para>
+       A region of a matrix.  Here the region is specified normally as with
+       the regular @() operator, and can be a single entry, or an entire
+       region of the matrix.
+      </para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+      </para>
+      <para>
+Examples:
+<programlisting>a:=4
+*tmp := 89
+a@(1,1) := 5
+a@(4:8,3) := [1,2,3,4,5]'
+</programlisting>
+Note that both <literal>:=</literal> and <literal>=</literal> can be used
+interchangeably.  Except if the assignment appears in a condition.
+It is thus always safer to just use
+<literal>:=</literal> when you mean assignment, and <literal>==</literal>
+when you mean comparison.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <chapter id="genius-gel-programming-advanced">
+    <title>Advanced Programming with GEL</title>
+
+    <sect1 id="genius-gel-error-handling">
+      <title>Обработка ошибок</title>
+      <para>
+If you detect an error in your function, you can bail out of it. For normal
+errors, such as wrong types of arguments, you can fail to compute the function
+by adding the statement <literal>bailout</literal>. If something went
+really wrong and you want to completely kill the current computation, you can
+use <literal>exception</literal>.
+      </para>
+      <para>
+       For example if you want to check for arguments in your function.  You
+could use the following code.
+<programlisting>function f(M) = (
+  if not IsMatrix (M) then (
+    error ("M not a matrix!");
+    bailout
+  );
+  ...
+)
+</programlisting>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-toplevel-syntax">
+      <title>Toplevel Syntax</title>
+      <para>
+       The syntax is slightly different if you enter statements on
+       the top level versus when they are inside parentheses or
+       inside functions.  On the top level, enter acts the same as if
+       you press return on the command line.  Therefore think of programs
+       as just a sequence of lines as if they were entered on the command line.
+       In particular, you do not need to enter the separator at the end of the
+       line (unless it is of course part of several statements inside
+       parentheses).  When a statement does not end with a separator on the
+       top level, the result is printed after being executed.
+      </para>
+      <para>
+       For example,
+       <programlisting>function f(x)=x^2
+f(3)
+</programlisting>
+       will print first the result of setting a function (a representation of
+       the function, in this case <computeroutput>(`(x)=(x^2))</computeroutput>)
+       and then the expected 9.  To avoid this, enter a separator
+       after the function definition.
+       <programlisting>function f(x)=x^2;
+f(3)
+</programlisting>
+       If you need to put a separator into your function then you have to surround with
+       parenthesis.  For example:
+<programlisting>function f(x)=(
+  y=1;
+  for j=1 to x do
+    y = y+j;
+  y^2
+);
+</programlisting>
+      </para>
+      <para>
+       The following code will produce an error when entered on the top
+       level of a program, while it will work just fine in a function.
+<programlisting>if Something() then
+  DoSomething()
+else
+  DoSomethingElse()
+</programlisting>
+      </para>
+      <para>
+       The problem is that after <application>Genius Mathematics Tool</application> sees the end of line 
after the
+       second line, it will decide that we have whole statement and
+       it will execute it.  After the execution is done, <application>Genius Mathematics Tool</application> 
will
+       go on to the next
+       line, it will see <literal>else</literal>, and it will produce
+       a parsing error.  To fix this, use parentheses.  <application>Genius Mathematics Tool</application> 
will not
+       be satisfied until it has found that all parentheses are closed.
+<programlisting>if Something() then (
+  DoSomething()
+) else (
+  DoSomethingElse()
+)
+</programlisting>
+      </para>
+    </sect1>
+
+     <sect1 id="genius-gel-returning-functions">
+       <title>Returning Functions</title>
+       <para>
+         It is possible to return functions as value.  This way you can
+         build functions that construct special purpose functions according
+         to some parameters.  The tricky bit is what variables does the
+         function see.  The way this works in GEL is that when a function
+         returns another function, all identifiers referenced in the
+         function body that went out of scope
+         are prepended a private dictionary of the returned
+         function.  So the function will see all variables that were in
+         scope
+         when it was defined.  For example, we define a function that
+         returns a function that adds 5 to its argument.
+<programlisting>function f() = (
+  k = 5;
+  `(x) = (x+k)
+)
+</programlisting>
+         Notice that the function adds <varname>k</varname> to
+         <varname>x</varname>.  You could use this as follows.
+<programlisting>g = f();
+g(5)
+</programlisting>
+         And <userinput>g(5)</userinput> should return 10.
+        </para>
+       <para>
+         One thing to note is that the value of <varname>k</varname>
+         that is used is the one that's in effect when the
+         <function>f</function> returns.  For example:
+<programlisting>function f() = (
+  k := 5;
+  function r(x) = (x+k);
+  k := 10;
+  r
+)
+</programlisting>
+         will return a function that adds 10 to its argument rather than
+         5.  This is because the extra dictionary is created only when
+         the context
+         in which the function was defined ends, which is when the function
+         <function>f</function> returns.  This is consistent with how you
+         would expect the function <function>r</function> to work inside
+         the function <function>f</function> according to the rules of
+         scope of variables in GEL.  Only those variables are added to the
+         extra dictionary that are in the context that just ended and
+         no longer exists.  Variables
+         used in the function that are in still valid contexts will work
+         as usual, using the current value of the variable.
+         The only difference is with global variables and functions.
+         All identifiers that referenced global variables at time of
+         the function definition are not added to the private dictionary.
+         This is to avoid much unnecessary work when returning functions
+         and would rarely be a problem.  For example, suppose that you
+         delete the "k=5" from the function <function>f</function>,
+         and at the top level you define <varname>k</varname> to be
+         say 5.  Then when you run <function>f</function>, the function
+         <function>r</function> will not put <varname>k</varname> into
+         the private dictionary because it was global (toplevel)
+         at the time of definition of <function>r</function>.
+       </para>
+       <para>
+         Sometimes it is better to have more control over how variables
+         are copied into the private dictionary.  Since version 1.0.7,
+         you can specify which
+         variables are copied into the private dictionary by putting
+         extra square brackets after the arguments with the list of
+         variables to be copied separated by commas.
+         If you do this, then variables are
+         copied into the private dictionary at time of the function
+         definition, and the private dictionary is not touched afterwards.
+         For example
+<programlisting>function f() = (
+  k := 5;
+  function r(x) [k] = (x+k);
+  k := 10;
+  r
+)
+</programlisting>
+         will return a function that when called will add 5 to its
+         argument.  The local copy of <varname>k</varname> was created
+         when the function was defined.
+       </para>
+       <para>
+         When you want the function to not have any private dictionary
+         then put empty square brackets after the argument list.  Then
+         no private dictionary will be created at all.  Doing this is
+         good to increase efficiency when a private dictionary is not
+         needed or when you want the function to lookup all variables
+         as it sees them when called.  For example suppose you want
+         the function returned from <function>f</function> to see
+         the value of <varname>k</varname> from the toplevel despite
+         there being a local variable of the same name during definition.
+         So the code
+<programlisting>function f() = (
+  k := 5;
+  function r(x) [] = (x+k);
+  r
+);
+k := 10;
+g = f();
+g(10)
+</programlisting>
+         will return 20 and not 15, which would happen if
+         <varname>k</varname> with a value of 5 was added to the private
+         dictionary.
+       </para>
+    </sect1>
+
+    <sect1 id="genius-gel-true-local-variables">
+      <title>True Local Variables</title>
+      <para>
+       When passing functions into other functions, the normal scoping of
+       variables might be undesired.  For example:
+<programlisting>k := 10;
+function r(x) = (x+k);
+function f(g,x) = (
+  k := 5;
+  g(x)
+);
+f(r,1)
+</programlisting>
+       you probably want the function <function>r</function>
+       when passed as <function>g</function> into <function>f</function>
+       to see <varname>k</varname> as 10 rather than 5, so that
+       the code returns 11 and not 6.  However, as written, the function
+       when executed will see the <varname>k</varname> that is
+       equal to 5.  There are two ways to solve this.  One would be
+       to have <function>r</function> get <varname>k</varname> in a
+       private dictionary using the square bracket notation section
+       <link linkend="genius-gel-returning-functions">Returning
+       Functions</link>.
+      </para>
+      <para>
+       But there is another solution.  Since version 1.0.7 there are
+       true local variables.  These are variables that are visible only
+       from the current context and not from any called functions.
+       We could define <varname>k</varname> as a local variable in the
+       function <function>f</function>.  To do this add a
+       <command>local</command> statement as the first statement in the
+       function (it must always be the first statement in the function).
+       You can also make any arguments be local variables as well.
+       That is,
+<programlisting>function f(g,x) = (
+  local g,x,k;
+  k := 5;
+  g(x)
+);
+</programlisting>
+       Then the code will work as expected and prints out 11.
+       Note that the <command>local</command> statement initializes
+       all the referenced variables (except for function arguments) to
+       a <constant>null</constant>.
+      </para>
+      <para>
+       If all variables are to be created as locals you can just pass an
+       asterisk instead of a list of variables.  In this case the variables
+       will not be initialized until they are actually set of course.
+       So the following definition of <function>f</function>
+       will also work:
+<programlisting>function f(g,x) = (
+  local *;
+  k := 5;
+  g(x)
+);
+</programlisting>
+      </para>
+      <para>
+       It is good practice that all functions that take other functions
+       as arguments use local variables.  This way the passed function 
+       does not see implementation details and get confused.
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-startup-procedure">
+      <title>GEL Startup Procedure</title>
+      <para>
+First the program looks for the installed library file (the compiled version <filename>lib.cgel</filename>) 
in the installed directory, then it looks into the current directory, and then it tries to load an uncompiled 
file called
+<filename>~/.geniusinit</filename>.
+      </para>
+      <para>
+If you ever change the library in its installed place, you’ll have to
+first compile it with <command>genius --compile loader.gel &gt; lib.cgel</command>
+      </para>
+    </sect1>
+
+    <sect1 id="genius-gel-loading-programs">
+      <title>Загрузка программ</title>
+      <para>
+Sometimes you have a larger program you wrote into a file and want to read that file into 
<application>Genius Mathematics Tool</application>. In these situations, you have two options. You can keep 
the functions you use most inside the <filename>~/.geniusinit</filename> file. Or if you want to load up a 
file in a middle of a session (or from within another file), you can type <command>load &lt;list of 
filenames&gt;</command> at the prompt. This has to be done on the top level and not inside any function or 
whatnot, and it cannot be part of any expression. It also has a slightly different syntax than the rest of 
genius, more similar to a shell. You can enter the file in quotes. If you use the '' quotes, you will get 
exactly the string that you typed, if you use the "" quotes, special characters will be unescaped as they are 
for strings. Example:
+<programlisting>load program1.gel program2.gel
+load "Причудливое имя файла с ПРОБЕЛАМИ.gel"
+</programlisting>
+There are also <command>cd</command>, <command>pwd</command> and <command>ls</command> commands built in. 
<command>cd</command> will take one argument, <command>ls</command> will take an argument that is like the 
glob in the UNIX shell (i.e., you can use wildcards). <command>pwd</command> takes no arguments. For example:
+<programlisting>cd каталог_с_программами_gel
+ls *.gel
+</programlisting>
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Matrices ================================= -->
+  <chapter id="genius-gel-matrices">
+    <title>Матрицы в GEL</title>
+
+    <para>
+      Genius has support for vectors and matrices and possesses a sizable library of
+      matrix manipulation and linear algebra functions.
+    </para>
+
+    <sect1 id="genius-gel-matrix-support">
+      <title>Ввод матриц</title>
+      <para>
+To enter matrices, you can use one of the following two syntaxes. You can either enter
+the matrix on one line, separating values by commas and rows by semicolons.  Or you
+can enter each row on one line, separating
+values by commas.
+You can also just combine the two methods.
+So to enter a 3x3 matrix
+of numbers 1-9 you could do
+<programlisting>[1,2,3;4,5,6;7,8,9]
+</programlisting>
+or
+<programlisting>[1, 2, 3
+ 4, 5, 6
+ 7, 8, 9]
+</programlisting>
+Do not use both ';' and return at once on the same line though.
+      </para>
+
+      <para>
+You can also use the matrix expansion functionality to enter matrices.
+For example you can do:
+<programlisting>a = [ 1, 2, 3
+      4, 5, 6
+      7, 8, 9]
+b = [ a,  10
+      11, 12]
+</programlisting>
+and you should get
+<programlisting>[1,   2,  3, 10
+ 4,   5,  6, 10
+ 7,   8,  9, 10
+ 11, 11, 11, 12]
+</programlisting>
+similarly you can build matrices out of vectors and other stuff like that.
+      </para>
+
+      <para>
+Another thing is that non-specified spots are initialized to 0, so
+<programlisting>[1, 2, 3
+ 4, 5
+ 6]
+</programlisting>
+will end up being
+<programlisting>
+[1, 2, 3
+ 4, 5, 0
+ 6, 0, 0]
+</programlisting>
+      </para>
+
+      <para>
+       When matrices are evaluated, they are evaluated and traversed row-wise.  This is just
+       like the <literal>M@(j)</literal> operator, which traverses the matrix row-wise.
+      </para>
+
+      <note>
+        <para>
+Be careful about using returns for expressions inside the
+<literal>[ ]</literal> brackets, as they have a slightly different meaning
+there.  You will start a new row.
+        </para>
+      </note>
+
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-transpose">
+      <title>Conjugate Transpose and Transpose Operator</title>
+      <para>
+You can conjugate transpose a matrix by using the <literal>'</literal> operator.  That is
+the entry in the
+<varname>i</varname>th column and the <varname>j</varname>th row will be
+the complex conjugate of the entry in the
+<varname>j</varname>th column and the <varname>i</varname>th row of the original matrix.
+ For example:
+<programlisting>[1,2,3]*[4,5,6]'
+</programlisting>
+We transpose the second vector to make matrix multiplication possible.
+If you just want to transpose a matrix without conjugating it, you would
+use the <literal>.'</literal> operator.  For example:
+<programlisting>[1,2,3]*[4,5,6i].'
+</programlisting>
+      </para>
+       <para>
+         Note that normal transpose, that is the <literal>.'</literal> operator, is much faster
+         and will not create a new copy of the matrix in memory.  The conjugate transpose does
+         create a new copy unfortunately.
+         It is recommended to always use the <literal>.'</literal> operator when working with real
+         matrices and vectors.
+       </para>
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-linalg">
+      <title>Линейная алгебра</title>
+      <para>
+       Genius implements many useful linear algebra and matrix manipulation
+routines.  See the <link linkend="genius-gel-function-list-linear-algebra">Linear Algebra</link> and
+<link linkend="genius-gel-function-list-matrix">Matrix Manipulation</link>
+sections of the GEL function listing.
+      </para>
+      <para>
+       The linear algebra routines implemented in GEL do not currently come
+from a well tested numerical package, and thus should not be used for critical
+numerical computation.  On the other hand, Genius implements very well many
+linear algebra operations with rational and integer coefficients.  These are
+inherently exact and in fact will give you much better results than common
+double precision routines for linear algebra.
+      </para>
+      <para>
+       For example, it is pointless to compute the rank and nullspace of a
+floating point matrix since for all practical purposes, we need to consider the
+matrix as having some slight errors.  You are likely to get a different result
+than you expect.  The problem is that under a small perturbation every matrix
+is of full rank and invertible.  If the matrix however is of rational numbers,
+then the rank and nullspace are always exact.
+      </para>
+      <para>
+       In general when Genius computes the basis of a certain vectorspace
+       (for example with the <link linkend="gel-function-NullSpace"><function>NullSpace</function></link>) 
it will give the basis as
+a matrix, in which the columns are the vectors of the basis.  That is, when
+Genius talks of a linear subspace it means a matrix whose column space is
+the given linear subspace.
+      </para>
+      <para>
+       It should be noted that Genius can remember certain properties of a
+matrix.  For example, it will remember that a matrix is in row reduced form.
+If many calls are made to functions that internally use row reduced form of
+the matrix, we can just row reduce the matrix beforehand once.  Successive
+calls to <link linkend="gel-function-rref"><function>rref</function></link> will be very fast.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Polynomials ============================== -->
+  <chapter id="genius-gel-polynomials">
+    <title>Многочлены в GEL</title>
+
+    <para>В настоящее время Genius может работать с многочленами одной переменной, записанными в виде 
векторов, и выполнять некоторые основные операции с ними. В будущем планируется расширить их поддержку.</para>
+
+    <sect1 id="genius-gel-polynomials-using">
+      <title>Использование многочленов</title>
+      <para>
+Currently
+polynomials in one variable are just horizontal vectors with value only nodes.
+The power of the term is the position in the vector, with the first position
+being 0. So,
+<programlisting>[1,2,3]
+</programlisting>
+translates to a polynomial of
+<programlisting>1 + 2*x + 3*x^2
+</programlisting>
+      </para>
+      <para>
+You can add, subtract and multiply polynomials using the
+<link linkend="gel-function-AddPoly"><function>AddPoly</function></link>,
+<link linkend="gel-function-SubtractPoly"><function>SubtractPoly</function></link>, and
+<link linkend="gel-function-MultiplyPoly"><function>MultiplyPoly</function></link> functions respectively.
+You can print a polynomial using the
+<link linkend="gel-function-PolyToString"><function>PolyToString</function></link>
+function.
+For example,
+<programlisting>PolyToString([1,2,3],"y")
+</programlisting>
+gives
+<programlisting>3*y^2 + 2*y + 1
+</programlisting>
+You can also get a function representation of the polynomial so that you can
+evaluate it. This is done by using
+<link linkend="gel-function-PolyToFunction"><function>PolyToFunction</function></link>,
+which
+returns an anonymous function.
+<programlisting>f = PolyToFunction([0,1,1])
+f(2)
+</programlisting>
+      </para>
+      <para>
+       It is also possible to find roots of polynomials of degrees 1 through 4 by using the
+function
+<link linkend="gel-function-PolynomialRoots"><function>PolynomialRoots</function></link>,
+which calls the appropriate formula function.  Higher degree polynomials must be converted to
+functions and solved
+numerically using a function such as
+<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>, or
+<link linkend="gel-function-FindRootSecant"><function>FindRootSecant</function></link>.
+      </para>
+      <para>
+See <xref linkend="genius-gel-function-list-polynomials"/> in the function list
+for the rest of functions acting on polynomials.
+      </para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Set Theory ============================== -->
+  <chapter id="genius-gel-settheory">
+    <title>Теория множеств в GEL</title>
+
+    <para>
+      Genius has some basic set theoretic functionality built in.  Currently a set is
+      just a vector (or a matrix).  Every distinct object is treated as a different element.
+    </para>
+
+    <sect1 id="genius-gel-sets-using">
+      <title>Using Sets</title>
+      <para>
+       Just like vectors, objects
+      in sets can include numbers, strings, <constant>null</constant>, matrices and vectors.  It is
+      planned in the future to have a dedicated type for sets, rather than using vectors.
+      Note that floating point numbers are distinct from integers, even if they appear the same.
+      That is, Genius will treat <constant>0</constant> and <constant>0.0</constant>
+      as two distinct elements.  The <constant>null</constant> is treated as an empty set.
+    </para>
+      <para>
+       To build a set out of a vector, use the 
+       <link linkend="gel-function-MakeSet"><function>MakeSet</function></link> function.
+       Currently, it will just return a new vector where every element is unique.
+<screen><prompt>genius&gt; </prompt><userinput>MakeSet([1,2,2,3])</userinput>
+= [1, 2, 3]
+</screen>
+</para>
+
+       <para>
+       Similarly there are functions 
+       <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>, which
+       are rather self explanatory.  For example:
+<screen><prompt>genius&gt; </prompt><userinput>Union([1,2,3], [1,2,4])</userinput>
+= [1, 2, 4, 3]
+</screen>
+       Note that no order is guaranteed for the return values.  If you wish to sort the vector you
+should use the
+       <link linkend="gel-function-SortVector"><function>SortVector</function></link> function.
+       </para>
+
+       <para>
+         For testing membership, there are functions
+       <link linkend="gel-function-IsIn"><function>IsIn</function></link> and
+       <link linkend="gel-function-IsSubset"><function>IsSubset</function></link>,
+       which return a boolean value.  For example:
+<screen><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
+= true
+</screen>
+       The input <userinput>IsIn(x,X)</userinput> is of course equivalent to
+       <userinput>IsSubset([x],X)</userinput>.  Note that since the empty set is a subset
+       of every set, <userinput>IsSubset(null,X)</userinput> is always true.
+       </para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL function list ======================== -->
+  <chapter id="genius-gel-function-list">
+    <title>Список функций GEL</title>
+
+    <!--&gel-function-list;-->
+
+    <para>Для получения справки по определённой функции, наберите в консоли: <programlisting>help ИмяФункции
+</programlisting></para>
+
+    <sect1 id="genius-gel-function-list-commands">
+      <title>Команды</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-command-help"/>help</term>
+         <listitem>
+          <synopsis>help</synopsis>
+          <synopsis>help ИмяФункции</synopsis>
+          <para>Показывает справку (или справку по функции/команде).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-load"/>load</term>
+         <listitem>
+          <synopsis>load "file.gel"</synopsis>
+          <para>Load a file into the interpreter.  The file will execute
+as if it were typed onto the command line.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-cd"/>cd</term>
+         <listitem>
+          <synopsis>cd /каталог/имя</synopsis>
+          <para>Меняет рабочий каталог на <filename>/каталог/имя</filename>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-pwd"/>pwd</term>
+         <listitem>
+          <synopsis>pwd</synopsis>
+          <para>Выводит текущий рабочий каталог.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-ls"/>ls</term>
+         <listitem>
+          <synopsis>ls</synopsis>
+          <para>Показывает список файлов в текущем каталоге.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-plugin"/>plugin</term>
+         <listitem>
+          <synopsis>plugin plugin_name</synopsis>
+          <para>Load a plugin.  Plugin of that name must be installed on the system
+in the proper directory.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-basic">
+      <title>Основные</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
+         <listitem>
+          <synopsis>AskButtons (вопрос)</synopsis>
+          <synopsis>AskButtons (вопрос, кнопка1, ...)</synopsis>
+         <para>Задаёт вопрос и предлагает пользователю список кнопок (или меню вариантов в текстовом 
режиме). Возвращает отсчитываемый с 1 индекс нажатой кнопки. То есть 1, если нажата первая кнопка, 2 — если 
нажата вторая и т.д. Если пользователь закрыл окно (или просто нажал Enter в текстовом режиме), то возвращает 
<constant>null</constant>. Выполнение программы останавливается, пока пользователь не ответит.</para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AskString"/>AskString</term>
+         <listitem>
+          <synopsis>AskString (query)</synopsis>
+          <synopsis>AskString (query, default)</synopsis>
+          <para>Asks a question and lets the user enter a string, which
+it then returns.  If the user cancels or closes the window, then
+<constant>null</constant> is returned.  The execution of the program
+is blocked until the user responds.  If <varname>default</varname> is given, then it is pre-typed in for the 
user to just press enter on (version 1.0.6 onwards).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Compose"/>Compose</term>
+         <listitem>
+          <synopsis>Compose (f,g)</synopsis>
+          <para>Compose two functions and return a function that is the composition of 
<function>f</function> and <function>g</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
+         <listitem>
+          <synopsis>ComposePower (f,n,x)</synopsis>
+          <para>Compose and execute a function with itself <varname>n</varname> times, passing 
<varname>x</varname> as argument.  Returning <varname>x</varname> if
+<varname>n</varname> equals 0.
+               Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>function f(x) = x^2 ;</userinput>
+<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
+= 5764801
+<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
+= 5764801
+</screen>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
+         <listitem>
+          <synopsis>Evaluate (str)</synopsis>
+          <para>Parses and evaluates a string.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
+         <listitem>
+          <synopsis>GetCurrentModulo</synopsis>
+          <para>Get current modulo from the context outside the function.  That is, if outside of
+the function was executed in modulo (using <literal>mod</literal>) then this returns what
+this modulo was.  Normally the body of the function called is not executed in modular arithmetic,
+and this builtin function makes it possible to make GEL functions aware of modular arithmetic.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Identity"/>Identity</term>
+         <listitem>
+          <synopsis>Identity (x)</synopsis>
+         <para>Identity function, returns its argument.  It is equivalent to <userinput>function 
Identity(x)=x</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
+         <listitem>
+          <synopsis>IntegerFromBoolean (bval)</synopsis>
+         <para>Преобразует логическое значение в целое число (0 для <constant>false</constant> или 1 для 
<constant>true</constant>). <varname>bval</varname> может также быть числом, в этом случае ненулевое значение 
интерпретируется как <constant>true</constant>, а нулевое — как <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
+         <listitem>
+          <synopsis>IsBoolean (arg)</synopsis>
+          <para>Проверяет, является аргумент логическим значением (а не числом).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
+         <listitem>
+          <synopsis>IsDefined (id)</synopsis>
+          <para>Check if an id is defined.  You should pass a string or
+          and identifier.  If you pass a matrix, each entry will be
+          evaluated separately and the matrix should contain strings
+          or identifiers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
+         <listitem>
+          <synopsis>IsFunction (arg)</synopsis>
+          <para>Проверяет, является ли аргумент функцией.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
+         <listitem>
+          <synopsis>IsFunctionOrIdentifier (arg)</synopsis>
+          <para>Check if argument is a function or an identifier.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
+         <listitem>
+          <synopsis>IsFunctionRef (arg)</synopsis>
+          <para>Check if argument is a function reference.  This includes variable
+references.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
+         <listitem>
+          <synopsis>IsMatrix (arg)</synopsis>
+          <para>Проверяет, является ли аргумент матрицей. Хотя <constant>null</constant> иногда используют 
вместо пустой матрицы, функция <function>IsMatrix</function> не считает <constant>null</constant> 
матрицей.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNull"/>IsNull</term>
+         <listitem>
+          <synopsis>IsNull (arg)</synopsis>
+         <para>Проверяет, имеет ли аргумент значение <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsString"/>IsString</term>
+         <listitem>
+          <synopsis>IsString (arg)</synopsis>
+          <para>Проверяет, является ли аргумент текстовой строкой.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValue"/>IsValue</term>
+         <listitem>
+          <synopsis>IsValue (arg)</synopsis>
+          <para>Проверяет, является ли аргумент числом.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Parse"/>Parse</term>
+         <listitem>
+          <synopsis>Parse (str)</synopsis>
+          <para>Parses but does not evaluate a string.  Note that certain
+           pre-computation is done during the parsing stage.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
+         <listitem>
+          <synopsis>SetFunctionFlags (id,flags...)</synopsis>
+          <para>Set flags for a function, currently <literal>"PropagateMod"</literal> and 
<literal>"NoModuloArguments"</literal>.
+If <literal>"PropagateMod"</literal> is set, then the body of the function is evaluated in modular 
arithmetic when the function
+is called inside a block that was evaluated using modular arithmetic (using <literal>mod</literal>).  If
+<literal>"NoModuloArguments"</literal>, then the arguments of the function are never evaluated using modular 
arithmetic.
+ </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
+         <listitem>
+          <synopsis>SetHelp (id,category,desc)</synopsis>
+          <para>Set the category and help description line for a function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
+         <listitem>
+          <synopsis>SetHelpAlias (id,alias)</synopsis>
+          <para>Sets up a help alias.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-chdir"/>chdir</term>
+         <listitem>
+          <synopsis>chdir (dir)</synopsis>
+          <para>Изменяет текущий каталог. То же, что и <command>cd</command>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
+         <listitem>
+          <synopsis>CurrentTime</synopsis>
+          <para>Возвращает текущее время UNIX с точностью до микросекунд в виде числа с плавающей точкой. То 
есть возвращает число секунд с 1 января 1970 г.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-display"/>display</term>
+         <listitem>
+          <synopsis>display (str,expr)</synopsis>
+          <para>Display a string and an expression with a colon to separate them.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DisplayVariables"/>DisplayVariables</term>
+         <listitem>
+          <synopsis>DisplayVariables (var1,var2,...)</synopsis>
+         <para>Display set of variables.  The variables can be given as
+                 strings or identifiers.  For example:
+           <programlisting>DisplayVariables(`x,`y,`z)
+           </programlisting>
+         </para>
+         <para>
+                 If called without arguments (must supply empty argument list) as
+           <programlisting>DisplayVariables()
+           </programlisting>
+           then all variables are printed including a stacktrace similar to
+           <guilabel>Show user variables</guilabel> in the graphical version.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-error"/>error</term>
+         <listitem>
+          <synopsis>error (str)</synopsis>
+          <para>Выводит строку в поток ошибок (на консоль).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exit"/>exit</term>
+         <listitem>
+          <synopsis>exit</synopsis>
+          <para>Псевдоним: <function>quit</function></para>
+          <para>Завершает работу программы.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-false"/>false</term>
+         <listitem>
+          <synopsis>false</synopsis>
+          <para>Псевдонимы: <function>False</function><function>FALSE</function></para>
+         <para>Логическое значение <constant>false</constant> (ложь).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-manual"/>manual</term>
+         <listitem>
+          <synopsis>manual</synopsis>
+          <para>Показывает руководство пользователя.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-print"/>print</term>
+         <listitem>
+          <synopsis>print (str)</synopsis>
+          <para>Выводит выражение и выполняет переход на новую строку. Аргумент <varname>str</varname> может 
быть любым выражением. Он преобразуется в строку перед выводом.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-printn"/>printn</term>
+         <listitem>
+          <synopsis>printn (str)</synopsis>
+          <para>Выводит выражение без перехода на новую строку. Аргумент <varname>str</varname> может быть 
любым выражением. Он преобразуется в строку перед выводом.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrintTable"/>PrintTable</term>
+         <listitem>
+          <synopsis>PrintTable (f,v)</synopsis>
+         <para>Print a table of values for a function.  The values are in the 
+                 vector <varname>v</varname>.  You can use the vector
+                 building notation as follows:
+                 <programlisting>PrintTable (f,[0:10])
+           </programlisting>
+           If <varname>v</varname> is a positive integer, then the table of
+           integers from 1 up to and including v will be used.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-protect"/>protect</term>
+         <listitem>
+          <synopsis>protect (id)</synopsis>
+          <para>Protect a variable from being modified.  This is used on the internal GEL functions to
+avoid them being accidentally overridden.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
+         <listitem>
+          <synopsis>ProtectAll ()</synopsis>
+          <para>Protect all currently defined variables, parameters and
+functions from being modified.  This is used on the internal GEL functions to
+avoid them being accidentally overridden.  Normally <application>Genius Mathematics Tool</application> 
considers
+unprotected variables as user defined.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-set"/>set</term>
+         <listitem>
+          <synopsis>set (id,val)</synopsis>
+          <para>Set a global variable.  The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>set(`x,1)
+           </programlisting>
+           will set the global variable <varname>x</varname> to the value 1.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetElement"/>SetElement</term>
+         <listitem>
+          <synopsis>SetElement (id,row,col,val)</synopsis>
+         <para>Set an element of a global variable which is a matrix.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,3,1)
+           </programlisting>
+           will set the second row third column element of the global variable <varname>x</varname> to the 
value 1.  If no global variable of the name exists, or if it is set to something that's not a matrix, a new 
zero matrix of appropriate size will be created.
+         </para>
+         <para>The <varname>row</varname> and <varname>col</varname> can also be ranges, and the semantics 
are the same as for regular setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetVElement"/>SetVElement</term>
+         <listitem>
+          <synopsis>SetElement (id,elt,val)</synopsis>
+         <para>Set an element of a global variable which is a vector.
+                 The <varname>id</varname>
+            can be either a string or a quoted identifier.
+           For example:
+           <programlisting>SetElement(`x,2,1)
+           </programlisting>
+           will set the second element of the global vector variable <varname>x</varname> to the value 1.  
If no global variable of the name exists, or if it is set to something that's not a vector (matrix), a new 
zero row vector of appropriate size will be created.
+         </para>
+         <para>The <varname>elt</varname> can also be a range, and the semantics are the same as for regular 
setting of the elements with an equals sign.
+         </para>
+         <para>The function returns the <varname>val</varname>, to be
+         usable in chaining.</para>
+         <para>Available from 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-string"/>string</term>
+         <listitem>
+          <synopsis>string (s)</synopsis>
+          <para>Преобразует аргумент любого типа в строку.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-true"/>true</term>
+         <listitem>
+          <synopsis>true</synopsis>
+          <para>Псевдонимы: <function>True</function><function>TRUE</function></para>
+         <para>Логическое значение <constant>true</constant> (истина).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-undefine"/>undefine</term>
+         <listitem>
+          <synopsis>undefine (id)</synopsis>
+          <para>Alias: <function>Undefine</function></para>
+          <para>Undefine a variable.  This includes locals and globals,
+           every value on all context levels is wiped.  This function
+           should really not be used on local variables.  A vector of
+           identifiers can also be passed to undefine several variables.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
+         <listitem>
+          <synopsis>UndefineAll ()</synopsis>
+         <para>Undefine all unprotected global variables
+           (including functions and parameters).  Normally <application>Genius Mathematics Tool</application>
+           considers protected variables as system defined functions
+           and variables.  Note that <function>UndefineAll</function>
+           only removes the global definition of symbols not local ones,
+           so that it may be run from inside other functions safely.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-unprotect"/>unprotect</term>
+         <listitem>
+          <synopsis>unprotect (id)</synopsis>
+          <para>Unprotect a variable from being modified.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
+         <listitem>
+          <synopsis>UserVariables ()</synopsis>
+          <para>Возвращает вектор идентификаторов определённых пользователем (незащищённых) глобальных 
переменных.</para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-wait"/>wait</term>
+         <listitem>
+          <synopsis>wait (secs)</synopsis>
+          <para>Waits a specified number of seconds.  <varname>secs</varname>
+must be non-negative.  Zero is accepted and nothing happens in this case,
+except possibly user interface events are processed.</para>
+         <para>Since version 1.0.18, <varname>secs</varname> can be a noninteger number, so
+                 <userinput>wait(0.1)</userinput> will wait for one tenth of a second.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-version"/>version</term>
+         <listitem>
+          <synopsis>version</synopsis>
+          <para>Returns the version of Genius as a horizontal 3-vector with
+         major version first, then minor version and finally the patch level.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-warranty"/>warranty</term>
+         <listitem>
+          <synopsis>warranty</synopsis>
+          <para>Gives the warranty information.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+
+    </sect1>
+
+    <sect1 id="genius-gel-function-parameters">
+      <title>Параметры</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
+         <listitem>
+          <synopsis>ChopTolerance = number</synopsis>
+          <para>Tolerance of the <function>Chop</function> function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
+         <listitem>
+          <synopsis>ContinuousNumberOfTries = number</synopsis>
+          <para>How many iterations to try to find the limit for continuity and limits.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
+         <listitem>
+          <synopsis>ContinuousSFS = number</synopsis>
+          <para>How many successive steps to be within tolerance for calculation of continuity.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
+         <listitem>
+          <synopsis>ContinuousTolerance = number</synopsis>
+          <para>Tolerance for continuity of functions and for calculating the limit.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
+         <listitem>
+          <synopsis>DerivativeNumberOfTries = number</synopsis>
+          <para>How many iterations to try to find the limit for derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
+         <listitem>
+          <synopsis>DerivativeSFS = number</synopsis>
+          <para>How many successive steps to be within tolerance for calculation of derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
+         <listitem>
+          <synopsis>DerivativeTolerance = number</synopsis>
+          <para>Tolerance for calculating the derivatives of functions.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
+         <listitem>
+          <synopsis>ErrorFunctionTolerance = number</synopsis>
+         <para>Tolerance of the <link 
linkend="gel-function-ErrorFunction"><function>ErrorFunction</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
+         <listitem>
+          <synopsis>FloatPrecision = число</synopsis>
+          <para>Точность чисел с плавающей точкой.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
+         <listitem>
+          <synopsis>FullExpressions = логическое значение</synopsis>
+          <para>Выводить полные выражения, даже если они превышают длину строки.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
+         <listitem>
+          <synopsis>GaussDistributionTolerance = number</synopsis>
+         <para>Tolerance of the <link 
linkend="gel-function-GaussDistribution"><function>GaussDistribution</function></link> function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
+         <listitem>
+          <synopsis>IntegerOutputBase = number</synopsis>
+          <para>Integer output base.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
+         <listitem>
+          <synopsis>IsPrimeMillerRabinReps = number</synopsis>
+         <para>Number of extra Miller-Rabin tests to run on a number before declaring it a prime in <link 
linkend="gel-function-IsPrime"><function>IsPrime</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
+         <listitem>
+          <synopsis>LinePlotDrawLegends = true</synopsis>
+          <para>Tells genius to draw the legends for <link linkend="genius-gel-function-list-plotting">line 
plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
+         <listitem>
+          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
+          <para>Tells genius to draw the axis labels for <link 
linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
+         <listitem>
+          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
+          <para>Tells genius which variable names are used as default names  for <link 
linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> 
and friends.
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
+         <listitem>
+          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
+          <para>Sets the limits for <link linkend="genius-gel-function-list-plotting">line plotting
+         functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
+         <listitem>
+          <synopsis>MaxDigits = number</synopsis>
+          <para>Maximum digits to display.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
+         <listitem>
+          <synopsis>MaxErrors = number</synopsis>
+          <para>Maximum errors to display.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
+         <listitem>
+          <synopsis>MixedFractions = логическое значение</synopsis>
+          <para>Если true, выводятся смешанные дроби.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
+         <listitem>
+          <synopsis>NumericalIntegralFunction = function</synopsis>
+         <para>The function used for numerical integration in <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
+         <listitem>
+          <synopsis>NumericalIntegralSteps = number</synopsis>
+         <para>Steps to perform in <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
+         <listitem>
+          <synopsis>OutputChopExponent = number</synopsis>
+         <para>When another number in the object being printed (a matrix or a
+value) is greater than
+10<superscript>-OutputChopWhenExponent</superscript>, and
+the number being printed is less than 
+10<superscript>-OutputChopExponent</superscript>, then
+display <computeroutput>0.0</computeroutput> instead of the number.
+</para>
+<para>
+Output is never chopped if <function>OutputChopExponent</function> is zero.
+It must be a non-negative integer.
+</para>
+<para>
+If you want output always chopped according to
+<function>OutputChopExponent</function>, then set
+<function>OutputChopWhenExponent</function>, to something
+greater than or equal to
+<function>OutputChopExponent</function>.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
+         <listitem>
+          <synopsis>OutputChopWhenExponent = number</synopsis>
+         <para>When to chop output.  See
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
+         <listitem>
+          <synopsis>OutputStyle = строка</synopsis>
+          <para>Стиль вывода, может быть <literal>normal</literal>, <literal>latex</literal>, 
<literal>mathml</literal> или <literal>troff</literal>.</para>
+         <para>В основном влияет на то, как выводятся матрицы и дроби, и может быть полезно для копирования 
и вставки в документы. Например, задать вывод в стиле latex можно с помощью: <programlisting>OutputStyle = 
"latex"
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
+         <listitem>
+          <synopsis>ResultsAsFloats = boolean</synopsis>
+          <para>Convert all results to floats before printing.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
+         <listitem>
+          <synopsis>ScientificNotation = boolean</synopsis>
+          <para>Use scientific notation.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
+         <listitem>
+          <synopsis>SlopefieldTicks = [vertical,horizontal]</synopsis>
+          <para>Sets the number of vertical and horizontal ticks in a
+slopefield plot.  (See <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>).
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
+         <listitem>
+          <synopsis>SumProductNumberOfTries = number</synopsis>
+         <para>How many iterations to try for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
+         <listitem>
+          <synopsis>SumProductSFS = number</synopsis>
+          <para>How many successive steps to be within tolerance for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
+         <listitem>
+          <synopsis>SumProductTolerance = number</synopsis>
+          <para>Tolerance for <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> and <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLegends = true</synopsis>
+          <para>Tells genius to draw the legends for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> such as <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
+         <listitem>
+          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
+          <para>Tells genius which variable names are used as default names for <link 
linkend="genius-gel-function-list-plotting">surface plotting
+         functions</link> using <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
+          Note that the <varname>z</varname> does not refer to the dependent (vertical) axis, but to the 
independent complex variable
+          <userinput>z=x+iy</userinput>.
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
+         <listitem>
+          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
+          <para>Sets the limits for surface plotting (See <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
+         <listitem>
+          <synopsis>VectorfieldNormalized = true</synopsis>
+          <para>Should the vectorfield plotting have normalized arrow length.  If true, vector fields will 
only show direction
+          and not magnitude.  (See <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
+         <listitem>
+          <synopsis>VectorfieldTicks = [vertical,horizontal]</synopsis>
+          <para>Sets the number of vertical and horizontal ticks in a
+vectorfield plot.  (See <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).
+          </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-constants">
+      <title>Константы</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
+         <listitem>
+          <synopsis>CatalanConstant</synopsis>
+          <para>
+           Catalan's Constant, approximately 0.915...  It is defined to be the series where terms are 
<userinput>(-1^k)/((2*k+1)^2)</userinput>, where <varname>k</varname> ranges from 0 to infinity.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Catalan%27s_constant";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/CatalansConstant.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
+         <listitem>
+          <synopsis>EulerConstant</synopsis>
+          <para>Aliases: <function>gamma</function></para>
+          <para>
+           Euler's constant gamma.  Sometimes called the
+           Euler-Mascheroni constant.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler-Mascheroni_constant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MascheroniConstant";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
+         <listitem>
+          <synopsis>GoldenRatio</synopsis>
+          <para>The Golden Ratio.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Golden_ratio";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GoldenRatio";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GoldenRatio.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Gravity"/>Gravity</term>
+         <listitem>
+          <synopsis>Gravity</synopsis>
+         <para>Free fall acceleration at sea level in meters per second squared.  This is the standard 
gravity constant 9.80665.  The gravity
+                 in your particular neck of the woods might be different due to different altitude and the 
fact that the earth is not perfectly
+                 round and uniform.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Standard_gravity";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-e"/>e</term>
+         <listitem>
+          <synopsis>e</synopsis>
+          <para>
+           The base of the natural logarithm.  <userinput>e^x</userinput>
+           is the exponential function
+           <link linkend="gel-function-exp"><function>exp</function></link>.  It is approximately
+           2.71828182846...  This number is sometimes called Euler's number, although there are
+           several numbers that are also called Euler's.  An example is the gamma constant: <link 
linkend="gel-function-EulerConstant"><function>EulerConstant</function></link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/E_(mathematical_constant)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/E";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/e.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-pi"/>pi</term>
+         <listitem>
+          <synopsis>pi</synopsis>
+          <para>Число «пи» — отношение длины окружности к её диаметру. Значение приблизительно равно 
3.14159265359...</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Pi";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Pi";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pi.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-numeric">
+      <title>Числовые</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
+         <listitem>
+          <synopsis>AbsoluteValue (x)</synopsis>
+          <para>Синонимы: <function>abs</function></para>
+          <para>
+           Absolute value of a number and if <varname>x</varname> is
+           a complex value the modulus of <varname>x</varname>.  I.e. this
+           the distance of <varname>x</varname> to the origin.  This is equivalent
+           to <userinput>|x|</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Absolute_value";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/AbsoluteValue";>Planetmath (absolute value)</ulink>,
+           <ulink url="http://planetmath.org/ModulusOfComplexNumber";>Planetmath (modulus)</ulink>,
+           <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld (absolute value)</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ComplexModulus.html";>Mathworld (complex modulus)</ulink>
+for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Chop"/>Chop</term>
+         <listitem>
+          <synopsis>Chop (x)</synopsis>
+          <para>Заменяет очень малое число нулём.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
+         <listitem>
+          <synopsis>ComplexConjugate (z)</synopsis>
+          <para>Aliases: <function>conj</function> <function>Conj</function></para>
+          <para>Calculates the complex conjugate of the complex number <varname>z</varname>.  If 
<varname>z</varname> is a vector or matrix,
+all its elements are conjugated.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Complex_conjugate";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Denominator"/>Denominator</term>
+         <listitem>
+          <synopsis>Denominator (x)</synopsis>
+          <para>Возвращает знаменатель рационального числа.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Denominator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
+         <listitem>
+          <synopsis>FractionalPart (x)</synopsis>
+          <para>Возвращает дробную часть числа.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fractional_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Im"/>Im</term>
+         <listitem>
+          <synopsis>Im (z)</synopsis>
+          <para>Синонимы: <function>ImaginaryPart</function></para>
+          <para>Get the imaginary part of a complex number.  For example <userinput>Re(3+4i)</userinput> 
yields 4.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Imaginary_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
+         <listitem>
+          <synopsis>IntegerQuotient (m,n)</synopsis>
+          <para>Деление без остатка.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
+         <listitem>
+          <synopsis>IsComplex (num)</synopsis>
+         <para>Check if argument is a complex (non-real) number.  Do note that we really mean nonreal 
number.  That is,
+         <userinput>IsComplex(3)</userinput> yields false, while
+         <userinput>IsComplex(3-1i)</userinput> yields true.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
+         <listitem>
+          <synopsis>IsComplexRational (num)</synopsis>
+         <para>Check if argument is a possibly complex rational number.  That is, if both real and imaginary 
parts are
+         given as rational numbers.  Of course rational simply means "not stored as a floating point 
number."</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
+         <listitem>
+          <synopsis>IsFloat (num)</synopsis>
+          <para>Check if argument is a real floating point number (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
+         <listitem>
+          <synopsis>IsGaussInteger (num)</synopsis>
+          <para>Aliases: <function>IsComplexInteger</function></para>
+         <para>Check if argument is a possibly complex integer.  That is a complex integer is a number of
+                 the form <userinput>n+1i*m</userinput> where <varname>n</varname> and <varname>m</varname>
+         are integers.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
+         <listitem>
+          <synopsis>IsInteger (num)</synopsis>
+          <para>Проверяет, является ли аргумент целым числом (не комплексным).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
+         <listitem>
+          <synopsis>IsNonNegativeInteger (num)</synopsis>
+          <para>Check if argument is a non-negative real integer.  That is, either a positive integer or 
zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
+         <listitem>
+          <synopsis>IsPositiveInteger (num)</synopsis>
+          <para>Синонимы: <function>IsNaturalNumber</function></para>
+          <para>Проверяет, является ли аргумент положительным действительным целым числом. Обратите 
внимание, что мы придерживаемся соглашения о том, что 0 не является натуральным числом.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsRational"/>IsRational</term>
+         <listitem>
+          <synopsis>IsRational (num)</synopsis>
+          <para>Проверяет, является ли аргумент рациональным числом (не комплексным). Разумеется, 
«рациональное» означает просто «не хранящееся в виде числа с плавающей точкой».</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsReal"/>IsReal</term>
+         <listitem>
+          <synopsis>IsReal (num)</synopsis>
+          <para>Проверяет, является ли аргумент действительным числом.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Numerator"/>Numerator</term>
+         <listitem>
+          <synopsis>Numerator (x)</synopsis>
+          <para>Возвращает числитель рационального числа.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Numerator";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Re"/>Re</term>
+         <listitem>
+          <synopsis>Re (z)</synopsis>
+          <para>Синонимы: <function>RealPart</function></para>
+         <para>Get the real part of a complex number.  For example <userinput>Re(3+4i)</userinput> yields 
3.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Real_part";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Sign"/>Sign</term>
+         <listitem>
+          <synopsis>Sign (x)</synopsis>
+          <para>Синонимы: <function>sign</function></para>
+          <para>Возвращает знак числа. То есть, возвращает <literal>-1</literal>, если значение 
отрицательно, <literal>0</literal>, если рано нулю и <literal>1</literal>, если значение положительно. Если 
<varname>x</varname> — комплексное число, то <function>Sign</function> возвращает направление на числовой оси 
(положительное или отрицательное) или 0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ceil"/>ceil</term>
+         <listitem>
+          <synopsis>ceil (x)</synopsis>
+          <para>Синонимы: <function>Ceiling</function></para>
+         <para>Возвращает наименьшее целое число, которое больше или равно <varname>n</varname>. Примеры: 
<screen><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
+= 2
+<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
+= -1
+</screen></para>
+          <para>Note that you should be careful and notice that floating point
+                  numbers are stored in binary and so may not be what you
+                  expect.  For example <userinput>ceil(420/4.2)</userinput>
+                  returns 101 instead of the expected 100.  This is because
+                  4.2 is actually very slightly less than 4.2.  Use rational
+                  representation <userinput>42/10</userinput> if you want
+                  exact arithmetic.
+           </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exp"/>exp</term>
+         <listitem>
+          <synopsis>exp (x)</synopsis>
+          <para>Экспоненциальная функция. Это функция <userinput>e^x</userinput>, где <varname>e</varname> — 
<link linkend="gel-function-e">основание натурального логарифма</link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Exponential_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ExponentialFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-float"/>float</term>
+         <listitem>
+          <synopsis>float (x)</synopsis>
+          <para>Возвращает представление числа <varname>x</varname> в виде числа с плавающей точкой.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-floor"/>floor</term>
+         <listitem>
+          <synopsis>floor (x)</synopsis>
+          <para>Синонимы: <function>Floor</function></para>
+          <para>Возвращает наибольшее целое число, которое меньше или равно <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ln"/>ln</term>
+         <listitem>
+          <synopsis>ln (x)</synopsis>
+          <para>Натуральный логарифм (логарифм по основанию <varname>e</varname>).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Natural_logarithm";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NaturalLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log"/>log</term>
+         <listitem>
+          <synopsis>log (x)</synopsis>
+          <synopsis>log (x,b)</synopsis>
+         <para>Logarithm of <varname>x</varname> base <varname>b</varname> (calls <link 
linkend="gel-function-DiscreteLog"><function>DiscreteLog</function></link> if in modulo mode), if base is not 
given, <link linkend="gel-function-e"><varname>e</varname></link> is used.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log10"/>log10</term>
+         <listitem>
+          <synopsis>log10 (x)</synopsis>
+          <para>Логарифм <varname>x</varname> по основанию 10.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log2"/>log2</term>
+         <listitem>
+          <synopsis>log2 (x)</synopsis>
+          <para>Синоним: <function>lg</function></para>
+          <para>Логарифм <varname>x</varname> по основанию 2.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-max"/>max</term>
+         <listitem>
+          <synopsis>max (a,args...)</synopsis>
+          <para>Псевдонимы: <function>Max</function><function>Maximum</function></para>
+          <para>Возвращает максимальный из аргументов или элементов матрицы.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-min"/>min</term>
+         <listitem>
+          <synopsis>min (a,args...)</synopsis>
+          <para>Псевдонимы: <function>Min</function><function>Minimum</function></para>
+          <para>Возвращает минимальный из аргументов или элементов матрицы.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rand"/>rand</term>
+         <listitem>
+          <synopsis>rand (size...)</synopsis>
+          <para>Генерирует случайное число с плавающей точкой в диапазоне <literal>[0,1)</literal>. Если 
задан аргумент size, то может возвращать матрицу (если указано два числа) или вектор (если указано одно 
число) заданной размерности.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-randint"/>randint</term>
+         <listitem>
+          <synopsis>randint (max,size...)</synopsis>
+          <para>Генерирует случайное целое число в диапазоне <literal>[0,max)</literal>. Если задан аргумент 
size, возвращает матрицу (если указано два числа) или вектор (если указано одно число) заданной размерности. 
Например, <screen><prompt>genius&gt;</prompt> <userinput>randint(4)</userinput>
+= 3
+<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
+=
+[0      1]
+<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
+=
+[2      2       1
+ 0      0       3]
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-round"/>round</term>
+         <listitem>
+          <synopsis>round (x)</synopsis>
+          <para>Синонимы: <function>Round</function></para>
+          <para>Округляет число.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sqrt"/>sqrt</term>
+         <listitem>
+          <synopsis>sqrt (x)</synopsis>
+          <para>Синонимы: <function>SquareRoot</function></para>
+          <para>The square root.  When operating modulo some integer will return either a 
<constant>null</constant> or a vector of the square roots.  Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>sqrt(2)</userinput>
+= 1.41421356237
+<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
+= 1i
+<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
+=
+[2      5]
+<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
+= 4
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Square_root";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/SquareRoot";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-trunc"/>trunc</term>
+         <listitem>
+          <synopsis>trunc (x)</synopsis>
+          <para>Синонимы: <function>Truncate</function><function>IntegerPart</function></para>
+          <para>Усекает число до целого (возвращает целую часть).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-trigonometry">
+      <title>Тригонометрические</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-acos"/>acos</term>
+         <listitem>
+          <synopsis>acos (x)</synopsis>
+          <para>Синонимы: <function>arccos</function></para>
+          <para>Функция arccos (арккосинус, обратный косинус).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acosh"/>acosh</term>
+         <listitem>
+          <synopsis>acosh (x)</synopsis>
+          <para>Синонимы: <function>arccosh</function></para>
+          <para>Функция arccosh (обратный гиперболический косинус).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acot"/>acot</term>
+         <listitem>
+          <synopsis>acot (x)</synopsis>
+          <para>Синонимы: <function>arccot</function></para>
+          <para>Фунция arccot (арккотангенс, обратный котангенс).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acoth"/>acoth</term>
+         <listitem>
+          <synopsis>acoth (x)</synopsis>
+          <para>Синонимы: <function>arccoth</function></para>
+          <para>Функция arccoth (обратный гиперболический котангенс).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsc"/>acsc</term>
+         <listitem>
+          <synopsis>acsc (x)</synopsis>
+          <para>Синонимы: <function>arccsc</function></para>
+          <para>Обратный косеканс.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsch"/>acsch</term>
+         <listitem>
+          <synopsis>acsch (x)</synopsis>
+          <para>Синонимы: <function>arccsch</function></para>
+          <para>Обратный гиперболический косеканс.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asec"/>asec</term>
+         <listitem>
+          <synopsis>asec (x)</synopsis>
+          <para>Синонимы: <function>arcsec</function></para>
+          <para>Обратный секанс.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asech"/>asech</term>
+         <listitem>
+          <synopsis>asech (x)</synopsis>
+          <para>Синонимы: <function>arcsech</function></para>
+          <para>Обратный гиперболический секанс.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asin"/>asin</term>
+         <listitem>
+          <synopsis>asin (x)</synopsis>
+          <para>Синонимы: <function>arcsin</function></para>
+          <para>Функция arcsin (арксинус, обратный синус).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asinh"/>asinh</term>
+         <listitem>
+          <synopsis>asinh (x)</synopsis>
+          <para>Синонимы: <function>arcsinh</function></para>
+          <para>Фунция arcsinh (обратный гиперболический синус).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan"/>atan</term>
+         <listitem>
+          <synopsis>atan (x)</synopsis>
+          <para>Синонимы: <function>arctan</function></para>
+          <para>Вычисляет функцию arctan (арктангенс, обратный тангенс).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Arctangent";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atanh"/>atanh</term>
+         <listitem>
+          <synopsis>atanh (x)</synopsis>
+          <para>Синонимы: <function>arctanh</function></para>
+          <para>Функция arctanh (обратный гиперболический тангенс).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan2"/>atan2</term>
+         <listitem>
+          <synopsis>atan2 (y, x)</synopsis>
+          <para>Синонимы: <function>arctan2</function></para>
+          <para>Calculates the arctan2 function.  If
+         <userinput>x&gt;0</userinput> then it returns
+         <userinput>atan(y/x)</userinput>.  If <userinput>x&lt;0</userinput>
+         then it returns <userinput>sign(y) * (pi - atan(|y/x|)</userinput>.
+         When <userinput>x=0</userinput> it returns <userinput>sign(y) *
+         pi/2</userinput>.  <userinput>atan2(0,0)</userinput> returns 0
+         rather than failing.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Atan2";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cos"/>cos</term>
+         <listitem>
+          <synopsis>cos (x)</synopsis>
+          <para>Вычисляет косинус.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cosh"/>cosh</term>
+         <listitem>
+          <synopsis>cosh (x)</synopsis>
+          <para>Вычисляет гиперболический косинус.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cot"/>cot</term>
+         <listitem>
+          <synopsis>cot (x)</synopsis>
+          <para>Вычисляет котангенс.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-coth"/>coth</term>
+         <listitem>
+          <synopsis>coth (x)</synopsis>
+          <para>Вычисляет гиперболический котангенс.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csc"/>csc</term>
+         <listitem>
+          <synopsis>csc (x)</synopsis>
+          <para>Вычисляет косеканс.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csch"/>csch</term>
+         <listitem>
+          <synopsis>csch (x)</synopsis>
+          <para>Вычисляет гиперболический косеканс.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sec"/>sec</term>
+         <listitem>
+          <synopsis>sec (x)</synopsis>
+          <para>Вычисляет секанс.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sech"/>sech</term>
+         <listitem>
+          <synopsis>sech (x)</synopsis>
+          <para>Вычисляет гиперболический секанс.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sin"/>sin</term>
+         <listitem>
+          <synopsis>sin (x)</synopsis>
+          <para>Вычисляет синус.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinh"/>sinh</term>
+         <listitem>
+          <synopsis>sinh (x)</synopsis>
+          <para>Вычисляет гиперболический синус.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tan"/>tan</term>
+         <listitem>
+          <synopsis>tan (x)</synopsis>
+          <para>Вычисляет тангенс.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tanh"/>tanh</term>
+         <listitem>
+          <synopsis>tanh (x)</synopsis>
+          <para>Вычисляет гиперболический тангенс.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-number-theory">
+      <title>Теория чисел</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
+         <listitem>
+          <synopsis>AreRelativelyPrime (a,b)</synopsis>
+          <para>
+           Are the real integers <varname>a</varname> and <varname>b</varname> relatively prime?
+           Returns <constant>true</constant> or <constant>false</constant>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coprime_integers";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RelativelyPrime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/RelativelyPrime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
+         <listitem>
+          <synopsis>BernoulliNumber (n)</synopsis>
+          <para>Return the <varname>n</varname>th Bernoulli number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bernoulli_number";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/BernoulliNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
+         <listitem>
+          <synopsis>ChineseRemainder (a,m)</synopsis>
+          <para>Aliases: <function>CRT</function></para>
+         <para>Find the <varname>x</varname> that solves the system given by
+               the vector <varname>a</varname> and modulo the elements of
+               <varname>m</varname>, using the Chinese Remainder Theorem.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Chinese_remainder_theorem";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ChineseRemainderTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
+         <listitem>
+          <synopsis>CombineFactorizations (a,b)</synopsis>
+         <para>Given two factorizations, give the factorization of the
+               product.</para>
+         <para>See <link linkend="gel-function-Factorize">Factorize</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
+         <listitem>
+          <synopsis>ConvertFromBase (v,b)</synopsis>
+          <para>Convert a vector of values indicating powers of b to a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
+         <listitem>
+          <synopsis>ConvertToBase (n,b)</synopsis>
+          <para>Convert a number to a vector of powers for elements in base <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
+         <listitem>
+          <synopsis>DiscreteLog (n,b,q)</synopsis>
+          <para>Find discrete log of <varname>n</varname> base <varname>b</varname> in
+           F<subscript>q</subscript>, the finite field of order <varname>q</varname>, where 
<varname>q</varname>
+           is a prime, using the Silver-Pohlig-Hellman algorithm.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Discrete_logarithm";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/DiscreteLogarithm";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/DiscreteLogarithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Divides"/>Divides</term>
+         <listitem>
+          <synopsis>Divides (m,n)</synopsis>
+          <para>Проверяет делимость (делится ли <varname>n</varname> на <varname>m</varname>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
+         <listitem>
+          <synopsis>EulerPhi (n)</synopsis>
+          <para>
+           Compute the Euler phi function for <varname>n</varname>, that is
+           the number of integers between 1 and <varname>n</varname>
+           relatively prime to <varname>n</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Euler_phi";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/EulerPhifunction";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/TotientFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
+         <listitem>
+          <synopsis>ExactDivision (n,d)</synopsis>
+          <para>Возвращает <userinput>n/d</userinput>, но только если <varname>n</varname> делится на 
<varname>d</varname>. Если не делится, то функция возвращает мусор. Для очень больших чисел это гораздо 
быстрее, чем операция <userinput>n/d</userinput>, но, разумеется, полезно только в том случае, если вы точно 
знаете, что числа делятся без остатка.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorize"/>Factorize</term>
+         <listitem>
+          <synopsis>Factorize (n)</synopsis>
+          <para>
+           Return factorization of a number as a matrix.  The first
+           row is the primes in the factorization (including 1) and the
+           second row are the powers.  So for example:
+           <screen><prompt>genius&gt;</prompt> <userinput>Factorize(11*11*13)</userinput>
+=
+[1      11      13
+ 1      2       1]</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Factorization";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factors"/>Factors</term>
+         <listitem>
+          <synopsis>Factors (n)</synopsis>
+          <para>
+           Return all factors of <varname>n</varname> in a vector.  This
+           includes all the non-prime factors as well.  It includes 1 and the
+           number itself.  So for example to print all the perfect numbers
+           (those that are sums of their factors) up to the number 1000 you
+           could do (this is of course very inefficient)
+           <programlisting>for n=1 to 1000 do (
+    if MatrixSum (Factors(n)) == 2*n then
+        print(n)
+)
+</programlisting>
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
+         <listitem>
+          <synopsis>FermatFactorization (n,tries)</synopsis>
+          <para>
+           Attempt Fermat factorization of <varname>n</varname> into
+           <userinput>(t-s)*(t+s)</userinput>, returns <varname>t</varname>
+           and <varname>s</varname> as a vector if possible, <constant>null</constant> otherwise.
+           <varname>tries</varname> specifies the number of tries before
+           giving up.
+         </para>
+          <para>
+           This is a fairly good factorization if your number is the product
+           of two factors that are very close to each other.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fermat_factorization";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindPrimitiveElementMod (q)</synopsis>
+          <para>Find the first primitive element in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>.  Of course <varname>q</varname> must be a prime.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
+          <para>Find a random primitive element in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname> (q must be a prime).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
+         <listitem>
+          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
+          <para>Compute discrete log base <varname>b</varname> of n in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname> (<varname>q</varname> a prime), using the
+factor base <varname>S</varname>.  <varname>S</varname> should be a column of
+primes possibly with second column precalculated by
+<link 
linkend="gel-function-IndexCalculusPrecalculation"><function>IndexCalculusPrecalculation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
+         <listitem>
+          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
+         <para>Run the precalculation step of
+                 <link linkend="gel-function-IndexCalculus"><function>IndexCalculus</function></link> for 
logarithms base <varname>b</varname> in
+F<subscript>q</subscript>, the finite group of order <varname>q</varname>
+(<varname>q</varname> a prime), for the factor base <varname>S</varname> (where
+<varname>S</varname> is a column vector of primes).  The logs will be
+precalculated and returned in the second column.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsEven"/>IsEven</term>
+         <listitem>
+          <synopsis>IsEven (n)</synopsis>
+          <para>Проверяет, является ли целое число чётным.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
+         <listitem>
+          <synopsis>IsMersennePrimeExponent (p)</synopsis>
+          <para>
+           Tests if a positive integer <varname>p</varname> is a
+           Mersenne prime exponent.  That is if 
+            2<superscript>p</superscript>-1 is a prime.  It does this
+           by looking it up in a table of known values, which is relatively
+           short.
+           See also
+           <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link>
+           and
+           <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
+         <listitem>
+          <synopsis>IsNthPower (m,n)</synopsis>
+          <para>
+           Tests if a rational number <varname>m</varname> is a perfect
+           <varname>n</varname>th power.  See also
+           <link linkend="gel-function-IsPerfectPower">IsPerfectPower</link>
+           and
+           <link linkend="gel-function-IsPerfectSquare">IsPerfectSquare</link>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
+         <listitem>
+          <synopsis>IsOdd (n)</synopsis>
+          <para>Проверяет, является ли целое число нечётным.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
+         <listitem>
+          <synopsis>IsPerfectPower (n)</synopsis>
+          <para>Check an integer for being any perfect power, a<superscript>b</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
+         <listitem>
+          <synopsis>IsPerfectSquare (n)</synopsis>
+          <para>
+           Check an integer for being a perfect square of an integer.  The number must
+           be an integer.  Negative integers are of course never perfect
+           squares of integers.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
+         <listitem>
+          <synopsis>IsPrime (n)</synopsis>
+          <para>
+           Tests primality of integers, for numbers less than 2.5e10 the
+           answer is deterministic (if Riemann hypothesis is true).  For
+           numbers larger, the probability of a false positive
+           depends on
+           <link linkend="gel-function-IsPrimeMillerRabinReps">
+           <function>IsPrimeMillerRabinReps</function></link>.  That
+           is the probability of false positive is 1/4 to the power
+           <function>IsPrimeMillerRabinReps</function>.  The default
+           value of 22 yields a probability of about 5.7e-14.
+         </para>
+          <para>
+           If <constant>false</constant> is returned, you can be sure that
+           the number is a composite.  If you want to be absolutely sure
+           that you have a prime you can use 
+           <link linkend="gel-function-MillerRabinTestSure">
+           <function>MillerRabinTestSure</function></link> but it may take
+           a lot longer.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
+         <listitem>
+          <synopsis>IsPrimitiveMod (g,q)</synopsis>
+          <para>Check if <varname>g</varname> is primitive in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>, where <varname>q</varname> is a prime.  If <varname>q</varname> is not 
prime results are bogus.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
+         <listitem>
+          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
+          <para>Check if <varname>g</varname> is primitive in F<subscript>q</subscript>, the finite
+group of order <varname>q</varname>, where <varname>q</varname> is a prime and
+<varname>f</varname> is a vector of prime factors of <varname>q</varname>-1.
+If <varname>q</varname> is not prime results are bogus.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
+         <listitem>
+          <synopsis>IsPseudoprime (n,b)</synopsis>
+          <para>If <varname>n</varname> is a pseudoprime base <varname>b</varname> but not a prime,
+                 that is if <userinput>b^(n-1) == 1 mod n</userinput>.  This calls the <link 
linkend="gel-function-PseudoprimeTest"><function>PseudoprimeTest</function></link></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
+         <listitem>
+          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
+          <para>Test if <varname>n</varname> is a strong pseudoprime to base <varname>b</varname> but not a 
prime.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
+         <listitem>
+          <synopsis>Jacobi (a,b)</synopsis>
+          <para>Синонимы: <function>JacobiSymbol</function></para>
+          <para>Вычисляет символ Якоби (a/b) (b должно быть нечётным).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
+         <listitem>
+          <synopsis>JacobiKronecker (a,b)</synopsis>
+          <para>Синонимы: <function>JacobiKroneckerSymbol</function></para>
+          <para>Вычисляет символ Якоби (a/b) с дополнением Кронекера (a/2)=(2/a), если нечётное или (a/2)=0, 
если чётное.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
+         <listitem>
+          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
+          <para>Return the residue of <varname>a</varname> mod <varname>n</varname> with the least absolute 
value (in the interval -n/2 to n/2).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Legendre"/>Legendre</term>
+         <listitem>
+          <synopsis>Legendre (a,p)</synopsis>
+          <para>Aliases: <function>LegendreSymbol</function></para>
+          <para>Calculate the Legendre symbol (a/p).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/LegendreSymbol";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LegendreSymbol.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
+         <listitem>
+          <synopsis>LucasLehmer (p)</synopsis>
+          <para>Test if 2<superscript>p</superscript>-1 is a Mersenne prime using the Lucas-Lehmer test.
+           See also
+           <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link>
+           and
+           <link linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>.
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasLhemer";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Lucas-LehmerTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
+         <listitem>
+          <synopsis>LucasNumber (n)</synopsis>
+          <para>Returns the <varname>n</varname>th Lucas number.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lucas_number";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LucasNumbers";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LucasNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
+         <listitem>
+          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
+          <para>Return all maximal prime power factors of a number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
+         <listitem>
+          <synopsis>MersennePrimeExponents</synopsis>
+          <para>
+           A vector of known Mersenne prime exponents, that is
+           a list of positive integers
+           <varname>p</varname> such that
+            2<superscript>p</superscript>-1 is a prime.
+           See also
+           <link linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>
+           and
+           <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> or 
+           <ulink url="http://www.mersenne.org/";>GIMPS</ulink>
+ for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
+         <listitem>
+          <synopsis>MillerRabinTest (n,reps)</synopsis>
+          <para>
+           Use the Miller-Rabin primality test on <varname>n</varname>,
+           <varname>reps</varname> number of times.  The probability of false
+           positive is <userinput>(1/4)^reps</userinput>.  It is probably
+           usually better to use
+           <link linkend="gel-function-IsPrime">
+           <function>IsPrime</function></link> since that is faster and
+           better on smaller integers.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink> 
or
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
+         <listitem>
+          <synopsis>MillerRabinTestSure (n)</synopsis>
+          <para>
+           Use the Miller-Rabin primality test on <varname>n</varname> with
+           enough bases that assuming the Generalized Riemann Hypothesis the
+           result is deterministic.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink>, or
+           <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
+         <listitem>
+          <synopsis>ModInvert (n,m)</synopsis>
+          <para>Returns inverse of n mod m.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/ModularInverse.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
+         <listitem>
+          <synopsis>MoebiusMu (n)</synopsis>
+          <para>
+           Return the Moebius mu function evaluated in <varname>n</varname>.
+           That is, it returns 0 if <varname>n</varname> is not a product
+           of distinct primes and <userinput>(-1)^k</userinput> if it is
+           a product of <varname>k</varname> distinct primes.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/MoebiusFunction";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/MoebiusFunction.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
+         <listitem>
+          <synopsis>NextPrime (n)</synopsis>
+          <para>
+           Returns the least prime greater than <varname>n</varname>.
+           Negatives of primes are considered prime and so to get the
+           previous prime you can use <userinput>-NextPrime(-n)</userinput>.
+         </para>
+          <para>
+           This function uses the GMPs <function>mpz_nextprime</function>,
+           which in turn uses the probabilistic Miller-Rabin test
+           (See also <link 
linkend="gel-function-MillerRabinTest"><function>MillerRabinTest</function></link>).
+           The probability
+           of false positive is not tunable, but is low enough
+           for all practical purposes.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
+         <listitem>
+          <synopsis>PadicValuation (n,p)</synopsis>
+          <para>Returns the p-adic valuation (number of trailing zeros in base <varname>p</varname>).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/P-adic_order";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/PAdicValuation";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
+         <listitem>
+          <synopsis>PowerMod (a,b,m)</synopsis>
+          <para>
+           Compute <userinput>a^b mod m</userinput>.  The
+           <varname>b</varname>'s power of <varname>a</varname> modulo
+           <varname>m</varname>.  It is not necessary to use this function
+           as it is automatically used in modulo mode.  Hence
+           <userinput>a^b mod m</userinput> is just as fast.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Prime"/>Prime</term>
+         <listitem>
+          <synopsis>Prime (n)</synopsis>
+          <para>Aliases: <function>prime</function></para>
+          <para>Return the <varname>n</varname>th prime (up to a limit).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
+         <listitem>
+          <synopsis>PrimeFactors (n)</synopsis>
+          <para>Return all prime factors of a number as a vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Prime_factor";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PrimeFactor.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
+         <listitem>
+          <synopsis>PseudoprimeTest (n,b)</synopsis>
+         <para>Pseudoprime test, returns <constant>true</constant> if and only if
+               <userinput>b^(n-1) == 1  mod n</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Pseudoprime";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Pseudoprime.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
+         <listitem>
+          <synopsis>RemoveFactor (n,m)</synopsis>
+          <para>Removes all instances of the factor <varname>m</varname> from the number 
<varname>n</varname>.  That is divides by the largest power of <varname>m</varname>, that divides 
<varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Divisibility";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/Factor.html";>Mathworld</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
+         <listitem>
+          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
+          <para>Find discrete log of <varname>n</varname> base <varname>b</varname> in 
F<subscript>q</subscript>, the finite group of order <varname>q</varname>, where <varname>q</varname> is a 
prime using the Silver-Pohlig-Hellman algorithm, given <varname>f</varname> being the factorization of 
<varname>q</varname>-1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
+         <listitem>
+          <synopsis>SqrtModPrime (n,p)</synopsis>
+          <para>Find square root of <varname>n</varname> modulo <varname>p</varname> (where 
<varname>p</varname> is a prime).  Null is returned if not a quadratic residue.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticResidue";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QuadraticResidue.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
+         <listitem>
+          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
+          <para>Run the strong pseudoprime test base <varname>b</varname> on <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Strong_pseudoprime";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/StrongPseudoprime";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/StrongPseudoprime.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-gcd"/>gcd</term>
+         <listitem>
+          <synopsis>gcd (a,args...)</synopsis>
+          <para>Aliases: <function>GCD</function></para>
+          <para>
+           Greatest common divisor of integers.  You can enter as many
+           integers as you want in the argument list, or you can give
+           a vector or a matrix of integers.  If you give more than
+           one matrix of the same size then GCD is done element by
+           element.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greatest_common_divisor";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/GreatestCommonDivisor";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/GreatestCommonDivisor.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-lcm"/>lcm</term>
+         <listitem>
+          <synopsis>lcm (a,args...)</synopsis>
+          <para>Aliases: <function>LCM</function></para>
+          <para>
+           Least common multiplier of integers.  You can enter as many
+           integers as you want in the argument list, or you can give a 
+           vector or a matrix of integers.  If you give more than one
+           matrix of the same size then LCM is done element by element.    
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Least_common_multiple";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LeastCommonMultiple";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/LeastCommonMultiple.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-matrix">
+      <title>Операции с матрицами</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix (a,func)</synopsis>
+          <para>Применяет функцию к каждому элементу матрицы и возвращает матрицу результатов.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix2 (a,b,func)</synopsis>
+          <para>Применяет функцию к каждому элементу двух матриц (или 1 значению и 1 матрице) и возвращает 
матрицу результатов.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
+         <listitem>
+          <synopsis>ColumnsOf (M)</synopsis>
+          <para>Возвращает столбцы матрицы в виде горизонтального вектора.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
+         <listitem>
+          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
+          <para>Remove column(s) and row(s) from a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
+         <listitem>
+          <synopsis>CompoundMatrix (k,A)</synopsis>
+          <para>Calculate the kth compound matrix of A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
+         <listitem>
+          <synopsis>CountZeroColumns (M)</synopsis>
+          <para>
+          Count the number of zero columns in a matrix.  For example,
+          once you column-reduce a matrix, you can use this to find
+          the nullity.  See <link linkend="gel-function-cref"><function>cref</function></link>
+          and <link linkend="gel-function-Nullity"><function>Nullity</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
+         <listitem>
+          <synopsis>DeleteColumn (M,столбец)</synopsis>
+          <para>Удаляет столбец матрицы.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
+         <listitem>
+          <synopsis>DeleteRow (M,строка)</synopsis>
+          <para>Удаляет строку матрицы.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
+         <listitem>
+          <synopsis>DiagonalOf (M)</synopsis>
+          <para>Gets the diagonal entries of a matrix as a column vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_of_a_matrix#Matrices";>Wikipedia</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
+         <listitem>
+          <synopsis>DotProduct (u,v)</synopsis>
+         <para>Get the dot product of two vectors.  The vectors must be of the
+                 same size.  No conjugates are taken so this is a bilinear form even if working over the 
complex numbers; This is the bilinear scalar product not the sesquilinear scalar product.  See <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link> for the standard sesquilinear inner 
product.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Dot_product";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DotProduct";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
+         <listitem>
+          <synopsis>ExpandMatrix (M)</synopsis>
+          <para>
+           Expands a matrix just like we do on unquoted matrix input.
+           That is we expand any internal matrices as blocks.  This is
+           a way to construct matrices out of smaller ones and this is
+           normally done automatically on input unless the matrix is quoted.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
+         <listitem>
+          <synopsis>HermitianProduct (u,v)</synopsis>
+          <para>Aliases: <function>InnerProduct</function></para>
+          <para>Get the Hermitian product of two vectors.  The vectors must be of the same size.  This is a 
sesquilinear form using the identity matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sesquilinear_form";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/HermitianInnerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-I"/>I</term>
+         <listitem>
+          <synopsis>I (n)</synopsis>
+          <para>Aliases: <function>eye</function></para>
+         <para>Return an identity matrix of a given size, that is <varname>n</varname> by 
<varname>n</varname>.  If <varname>n</varname> is zero, returns <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Identity_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/IdentityMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
+         <listitem>
+          <synopsis>IndexComplement (vec,msize)</synopsis>
+          <para>Return the index complement of a vector of indexes.  Everything is one based.  For example 
for vector <userinput>[2,3]</userinput> and size
+<userinput>5</userinput>, we return <userinput>[1,4,5]</userinput>.  If
+<varname>msize</varname> is 0, we always return <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
+         <listitem>
+          <synopsis>IsDiagonal (M)</synopsis>
+          <para>Является ли матрица диагональной.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
+         <listitem>
+          <synopsis>IsIdentity (x)</synopsis>
+          <para>Check if a matrix is the identity matrix.  Automatically returns <constant>false</constant>
+           if the matrix is not square.  Also works on numbers, in which
+           case it is equivalent to <userinput>x==1</userinput>.  When <varname>x</varname> is
+           <constant>null</constant> (we could think of that as a 0 by 0 matrix),
+           no error is generated and <constant>false</constant> is returned.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
+         <listitem>
+          <synopsis>IsLowerTriangular (M)</synopsis>
+          <para>Является ли матрица нижнетреугольной, то есть все её элементы над диагональю равны 
нулю.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
+         <listitem>
+          <synopsis>IsMatrixInteger (M)</synopsis>
+          <para>Check if a matrix is a matrix of integers (non-complex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
+         <listitem>
+          <synopsis>IsMatrixNonnegative (M)</synopsis>
+          <para>Check if a matrix is non-negative, that is if each element is non-negative.
+         Do not confuse positive matrices with positive semi-definite matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
+         <listitem>
+          <synopsis>IsMatrixPositive (M)</synopsis>
+         <para>Check if a matrix is positive, that is if each element is
+positive (and hence real).  In particular, no element is 0.  Do not confuse
+positive matrices with positive definite matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
+         <listitem>
+          <synopsis>IsMatrixRational (M)</synopsis>
+          <para>Проверяет, является ли матрица матрицей из рациональных (не комплексных) чисел.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
+         <listitem>
+          <synopsis>IsMatrixReal (M)</synopsis>
+          <para>Проверяет, является ли матрица матрицей из действительных (не комплексных) чисел.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
+         <listitem>
+          <synopsis>IsMatrixSquare (M)</synopsis>
+          <para>Проверяет, является ли матрица квадратной, то есть её ширина равна высоте.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
+         <listitem>
+          <synopsis>IsUpperTriangular (M)</synopsis>
+          <para>Is a matrix upper triangular?  That is, a matrix is upper triangular if all the entries 
below the diagonal are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
+         <listitem>
+          <synopsis>IsValueOnly (M)</synopsis>
+          <para>Проверяет, состоит ли матрица только из чисел. Многие встроенные функции делают эту 
проверку. Значения могут быть любыми числами, включая комплексные.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsVector"/>IsVector</term>
+         <listitem>
+          <synopsis>IsVector (v)</synopsis>
+          <para>Является ли аргумент горизонтальным или вертикальным вектором. Genius не делает различий 
между матрицей и вектором: вектор — это просто матрица 1 на <varname>n</varname> или <varname>n</varname> на 
1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsZero"/>IsZero</term>
+         <listitem>
+          <synopsis>IsZero (x)</synopsis>
+          <para>Проверяет, состоит ли матрица из одних нулей. Также работает с числами, в этом случае 
эквивалентна выражению <userinput>x==0</userinput>. Если переменная <varname>x</varname> равна 
<constant>null</constant> (можно представить это, как матрицу 0 на 0 элементов), ошибка не генерируется и 
возвращается <constant>true</constant>, так как условие является бессмысленным.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
+         <listitem>
+          <synopsis>LowerTriangular (M)</synopsis>
+          <para>Возвращает копию матрицы <varname>M</varname>, в которой все элементы под диагональю 
заменены нулями.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
+         <listitem>
+          <synopsis>MakeDiagonal (v,arg...)</synopsis>
+          <para>Псевдоним: <function>diag</function></para>
+         <para>Создаёт диагональную матрицу из вектора. Значения для диагонали также могут быть переданы в 
виде аргументов функции. Поэтому <userinput>MakeDiagonal([1,2,3])</userinput> — то же самое, что и 
<userinput>MakeDiagonal(1,2,3)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
+         <listitem>
+          <synopsis>MakeVector (A)</synopsis>
+          <para>Make column vector out of matrix by putting columns above
+                 each other.  Returns <constant>null</constant> when given <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
+         <listitem>
+          <synopsis>MatrixProduct (A)</synopsis>
+          <para>Вычисляет произведение всех элементов матрицы или вектора. То есть, умножает друг на друга 
все элементы и возвращает число, являющееся их произведением.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
+         <listitem>
+          <synopsis>MatrixSum (A)</synopsis>
+          <para>Вычисляет сумму всех элементов матрицы или вектора. То есть, складывает все элементы и 
возвращает число, являющееся их суммой.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
+         <listitem>
+          <synopsis>MatrixSumSquares (A)</synopsis>
+          <para>Вычисляет сумму квадратов всех элементов матрицы или вектора.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroColumns"/>NonzeroColumns</term>
+         <listitem>
+          <synopsis>NonzeroColumns (M)</synopsis>
+          <para>Returns a row vector of the indices of nonzero columns in the matrix 
<varname>M</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroElements"/>NonzeroElements</term>
+         <listitem>
+          <synopsis>NonzeroElements (v)</synopsis>
+          <para>Returns a row vector of the indices of nonzero elements in the vector 
<varname>v</varname>.</para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
+         <listitem>
+          <synopsis>OuterProduct (u,v)</synopsis>
+          <para>Get the outer product of two vectors.  That is, suppose that
+<varname>u</varname> and <varname>v</varname> are vertical vectors, then
+the outer product is <userinput>v * u.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
+         <listitem>
+          <synopsis>ReverseVector (v)</synopsis>
+         <para>Reverse elements in a vector.  Return <constant>null</constant> if given 
<constant>null</constant></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSum"/>RowSum</term>
+         <listitem>
+          <synopsis>RowSum (m)</synopsis>
+          <para>Вычисляет суммы элементов в каждой строке матрицы и возвращает вертикальный вектор с 
результатом.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
+         <listitem>
+          <synopsis>RowSumSquares (m)</synopsis>
+          <para>Вычисляет суммы квадратов элементов в каждой строке матрицы и возвращает вертикальный вектор 
с результатами.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
+         <listitem>
+          <synopsis>RowsOf (M)</synopsis>
+         <para>Gets the rows of a matrix as a vertical vector.  Each element
+of the vector is a horizontal vector that is the corresponding row of
+<varname>M</varname>.  This function is useful if you wish to loop over the
+rows of a matrix.  For example, as <userinput>for r in RowsOf(M) do
+something(r)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
+         <listitem>
+          <synopsis>SetMatrixSize (M,строки,столбцы)</synopsis>
+          <para>Make new matrix of given size from old one.  That is, a new
+         matrix will be returned to which the old one is copied.  Entries that
+         don't fit are clipped and extra space is filled with zeros.
+         If <varname>rows</varname> or <varname>columns</varname> are zero
+         then <constant>null</constant> is returned.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
+         <listitem>
+          <synopsis>ShuffleVector (v)</synopsis>
+         <para>Shuffle elements in a vector.  Return <constant>null</constant> if given 
<constant>null</constant>.</para>
+         <para>Version 1.0.13 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SortVector"/>SortVector</term>
+         <listitem>
+          <synopsis>SortVector (v)</synopsis>
+          <para>Sort vector elements in an increasing order.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
+         <listitem>
+          <synopsis>StripZeroColumns (M)</synopsis>
+          <para>Удаляет все состоящие только из нулей столбцы матрицы <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
+         <listitem>
+          <synopsis>StripZeroRows (M)</synopsis>
+          <para>Удаляет все состоящие только из нулей строки матрицы <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
+         <listitem>
+          <synopsis>Submatrix (m,r,c)</synopsis>
+          <para>Return column(s) and row(s) from a matrix.  This is
+just equivalent to <userinput>m@(r,c)</userinput>.  <varname>r</varname>
+and <varname>c</varname> should be vectors of rows and columns (or single numbers if only one row or column 
is needed).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
+         <listitem>
+          <synopsis>SwapRows (m,строка1,строка2)</synopsis>
+          <para>Меняет местами две строки матрицы.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
+         <listitem>
+          <synopsis>UpperTriangular (M)</synopsis>
+          <para>Возвращает копию матрицы <varname>M</varname>, в которой все элементы под диагональю 
заменены нулями.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-columns"/>columns</term>
+         <listitem>
+          <synopsis>columns (M)</synopsis>
+          <para>Возвращает число столбцов в матрице.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-elements"/>elements</term>
+         <listitem>
+          <synopsis>elements (M)</synopsis>
+          <para>Возвращает общее число элементов в матрице. Это число столбцов, умноженное на число 
строк.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ones"/>ones</term>
+         <listitem>
+          <synopsis>ones (строки,столбцы...)</synopsis>
+         <para>Создаёт матрицу, состоящую только из единиц (или строчный вектор, если задан только один 
аргумент). Возвращает <constant>null</constant>, если задано число строк или столбцов, равное нулю.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rows"/>rows</term>
+         <listitem>
+          <synopsis>rows (M)</synopsis>
+          <para>Возвращает число строк в матрице.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-zeros"/>zeros</term>
+         <listitem>
+          <synopsis>zeros (строки,столбцы...)</synopsis>
+         <para>Создаёт матрицу, состоящую только из единиц (или строчный вектор, если задан только один 
аргумент). Возвращает <constant>null</constant>, если задано число строк или столбцов, равное нулю.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-linear-algebra">
+      <title>Линейная алгебра</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
+         <listitem>
+          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
+          <para>Get the auxiliary unit matrix of size <varname>n</varname>.  This is a square matrix with 
that is all zero except the
+superdiagonal being all ones.  It is the Jordan block matrix of one zero eigenvalue.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information 
on Jordan Canonical Form.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
+         <listitem>
+          <synopsis>BilinearForm (v,A,w)</synopsis>
+          <para>Evaluate (v,w) with respect to the bilinear form given by the matrix A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
+         <listitem>
+          <synopsis>BilinearFormFunction (A)</synopsis>
+          <para>Return a function that evaluates two vectors with respect to the bilinear form given by 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomial (M)</synopsis>
+          <para>Aliases: <function>CharPoly</function></para>
+         <para>Get the characteristic polynomial as a vector.  That is, return
+the coefficients of the polynomial starting with the constant term.  This is
+the polynomial defined by <userinput>det(M-xI)</userinput>.  The roots of this
+polynomial are the eigenvalues of <varname>M</varname>.
+See also <link 
linkend="gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</link>.
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
+         <para>Get the characteristic polynomial as a function.  This is
+the polynomial defined by <userinput>det(M-xI)</userinput>.  The roots of this
+polynomial are the eigenvalues of <varname>M</varname>.
+See also <link linkend="gel-function-CharacteristicPolynomial">CharacteristicPolynomial</link>.
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
+         <listitem>
+          <synopsis>ColumnSpace (M)</synopsis>
+         <para>Get a basis matrix for the columnspace of a matrix.  That is,
+return a matrix whose columns are the basis for the column space of
+<varname>M</varname>.  That is the space spanned by the columns of
+<varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
+         <listitem>
+          <synopsis>CommutationMatrix (m, n)</synopsis>
+         <para>Return the commutation matrix <userinput>K(m,n)</userinput>, which is the unique 
<userinput>m*n</userinput> by
+                 <userinput>m*n</userinput> matrix such that <userinput>K(m,n) * MakeVector(A) = 
MakeVector(A.')</userinput> for all <varname>m</varname> by <varname>n</varname>
+                 matrices <varname>A</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
+         <listitem>
+          <synopsis>CompanionMatrix (p)</synopsis>
+          <para>Companion matrix of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
+         <listitem>
+          <synopsis>ConjugateTranspose (M)</synopsis>
+          <para>Conjugate transpose of a matrix (adjoint).  This is the
+         same as the <userinput>'</userinput> operator.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Conjugate_transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ConjugateTranspose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Convolution"/>Convolution</term>
+         <listitem>
+          <synopsis>Convolution (a,b)</synopsis>
+          <para>Aliases: <function>convol</function></para>
+          <para>Calculate convolution of two horizontal vectors.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
+         <listitem>
+          <synopsis>ConvolutionVector (a,b)</synopsis>
+          <para>Calculate convolution of two horizontal vectors.  Return
+result as a vector and not added together.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
+         <listitem>
+          <synopsis>CrossProduct (v,w)</synopsis>
+         <para>CrossProduct of two vectors in R<superscript>3</superscript> as
+                 a column vector.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Cross_product";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
+         <listitem>
+          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
+          <para>Get the determinantal divisors of an integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
+         <listitem>
+          <synopsis>DirectSum (M,N...)</synopsis>
+          <para>Direct sum of matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
+         <listitem>
+          <synopsis>DirectSumMatrixVector (v)</synopsis>
+          <para>Direct sum of a vector of matrices.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
+         <listitem>
+          <synopsis>Eigenvalues (M)</synopsis>
+          <para>Aliases: <function>eig</function></para>
+          <para>Get the eigenvalues of a square matrix.
+           Currently only works for matrices of size up to 4 by 4, or for
+           triangular matrices (for which the eigenvalues are on the
+            diagonal).
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvalue";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvalue";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvalue.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
+         <listitem>
+          <synopsis>Eigenvectors (M)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues, &amp;multiplicities)</synopsis>
+         <para>Get the eigenvectors of a square matrix.  Optionally get also
+the eigenvalues and their algebraic multiplicities.
+           Currently only works for matrices of size up to 2 by 2.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Eigenvector";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/Eigenvector";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/Eigenvector.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
+         <listitem>
+          <synopsis>GramSchmidt (v,B...)</synopsis>
+         <para>Apply the Gram-Schmidt process (to the columns) with respect to
+inner product given by <varname>B</varname>.  If <varname>B</varname> is not
+given then the standard Hermitian product is used.  <varname>B</varname> can
+either be a sesquilinear function of two arguments or it can be a matrix giving
+a sesquilinear form.  The vectors will be made orthonormal with respect to
+<varname>B</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/GramSchmidtOrthogonalization";>Planetmath</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
+         <listitem>
+          <synopsis>HankelMatrix (c,r)</synopsis>
+         <para>Hankel matrix, a matrix whose skew-diagonals are constant.  <varname>c</varname> is the first 
row and <varname>r</varname> is the
+                 last column.  It is assumed that both arguments are vectors and the last element of 
<varname>c</varname> is the same
+                 as the first element of <varname>r</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hankel_matrix";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
+         <listitem>
+          <synopsis>HilbertMatrix (n)</synopsis>
+          <para>Hilbert matrix of order <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Image"/>Image</term>
+         <listitem>
+          <synopsis>Image (T)</synopsis>
+          <para>Get the image (columnspace) of a linear transform.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
+         <listitem>
+          <synopsis>InfNorm (v)</synopsis>
+          <para>Get the Inf Norm of a vector, sometimes called the sup norm or the max norm.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
+         <listitem>
+          <synopsis>InvariantFactorsInteger (M)</synopsis>
+          <para>Get the invariant factors of a square integer matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
+         <listitem>
+          <synopsis>InverseHilbertMatrix (n)</synopsis>
+          <para>Inverse Hilbert matrix of order <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
+         <listitem>
+          <synopsis>IsHermitian (M)</synopsis>
+          <para>Is a matrix Hermitian.  That is, is it equal to its conjugate transpose.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hermitian_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/HermitianMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
+         <listitem>
+          <synopsis>IsInSubspace (v,W)</synopsis>
+          <para>Test if a vector is in a subspace.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
+         <listitem>
+          <synopsis>IsInvertible (n)</synopsis>
+          <para>Is a matrix (or number) invertible (Integer matrix is invertible if and only if it is 
invertible over the integers).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
+         <listitem>
+          <synopsis>IsInvertibleField (n)</synopsis>
+          <para>Is a matrix (or number) invertible over a field.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
+         <listitem>
+          <synopsis>IsNormal (M)</synopsis>
+          <para>Is <varname>M</varname> a normal matrix.  That is,
+         does <userinput>M*M' == M'*M</userinput>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/NormalMatrix";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
+         <listitem>
+          <synopsis>IsPositiveDefinite (M)</synopsis>
+          <para>Is <varname>M</varname> a Hermitian positive definite matrix.  That is if
+<userinput>HermitianProduct(M*v,v)</userinput> is always strictly positive for
+any vector <varname>v</varname>.
+<varname>M</varname> must be square and Hermitian to be positive definite.
+The check that is performed is that every principal submatrix has a non-negative
+determinant.
+(See <link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>
+           Note that some authors (for example Mathworld) do not require that
+           <varname>M</varname> be Hermitian, and then the condition is
+           on the real part of the inner product, but we do not take this
+           view.  If you wish to perform this check, just check the
+           Hermitian part of the matrix <varname>M</varname> as follows:
+           <userinput>IsPositiveDefinite(M+M')</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Positive-definite_matrix";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/PositiveDefinite";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
+         <listitem>
+          <synopsis>IsPositiveSemidefinite (M)</synopsis>
+          <para>Is <varname>M</varname> a Hermitian positive semidefinite matrix.  That is if
+<userinput>HermitianProduct(M*v,v)</userinput> is always non-negative for
+any vector <varname>v</varname>.
+<varname>M</varname> must be square and Hermitian to be positive semidefinite.
+The check that is performed is that every principal submatrix has a non-negative
+determinant.
+(See <link linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>
+           Note that some authors do not require that
+           <varname>M</varname> be Hermitian, and then the condition is
+           on the real part of the inner product, but we do not take this
+           view.  If you wish to perform this check, just check the
+           Hermitian part of the matrix <varname>M</varname> as follows:
+           <userinput>IsPositiveSemidefinite(M+M')</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PositiveSemidefinite";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html";>Mathworld</ulink> for 
more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
+         <listitem>
+          <synopsis>IsSkewHermitian (M)</synopsis>
+          <para>Is a matrix skew-Hermitian.  That is, is the conjugate transpose equal to negative of the 
matrix.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SkewHermitianMatrix";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
+         <listitem>
+          <synopsis>IsUnitary (M)</synopsis>
+          <para>Is a matrix unitary?  That is, does
+         <userinput>M'*M</userinput> and <userinput>M*M'</userinput>
+         equal the identity.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/UnitaryTransformation";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/UnitaryMatrix.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
+         <listitem>
+          <synopsis>JordanBlock (n,lambda)</synopsis>
+          <para>Aliases: <function>J</function></para>
+          <para>Get the Jordan block corresponding to the eigenvalue
+         <varname>lambda</varname> with multiplicity <varname>n</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Kernel"/>Kernel</term>
+         <listitem>
+          <synopsis>Kernel (T)</synopsis>
+          <para>Get the kernel (nullspace) of a linear transform.</para>
+         <para>
+         (See <link linkend="gel-function-NullSpace">NullSpace</link>)
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerProduct"/>KroneckerProduct</term>
+         <listitem>
+          <synopsis>KroneckerProduct (M, N)</synopsis>
+          <para>Aliases: <function>TensorProduct</function></para>
+         <para>
+                 Compute the Kronecker product (tensor product in standard basis)
+                 of two matrices.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Kronecker_product";>Wikipedia</ulink>, 
+           <ulink url="http://planetmath.org/KroneckerProduct";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/KroneckerProduct.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
+         <listitem>
+          <synopsis>LUDecomposition (A, L, U)</synopsis>
+          <para>
+                 Get the LU decomposition of <varname>A</varname>, that is
+                 find a lower triangular matrix and upper triangular
+                 matrix whose product is <varname>A</varname>.
+           Store the result in the <varname>L</varname> and
+           <varname>U</varname>, which should be references.  It returns <constant>true</constant>
+           if successful.
+           For example suppose that A is a square matrix, then after running:
+           <screen><prompt>genius&gt;</prompt> <userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
+</screen>
+           You will have the lower matrix stored in a variable called
+           <varname>L</varname> and the upper matrix in a variable called
+           <varname>U</varname>.
+         </para>
+         <para>
+           This is the LU decomposition of a matrix aka Crout and/or Cholesky
+           reduction.
+           (ISBN 0-201-11577-8 pp.99-103)
+           The upper triangular matrix features a diagonal
+           of values 1 (one).  This is not Doolittle's Method, which features
+           the 1's diagonal on the lower matrix. 
+         </para>
+         <para>
+           Not all matrices have LU decompositions, for example
+           <userinput>[0,1;1,0]</userinput> does not and this function returns
+           <constant>false</constant> in this case and sets <varname>L</varname>
+           and <varname>U</varname> to <constant>null</constant>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/LU_decomposition";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/LUDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/LUDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Minor"/>Minor</term>
+         <listitem>
+          <synopsis>Minor (M,i,j)</synopsis>
+          <para>Get the <varname>i</varname>-<varname>j</varname> minor of a matrix.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Minor";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
+         <listitem>
+          <synopsis>NonPivotColumns (M)</synopsis>
+          <para>Return the columns that are not the pivot columns of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Norm"/>Norm</term>
+         <listitem>
+          <synopsis>Norm (v,p...)</synopsis>
+          <para>Aliases: <function>norm</function></para>
+          <para>Get the p Norm (or 2 Norm if no p is supplied) of a vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
+         <listitem>
+          <synopsis>NullSpace (T)</synopsis>
+          <para>Get the nullspace of a matrix.  That is the kernel of the
+         linear mapping that the matrix represents.  This is returned
+         as a matrix whose column space is the nullspace of
+         <varname>T</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullspace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Nullity"/>Nullity</term>
+         <listitem>
+          <synopsis>Nullity (M)</synopsis>
+          <para>Aliases: <function>nullity</function></para>
+          <para>Get the nullity of a matrix.  That is, return the dimension of
+the nullspace; the dimension of the kernel of <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Nullity";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
+         <listitem>
+          <synopsis>OrthogonalComplement (M)</synopsis>
+          <para>Get the orthogonal complement of the columnspace.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
+         <listitem>
+          <synopsis>PivotColumns (M)</synopsis>
+          <para>Return pivot columns of a matrix, that is columns that have a leading 1 in row reduced form. 
 Also returns the row where they occur.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Projection"/>Projection</term>
+         <listitem>
+          <synopsis>Projection (v,W,B...)</synopsis>
+         <para>Projection of vector <varname>v</varname> onto subspace
+<varname>W</varname> with respect to inner product given by
+<varname>B</varname>.  If <varname>B</varname> is not given then the standard
+Hermitian product is used.  <varname>B</varname> can either be a sesquilinear
+function of two arguments or it can be a matrix giving a sesquilinear form.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
+         <listitem>
+          <synopsis>QRDecomposition (A, Q)</synopsis>
+          <para>
+           Get the QR decomposition of a square matrix <varname>A</varname>,
+           returns the upper triangular matrix <varname>R</varname>
+           and sets <varname>Q</varname> to the orthogonal (unitary) matrix.
+           <varname>Q</varname> should be a reference or <constant>null</constant> if you don't
+           want any return.
+           For example:
+           <screen><prompt>genius&gt;</prompt> <userinput>R = QRDecomposition(A,&amp;Q)</userinput>
+</screen>
+           You will have the upper triangular matrix stored in
+           a variable called
+           <varname>R</varname> and the orthogonal (unitary) matrix stored in
+           <varname>Q</varname>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/QR_decomposition";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/QRDecomposition";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/QRDecomposition.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
+         <listitem>
+          <synopsis>RayleighQuotient (A,x)</synopsis>
+          <para>Return the Rayleigh quotient (also called the Rayleigh-Ritz quotient or ratio) of a matrix 
and a vector.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
+         <listitem>
+          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</synopsis>
+          <para>Find eigenvalues of <varname>A</varname> using the Rayleigh
+               quotient iteration method.  <varname>x</varname> is a guess
+               at a eigenvector and could be random.  It should have 
+               nonzero imaginary part if it will have any chance at finding
+               complex eigenvalues.  The code will run at most
+               <varname>maxiter</varname> iterations and return <constant>null</constant>
+               if we cannot get within an error of <varname>epsilon</varname>.
+               <varname>vecref</varname> should either be <constant>null</constant> or a reference
+               to a variable where the eigenvector should be stored.
+               </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> for more information on 
Rayleigh quotient.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rank"/>Rank</term>
+         <listitem>
+          <synopsis>Rank (M)</synopsis>
+          <para>Синонимы: <function>rank</function></para>
+          <para>Возвращает ранг матрицы.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SylvestersLaw";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
+         <listitem>
+          <synopsis>RosserMatrix ()</synopsis>
+          <para>Returns the Rosser matrix, which is a classic symmetric eigenvalue test problem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
+         <listitem>
+          <synopsis>Rotation2D (angle)</synopsis>
+          <para>Aliases: <function>RotationMatrix</function></para>
+          <para>Return the matrix corresponding to rotation around origin in 
R<superscript>2</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
+         <listitem>
+          <synopsis>Rotation3DX (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the x-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
+         <listitem>
+          <synopsis>Rotation3DY (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the y-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
+         <listitem>
+          <synopsis>Rotation3DZ (angle)</synopsis>
+          <para>Return the matrix corresponding to rotation around origin in R<superscript>3</superscript> 
about the z-axis.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
+         <listitem>
+          <synopsis>RowSpace (M)</synopsis>
+          <para>Get a basis matrix for the rowspace of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
+         <listitem>
+          <synopsis>SesquilinearForm (v,A,w)</synopsis>
+          <para>Evaluate (v,w) with respect to the sesquilinear form given by the matrix A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
+         <listitem>
+          <synopsis>SesquilinearFormFunction (A)</synopsis>
+          <para>Return a function that evaluates two vectors with respect to the sesquilinear form given by 
A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
+         <listitem>
+          <synopsis>SmithNormalFormField (A)</synopsis>
+          <para>Returns the Smith normal form of a matrix over fields (will end up with 1's on the 
diagonal).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
+         <listitem>
+          <synopsis>SmithNormalFormInteger (M)</synopsis>
+          <para>Return the Smith normal form for square integer matrices over integers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
+         <listitem>
+          <synopsis>SolveLinearSystem (M,V,args...)</synopsis>
+         <para>Solve linear system Mx=V, return solution V if there is a unique solution, 
<constant>null</constant> otherwise.  Extra two reference parameters can optionally be used to get the 
reduced M and V.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
+         <listitem>
+          <synopsis>ToeplitzMatrix (c, r...)</synopsis>
+         <para>Return the Toeplitz matrix constructed given the first column c
+and (optionally) the first row r.  If only the column c is given then it is
+conjugated and the nonconjugated version is used for the first row to give a
+Hermitian matrix (if the first element is real of course).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Toeplitz_matrix";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ToeplitzMatrix";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Trace"/>Trace</term>
+         <listitem>
+          <synopsis>Trace (M)</synopsis>
+          <para>Aliases: <function>trace</function></para>
+          <para>Calculate the trace of a matrix.  That is the sum of the diagonal elements.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Trace_(linear_algebra)">Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Trace";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Transpose"/>Transpose</term>
+         <listitem>
+          <synopsis>Transpose (M)</synopsis>
+          <para>Транспозиция матрицы. То же самое, что оператор <userinput>.'</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Transpose";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Transpose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
+         <listitem>
+          <synopsis>VandermondeMatrix (v)</synopsis>
+          <para>Aliases: <function>vander</function></para>
+          <para>Return the Vandermonde matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Vandermonde_matrix";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
+         <listitem>
+          <synopsis>VectorAngle (v,w,B...)</synopsis>
+          <para>The angle of two vectors with respect to inner product given by
+<varname>B</varname>.  If <varname>B</varname> is not given then the standard
+Hermitian product is used.  <varname>B</varname> can either be a sesquilinear
+function of two arguments or it can be a matrix giving a sesquilinear form.
+</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
+         <listitem>
+          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
+          <para>The direct sum of the vector spaces M and N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
+         <listitem>
+          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
+          <para>Intersection of the subspaces given by M and N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
+         <listitem>
+          <synopsis>VectorSubspaceSum (M,N)</synopsis>
+          <para>The sum of the vector spaces M and N, that is {w | w=m+n, m in M, n in N}.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-adj"/>adj</term>
+         <listitem>
+          <synopsis>adj (m)</synopsis>
+          <para>Aliases: <function>Adjugate</function></para>
+          <para>Get the classical adjoint (adjugate) of a matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cref"/>cref</term>
+         <listitem>
+          <synopsis>cref (M)</synopsis>
+          <para>Aliases: <function>CREF</function> <function>ColumnReducedEchelonForm</function></para>
+          <para>Compute the Column Reduced Echelon Form.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-det"/>det</term>
+         <listitem>
+          <synopsis>det (M)</synopsis>
+          <para>Aliases: <function>Determinant</function></para>
+          <para>Get the determinant of a matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Determinant";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/Determinant2";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ref"/>ref</term>
+         <listitem>
+          <synopsis>ref (M)</synopsis>
+          <para>Aliases: <function>REF</function> <function>RowEchelonForm</function></para>
+         <para>Get the row echelon form of a matrix.  That is, apply gaussian
+elimination but not backaddition to <varname>M</varname>.  The pivot rows are
+divided to make all pivots 1.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/RowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rref"/>rref</term>
+         <listitem>
+          <synopsis>rref (M)</synopsis>
+          <para>Aliases: <function>RREF</function> <function>ReducedRowEchelonForm</function></para>
+          <para>Get the reduced row echelon form of a matrix.  That is, apply gaussian elimination together 
with backaddition to <varname>M</varname>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Reduced_row_echelon_form";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ReducedRowEchelonForm";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-combinatorics">
+      <title>Комбинаторика</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Catalan"/>Catalan</term>
+         <listitem>
+          <synopsis>Catalan (n)</synopsis>
+          <para>Возвращает <varname>n</varname>-ое число Каталана.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CatalanNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Combinations"/>Combinations</term>
+         <listitem>
+          <synopsis>Combinations (k,n)</synopsis>
+          <para>Get all combinations of k numbers from 1 to n as a vector of vectors.
+         (See also <link linkend="gel-function-NextCombination">NextCombination</link>)
+</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
+         <listitem>
+          <synopsis>DoubleFactorial (n)</synopsis>
+          <para>Двойной факториал: <userinput>n(n-2)(n-4)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/DoubleFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorial"/>Factorial</term>
+         <listitem>
+          <synopsis>Factorial (n)</synopsis>
+          <para>Факториал: <userinput>n(n-1)(n-2)...</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Factorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
+         <listitem>
+          <synopsis>FallingFactorial (n,k)</synopsis>
+          <para>Убывающий факториал: <userinput>(n)_k = n(n-1)...(n-(k-1))</userinput></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FallingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
+         <listitem>
+          <synopsis>Fibonacci (x)</synopsis>
+          <para>Синонимы: <function>fib</function></para>
+          <para>Вычисляет <varname>n</varname>-ое число Фибоначчи. Это число, вычисляемое рекурсивно по 
формулам <userinput>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</userinput> и <userinput>Fibonacci(1) = 
Fibonacci(2) = 1</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fibonacci_number";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/FibonacciSequence";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FibonacciNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
+         <listitem>
+          <synopsis>FrobeniusNumber (v,arg...)</synopsis>
+          <para>
+           Calculate the Frobenius number.  That is calculate largest
+           number that cannot be given as a non-negative integer linear
+           combination of a given vector of non-negative integers.
+           The vector can be given as separate numbers or a single vector.
+           All the numbers given should have GCD of 1.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Coin_problem";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FrobeniusNumber.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
+         <listitem>
+          <synopsis>GaloisMatrix (combining_rule)</synopsis>
+          <para>Galois matrix given a linear combining rule (a_1*x_1+...+a_n*x_n=x_(n+1)).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
+         <listitem>
+          <synopsis>GreedyAlgorithm (n,v)</synopsis>
+          <para>
+           Find the vector <varname>c</varname> of non-negative integers
+           such that taking the dot product with <varname>v</varname> is
+           equal to n.  If not possible returns <constant>null</constant>.  <varname>v</varname>
+           should be given sorted in increasing order and should consist
+           of non-negative integers.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Greedy_algorithm";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/GreedyAlgorithm.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
+         <listitem>
+          <synopsis>HarmonicNumber (n,r)</synopsis>
+          <para>Aliases: <function>HarmonicH</function></para>
+         <para>Harmonic Number, the <varname>n</varname>th harmonic number of order <varname>r</varname>.
+               That is, it is the sum of <userinput>1/k^r</userinput> for <varname>k</varname>
+               from 1 to n.  Equivalent to <userinput>sum k = 1 to n do 1/k^r</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Harmonic_number";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
+         <listitem>
+          <synopsis>Hofstadter (n)</synopsis>
+          <para>Hofstadter's function q(n) defined by q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2)).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Hofstadter_sequence";>Wikipedia</ulink> for more 
information.
+           The sequence is <ulink url="https://oeis.org/A005185";>A005185 in OEIS</ulink>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
+         <listitem>
+          <synopsis>LinearRecursiveSequence (seed_values,combining_rule,n)</synopsis>
+          <para>Compute linear recursive sequence using Galois stepping.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
+         <listitem>
+          <synopsis>Multinomial (v,arg...)</synopsis>
+          <para>Calculate multinomial coefficients.  Takes a vector of
+           <varname>k</varname>
+           non-negative integers and computes the multinomial coefficient.
+           This corresponds to the coefficient in the homogeneous polynomial
+           in <varname>k</varname> variables with the corresponding powers.
+         </para>
+         <para>
+           The formula for <userinput>Multinomial(a,b,c)</userinput>
+           can be written as:
+<programlisting>(a+b+c)! / (a!b!c!)
+</programlisting>
+           In other words, if we would have only two elements, then
+<userinput>Multinomial(a,b)</userinput> is the same thing as
+<userinput>Binomial(a+b,a)</userinput> or
+<userinput>Binomial(a+b,b)</userinput>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Multinomial_theorem";>Wikipedia</ulink>,
+           <ulink url="http://planetmath.org/MultinomialTheorem";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/MultinomialCoefficient.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
+         <listitem>
+          <synopsis>NextCombination (v,n)</synopsis>
+         <para>Get combination that would come after v in call to
+combinations, first combination should be <userinput>[1:k]</userinput>.  This
+function is useful if you have many combinations to go through and you don't
+want to waste memory to store them all.
+         </para>
+         <para>
+           For example with Combinations you would normally write a loop like:
+          <screen><userinput>for n in Combinations (4,6) do (
+  SomeFunction (n)
+);</userinput>
+</screen>
+           But with NextCombination you would write something like:
+          <screen><userinput>n:=[1:4];
+do (
+  SomeFunction (n)
+) while not IsNull(n:=NextCombination(n,6));</userinput>
+</screen>
+         See also <link linkend="gel-function-Combinations">Combinations</link>.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Pascal"/>Pascal</term>
+         <listitem>
+          <synopsis>Pascal (i)</synopsis>
+          <para>Get the Pascal's triangle as a matrix.  This will return
+         an <varname>i</varname>+1 by <varname>i</varname>+1 lower diagonal
+         matrix that is the Pascal's triangle after <varname>i</varname>
+         iterations.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PascalsTriangle";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Permutations"/>Permutations</term>
+         <listitem>
+          <synopsis>Permutations (k,n)</synopsis>
+          <para>Get all permutations of <varname>k</varname> numbers from 1 to <varname>n</varname> as a 
vector of vectors.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
+         <listitem>
+          <synopsis>RisingFactorial (n,k)</synopsis>
+          <para>Aliases: <function>Pochhammer</function></para>
+          <para>(Pochhammer) Rising factorial: (n)_k = n(n+1)...(n+(k-1)).</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RisingFactorial";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
+         <listitem>
+          <synopsis>StirlingNumberFirst (n,m)</synopsis>
+          <para>Aliases: <function>StirlingS1</function></para>
+          <para>Stirling number of the first kind.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersOfTheFirstKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html";>Mathworld</ulink> for 
more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
+         <listitem>
+          <synopsis>StirlingNumberSecond (n,m)</synopsis>
+          <para>Aliases: <function>StirlingS2</function></para>
+          <para>Stirling number of the second kind.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/StirlingNumbersSecondKind";>Planetmath</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html";>Mathworld</ulink> 
for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
+         <listitem>
+          <synopsis>Subfactorial (n)</synopsis>
+          <para>Subfactorial: n! times sum_{k=0}^n (-1)^k/k!.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Triangular"/>Triangular</term>
+         <listitem>
+          <synopsis>Triangular (nth)</synopsis>
+          <para>Calculate the <varname>n</varname>th triangular number.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/TriangularNumbers";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nCr"/>nCr</term>
+         <listitem>
+          <synopsis>nCr (n,r)</synopsis>
+          <para>Aliases: <function>Binomial</function></para>
+          <para>Calculate combinations, that is, the binomial coefficient.
+               <varname>n</varname> can be any real number.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/Choose";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nPr"/>nPr</term>
+         <listitem>
+          <synopsis>nPr (n,r)</synopsis>
+          <para>Calculate the number of permutations of size
+          <varname>r</varname> of numbers from 1 to <varname>n</varname>.</para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-calculus">
+      <title>Calculus</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
+          <para>Integration of f by Composite Simpson's Rule on the interval [a,b] with n subintervals with 
error of max(f'''')*h^4*(b-a)/180, note that n should be even.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,FourthDerivativeBound,Tolerance)</synopsis>
+          <para>Integration of f by Composite Simpson's Rule on the interval [a,b] with the number of steps 
calculated by the fourth derivative bound and the desired tolerance.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Derivative"/>Derivative</term>
+         <listitem>
+          <synopsis>Derivative (f,x0)</synopsis>
+          <para>Attempt to calculate derivative by trying first symbolically and then numerically.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
+         <listitem>
+          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
+         <para>Return a function that is the even periodic extension of
+<function>f</function> with half period <varname>L</varname>.  That
+is a function defined on the interval <userinput>[0,L]</userinput>
+extended to be even on <userinput>[-L,L]</userinput> and then
+extended to be periodic with period <userinput>2*L</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link>
+           and
+           <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
+         <listitem>
+          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
+         <para>Return a function that is a Fourier series with the
+coefficients given by the vectors <varname>a</varname> (sines) and
+<varname>b</varname> (cosines).  Note that <userinput>a@(1)</userinput> is
+the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
+the term <userinput>cos(x*(n-1)*pi/L)</userinput>, while
+<userinput>b@(n)</userinput> refers to the term
+<userinput>sin(x*n*pi/L)</userinput>.  Either <varname>a</varname>
+or <varname>b</varname> can be <constant>null</constant>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
+         <listitem>
+          <synopsis>InfiniteProduct (func,start,inc)</synopsis>
+          <para>Try to calculate an infinite product for a single parameter function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
+         <listitem>
+          <synopsis>InfiniteProduct2 (func,arg,start,inc)</synopsis>
+          <para>Try to calculate an infinite product for a double parameter function with func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
+         <listitem>
+          <synopsis>InfiniteSum (func,start,inc)</synopsis>
+          <para>Try to calculate an infinite sum for a single parameter function.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
+         <listitem>
+          <synopsis>InfiniteSum2 (func,arg,start,inc)</synopsis>
+          <para>Try to calculate an infinite sum for a double parameter function with func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
+         <listitem>
+          <synopsis>IsContinuous (f,x0)</synopsis>
+          <para>Try and see if a real-valued function is continuous at x0 by calculating the limit 
there.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
+         <listitem>
+          <synopsis>IsDifferentiable (f,x0)</synopsis>
+          <para>Test for differentiability by approximating the left and right limits and comparing.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
+         <listitem>
+          <synopsis>LeftLimit (f,x0)</synopsis>
+          <para>Calculate the left limit of a real-valued function at x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Limit"/>Limit</term>
+         <listitem>
+          <synopsis>Limit (f,x0)</synopsis>
+          <para>Calculate the limit of a real-valued function at x0.  Tries to calculate both left and right 
limits.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
+         <listitem>
+          <synopsis>MidpointRule (f,a,b,n)</synopsis>
+          <para>Integration by midpoint rule.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
+         <listitem>
+          <synopsis>NumericalDerivative (f,x0)</synopsis>
+          <para>Aliases: <function>NDerivative</function></para>
+          <para>Attempt to calculate numerical derivative.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of vectors <userinput>[a,b]</userinput>
+where <varname>a</varname> are the cosine coefficients and
+<varname>b</varname> are the sine coefficients of
+the Fourier series of
+<function>f</function> with half-period <varname>L</varname> (that is defined
+on <userinput>[-L,L]</userinput> and extended periodically) with coefficients
+up to <varname>N</varname>th harmonic computed numerically.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the Fourier series of
+<function>f</function> with half-period <varname>L</varname> (that is defined
+on <userinput>[-L,L]</userinput> and extended periodically) with coefficients
+up to <varname>N</varname>th harmonic computed numerically.  This is the
+trigonometric real series composed of sines and cosines.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of coefficients of 
+the cosine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the even periodic extension and compute the Fourier series, which
+only has cosine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.
+Note that <userinput>a@(1)</userinput> is
+the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
+the term <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the cosine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the even periodic extension and compute the Fourier series, which
+only has cosine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Return a vector of coefficients of 
+the sine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the odd periodic extension and compute the Fourier series, which
+only has sine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
+         <para>Return a function that is the sine Fourier series of
+<function>f</function> with half-period <varname>L</varname>.  That is,
+we take <function>f</function> defined on <userinput>[0,L]</userinput>
+take the odd periodic extension and compute the Fourier series, which
+only has sine terms.  The series is computed up to the 
+<varname>N</varname>th harmonic.  The coefficients are
+computed by numerical integration using
+<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> for more 
information.
+          </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
+         <listitem>
+          <synopsis>NumericalIntegral (f,a,b)</synopsis>
+          <para>Integration by rule set in NumericalIntegralFunction of f from a to b using 
NumericalIntegralSteps steps.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
+         <listitem>
+          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
+          <para>Attempt to calculate numerical left derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
+         <listitem>
+          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerance,successive_for_success,N)</synopsis>
+          <para>Attempt to calculate the limit of f(step_fun(i)) as i goes from 1 to N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
+         <listitem>
+          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
+          <para>Attempt to calculate numerical right derivative.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
+         <listitem>
+          <synopsis>OddPeriodicExtension (f,L)</synopsis>
+         <para>Return a function that is the odd periodic extension of
+<function>f</function> with half period <varname>L</varname>.  That
+is a function defined on the interval <userinput>[0,L]</userinput>
+extended to be odd on <userinput>[-L,L]</userinput> and then
+extended to be periodic with period <userinput>2*L</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>
+           and
+           <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Compute one-sided derivative using five point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Compute one-sided derivative using three-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
+         <listitem>
+          <synopsis>PeriodicExtension (f,a,b)</synopsis>
+         <para>Return a function that is the periodic extension of
+<function>f</function> defined on the interval <userinput>[a,b]</userinput>
+and has period <userinput>b-a</userinput>.</para>
+         <para>
+           See also
+           <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link>
+           and
+           <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.
+         </para>
+         <para>Version 1.0.7 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
+         <listitem>
+          <synopsis>RightLimit (f,x0)</synopsis>
+          <para>Calculate the right limit of a real-valued function at x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Compute two-sided derivative using five-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Compute two-sided derivative using three-point formula.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-functions">
+      <title>Functions</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Argument"/>Argument</term>
+         <listitem>
+          <synopsis>Argument (z)</synopsis>
+          <para>Aliases: <function>Arg</function> <function>arg</function></para>
+          <para>argument (angle) of complex number.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
+         <listitem>
+          <synopsis>BesselJ0 (x)</synopsis>
+          <para>Bessel function of the first kind of order 0.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
+         <listitem>
+          <synopsis>BesselJ1 (x)</synopsis>
+          <para>Bessel function of the first kind of order 1.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
+         <listitem>
+          <synopsis>BesselJn (n,x)</synopsis>
+         <para>Bessel function of the first kind of order <varname>n</varname>.  Only implemented for real 
numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
+         <listitem>
+          <synopsis>BesselY0 (x)</synopsis>
+          <para>Bessel function of the second kind of order 0.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
+         <listitem>
+          <synopsis>BesselY1 (x)</synopsis>
+          <para>Bessel function of the second kind of order 1.  Only implemented for real numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
+         <listitem>
+          <synopsis>BesselYn (n,x)</synopsis>
+         <para>Bessel function of the second kind of order <varname>n</varname>.  Only implemented for real 
numbers.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
+         <listitem>
+          <synopsis>DirichletKernel (n,t)</synopsis>
+         <para>Dirichlet kernel of order <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
+         <listitem>
+          <synopsis>DiscreteDelta (v)</synopsis>
+          <para>Returns 1 if and only if all elements are zero.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
+         <listitem>
+          <synopsis>ErrorFunction (x)</synopsis>
+          <para>Aliases: <function>erf</function></para>
+          <para>The error function, 2/sqrt(pi) * int_0^x e^(-t^2) dt.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Error_function";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/ErrorFunction";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
+         <listitem>
+          <synopsis>FejerKernel (n,t)</synopsis>
+          <para>Fejer kernel of order <varname>n</varname> evaluated at
+               <varname>t</varname></para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/FejerKernel";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
+         <listitem>
+          <synopsis>GammaFunction (x)</synopsis>
+          <para>Aliases: <function>Gamma</function></para>
+          <para>The Gamma function.  Currently only implemented for real values.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/GammaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Gamma_function";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
+         <listitem>
+          <synopsis>KroneckerDelta (v)</synopsis>
+          <para>Returns 1 if and only if all elements are equal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertW"/>LambertW</term>
+         <listitem>
+          <synopsis>LambertW (x)</synopsis>
+         <para>
+                 The principal branch of Lambert W function computed for only
+                 real values greater than or equal to <userinput>-1/e</userinput>.
+                 That is, <function>LambertW</function> is the inverse of
+                 the expression <userinput>x*e^x</userinput>.  Even for
+                 real <varname>x</varname> this expression is not one to one and
+                 therefore has two branches over <userinput>[-1/e,0)</userinput>.
+                 See <link linkend="gel-function-LambertWm1"><function>LambertWm1</function></link> for the 
other real branch.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertWm1"/>LambertWm1</term>
+         <listitem>
+          <synopsis>LambertWm1 (x)</synopsis>
+         <para>
+                 The minus-one branch of Lambert W function computed for only
+                 real values greater than or equal to <userinput>-1/e</userinput>
+                 and less than 0.
+                 That is, <function>LambertWm1</function> is the second
+                 branch of the inverse of <userinput>x*e^x</userinput>.
+                 See <link linkend="gel-function-LambertW"><function>LambertW</function></link> for the 
principal branch.
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
+         <listitem>
+          <synopsis>MinimizeFunction (func,x,incr)</synopsis>
+          <para>Find the first value where f(x)=0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
+         <listitem>
+          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
+          <para>Moebius mapping of the disk to itself mapping a to 0.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
+         <listitem>
+          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking z2,z3,z4 to 1,0, and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to infinity and z2,z3 to 1 and 0 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to 1 and z3,z4 to 0 and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
+          <para>Moebius mapping using the cross ratio taking infinity to 0 and z2,z4 to 1 and infinity 
respectively.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> or
+           <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
+         <listitem>
+          <synopsis>PoissonKernel (r,sigma)</synopsis>
+          <para>Poisson kernel on D(0,1) (not normalized to 1, that is integral of this is 2pi).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
+         <listitem>
+          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
+          <para>Poisson kernel on D(0,R) (not normalized to 1).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
+         <listitem>
+          <synopsis>RiemannZeta (x)</synopsis>
+          <para>Aliases: <function>zeta</function></para>
+          <para>The Riemann zeta function.  Currently only implemented for real values.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/RiemannZetaFunction";>Planetmath</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Riemann_zeta_function";>Wikipedia</ulink> for more 
information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
+         <listitem>
+          <synopsis>UnitStep (x)</synopsis>
+          <para>The unit step function is 0 for x&lt;0, 1 otherwise.  This is the integral of the Dirac 
Delta function.  Also called the Heaviside function.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Unit_step";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cis"/>cis</term>
+         <listitem>
+          <synopsis>cis (x)</synopsis>
+          <para>Функция <function>cis</function>, то же самое, что 
<userinput>cos(x)+1i*sin(x)</userinput></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
+         <listitem>
+          <synopsis>deg2rad (x)</synopsis>
+          <para>Преобразует градусы в радианы.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
+         <listitem>
+          <synopsis>rad2deg (x)</synopsis>
+          <para>Преобразует радианы в градусы.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinc"/>sinc</term>
+         <listitem>
+          <synopsis>sinc (x)</synopsis>
+         <para>Calculates the unnormalized sinc function, that is
+                 <userinput>sin(x)/x</userinput>.
+                 If you want the normalized function call <userinput>sinc(pi*x)</userinput>.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Sinc";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-equation-solving">
+      <title>Решение уравнений</title>
+      <variablelist>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
+         <listitem>
+          <synopsis>CubicFormula (p)</synopsis>
+          <para>
+           Compute roots of a cubic (degree 3) polynomial using the
+           cubic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>4*x^3 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,4]</userinput>.
+           Returns a column vector of the three solutions.  The first solution is always
+           the real one as a cubic always has one real solution.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/CubicFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/CubicFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Cubic_equation";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
+         <listitem>
+          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns <varname>y</varname> at <varname>x1</varname>.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKutta">RungeKutta</link>
+           for solving ODE.
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
+         <listitem>
+          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical Euler's method to numerically solve y'=f(x,y) for
+           initial <varname>x0</varname>, <varname>y0</varname> going to
+           <varname>x1</varname> with <varname>n</varname> increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.
+           Unless you explicitly want to use Euler's method, you should really
+           think about using
+           <link linkend="gel-function-RungeKuttaFull">RungeKuttaFull</link>
+           for solving ODE.
+           Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
+         <listitem>
+          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the bisection method.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
+         <listitem>
+          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the method of false position.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
+         <listitem>
+          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
+          <para>Find root of a function using the Muller's method.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
+         <listitem>
+          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
+          <para>Find root of a function using the secant method.
+                 <varname>a</varname> and <varname>b</varname> are the initial guess interval,
+                 <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
+           <varname>TOL</varname> is the desired tolerance and
+<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>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
+         <listitem>
+          <synopsis>HalleysMethod (f,df,ddf,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Halley's method.  <varname>f</varname> is
+                 the function, <varname>df</varname> is the derivative of
+                 <varname>f</varname>, and <varname>ddf</varname> is the second derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link> and 
<link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Halley%27s_method";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethod"/>NewtonsMethod</term>
+         <listitem>
+          <synopsis>NewtonsMethod (f,df,guess,epsilon,maxn)</synopsis>
+         <para>Find zeros using Newton's method.  <varname>f</varname> is
+                 the function and <varname>df</varname> is the derivative of
+                 <varname>f</varname>.  <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link 
linkend="gel-function-NewtonsMethodPoly"><function>NewtonsMethodPoly</function></link> and <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
+         <listitem>
+          <synopsis>PolynomialRoots (p)</synopsis>
+          <para>
+           Compute roots of a polynomial (degrees 1 through 4)
+           using one of the formulas for such polynomials.
+           The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>4*x^3 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,4]</userinput>.
+           Returns a column vector of the solutions.
+         </para>
+         <para>
+           The function calls
+           <link linkend="gel-function-QuadraticFormula">QuadraticFormula</link>,
+           <link linkend="gel-function-CubicFormula">CubicFormula</link>, and
+           <link linkend="gel-function-QuarticFormula">QuarticFormula</link>.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
+         <listitem>
+          <synopsis>QuadraticFormula (p)</synopsis>
+          <para>
+           Compute roots of a quadratic (degree 2) polynomial using the
+           quadratic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>3*x^2 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,3]</userinput>.
+           Returns a column vector of the two solutions.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuadraticFormula";>Planetmath</ulink>, or
+           <ulink url="http://mathworld.wolfram.com/QuadraticFormula.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quadratic_formula";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
+         <listitem>
+          <synopsis>QuarticFormula (p)</synopsis>
+          <para>
+           Compute roots of a quartic (degree 4) polynomial using the
+           quartic formula.  The polynomial should be given as a
+           vector of coefficients.  That is
+           <userinput>5*x^4 + 2*x + 1</userinput> corresponds to the vector
+            <userinput>[1,2,0,0,5]</userinput>.
+           Returns a column vector of the four solutions.
+         </para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/QuarticFormula";>Planetmath</ulink>,
+           <ulink url="http://mathworld.wolfram.com/QuarticEquation.html";>Mathworld</ulink>, or
+           <ulink url="https://en.wikipedia.org/wiki/Quartic_equation";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
+         <listitem>
+          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments, returns <varname>y</varname> at <varname>x1</varname>.
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
+         <listitem>
+          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
+          <para>
+           Use classical non-adaptive fourth order Runge-Kutta method to
+           numerically solve
+           y'=f(x,y) for initial <varname>x0</varname>, <varname>y0</varname>
+           going to <varname>x1</varname> with <varname>n</varname>
+           increments,
+           returns an <userinput>n+1</userinput> by 2 matrix with the
+           <varname>x</varname> and <varname>y</varname> values.  Suitable
+           for plugging into 
+           <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> or
+           <link linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.
+         </para>
+         <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");</userinput>
+</screen>
+         </para>
+         <para>
+           Systems can be solved by just having <varname>y</varname> be a
+           (column) vector everywhere.  That is, <varname>y0</varname> can
+           be a vector in which case <varname>f</varname> should take a number
+           <varname>x</varname> and a vector of the same size for the second
+           argument and should return a vector of the same size.
+         </para>
+         <para>
+                 The output for a system is still a n by 2 matrix with the second
+                 entry being a vector.  If you wish to plot the line, make sure to use row vectors, and then 
flatten the matrix with
+                 <link linkend="gel-function-ExpandMatrix">ExpandMatrix</link>,
+                 and pick out the right columns.  Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","First");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> or
+           <ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> for more 
information.
+         </para>
+         <para>Version 1.0.10 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-statistics">
+      <title>Статистика</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Average"/>Average</term>
+         <listitem>
+          <synopsis>Average (m)</synopsis>
+          <para>Псевдонимы: 
<function>average</function><function>Mean</function><function>mean</function></para>
+          <para>Calculate average (the arithmetic mean) of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
+         <listitem>
+          <synopsis>GaussDistribution (x,sigma)</synopsis>
+         <para>Integral of the GaussFunction from 0 to <varname>x</varname> (area under the normal 
curve).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
+         <listitem>
+          <synopsis>GaussFunction (x,sigma)</synopsis>
+          <para>The normalized Gauss distribution function (the normal curve).</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> for more 
information.
+         </para>
+
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Median"/>Median</term>
+         <listitem>
+          <synopsis>Median (m)</synopsis>
+          <para>Aliases: <function>median</function></para>
+          <para>Calculate median of an entire matrix.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>PopulationStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>stdevp</function></para>
+          <para>Calculate the population standard deviation of a whole matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
+         <listitem>
+          <synopsis>RowAverage (m)</synopsis>
+          <para>Aliases: <function>RowMean</function></para>
+         <para>Calculate average of each row in a matrix.  That is, compute the
+         arithmetic mean.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
+         <listitem>
+          <synopsis>RowMedian (m)</synopsis>
+          <para>Calculate median of each row in a matrix and return a column
+         vector of the medians.</para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> or
+           <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> for more 
information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>rowstdevp</function></para>
+          <para>Calculate the population standard deviations of rows of a matrix and return a vertical 
vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
+         <listitem>
+          <synopsis>RowStandardDeviation (m)</synopsis>
+          <para>Aliases: <function>rowstdev</function></para>
+          <para>Calculate the standard deviations of rows of a matrix and return a vertical vector.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+        <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
+         <listitem>
+          <synopsis>StandardDeviation (m)</synopsis>
+          <para>Aliases: <function>stdev</function></para>
+          <para>Calculate the standard deviation of a whole matrix.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-polynomials">
+      <title>Многочлены</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
+         <listitem>
+          <synopsis>AddPoly (p1,p2)</synopsis>
+          <para>Складывает два многочлена (в виде векторов).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
+         <listitem>
+          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
+          <para>Divide two polynomials (as vectors) using long division.
+          Returns the quotient
+          of the two polynomials.  The optional argument <varname>r</varname>
+          is used to return the remainder.  The remainder will have lower
+          degree than <varname>q</varname>.</para>
+          <para>
+           See
+           <ulink url="http://planetmath.org/PolynomialLongDivision";>Planetmath</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
+         <listitem>
+          <synopsis>IsPoly (p)</synopsis>
+          <para>Проверяет, можно ли использовать вектор в качестве многочлена.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
+         <listitem>
+          <synopsis>MultiplyPoly (p1,p2)</synopsis>
+          <para>Умножает два многочлена (в виде векторов).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
+         <listitem>
+          <synopsis>NewtonsMethodPoly (poly,guess,epsilon,maxn)</synopsis>
+         <para>Find a root of a polynomial using Newton's method.  <varname>poly</varname> is
+                 the polynomial as a vector and <varname>guess</varname> is the initial
+                 guess.  The function returns after two successive values are
+                 within <varname>epsilon</varname> of each other, or after <varname>maxn</varname> tries, in 
which case the function returns <constant>null</constant> indicating failure.
+         </para>
+         <para>
+         See also <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link>.
+         </para>
+         <para>
+           Example to find the square root of 10:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
+</screen>
+         </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> for more information.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
+         <listitem>
+          <synopsis>Poly2ndDerivative (p)</synopsis>
+          <para>Находит вторую производную многочлена (как вектора).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
+         <listitem>
+          <synopsis>PolyDerivative (p)</synopsis>
+          <para>Находит производную многочлена (как вектора).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
+         <listitem>
+          <synopsis>PolyToFunction (p)</synopsis>
+          <para>Make function out of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
+         <listitem>
+          <synopsis>PolyToString (p,var...)</synopsis>
+          <para>Make string out of a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
+         <listitem>
+          <synopsis>SubtractPoly (p1,p2)</synopsis>
+          <para>Subtract two polynomials (as vectors).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
+         <listitem>
+          <synopsis>TrimPoly (p)</synopsis>
+          <para>Trim zeros from a polynomial (as vector).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-set-theory">
+      <title>Теория множеств</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Intersection"/>Intersection</term>
+         <listitem>
+          <synopsis>Intersection (X,Y)</synopsis>
+          <para>Возвращает пересечение множеств X и Y (X и Y — векторы, изображающие множества).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIn"/>IsIn</term>
+         <listitem>
+          <synopsis>IsIn (x,X)</synopsis>
+         <para>Возвращает <constant>true</constant>, если элемент x присуствует в множестве X (где X — 
вектор, изображающий множество).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
+         <listitem>
+          <synopsis>IsSubset (X, Y)</synopsis>
+         <para>Возвращает <constant>true</constant>, если X является подмножеством Y (X и Y — векторы, 
изображающие множество).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
+         <listitem>
+          <synopsis>MakeSet (X)</synopsis>
+          <para>Returns a vector where every element of X appears only once.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
+         <listitem>
+          <synopsis>SetMinus (X,Y)</synopsis>
+          <para>Returns a set theoretic difference X-Y (X and Y are vectors pretending to be sets).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Union"/>Union</term>
+         <listitem>
+          <synopsis>Union (X,Y)</synopsis>
+          <para>Возвращает объединение множеств X и Y (X и Y — векторы, изображающие множества).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-commutative-algebra">
+      <title>Commutative Algebra</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
+         <listitem>
+          <synopsis>MacaulayBound (c,d)</synopsis>
+          <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>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+       
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
+         <listitem>
+          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
+          <para>The c_&lt;d&gt; operator from Green's proof of Macaulay's Theorem.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
+         <listitem>
+          <synopsis>MacaulayRep (c,d)</synopsis>
+          <para>Return the dth Macaulay representation of a positive integer c.</para>
+         <para>Version 1.0.15 onwards.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-miscellaneous">
+      <title>Прочие</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
+         <listitem>
+          <synopsis>ASCIIToString (vec)</synopsis>
+          <para>Convert a vector of ASCII values to a string.
+                 See also
+                 <link linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
+= "abc"
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
+         <listitem>
+          <synopsis>AlphabetToString (vec,alphabet)</synopsis>
+         <para>Convert a vector of 0-based alphabet values (positions in the alphabet string) to a string.  
A <constant>null</constant> vector results in an empty string.
+                 See also
+                 <link linkend="gel-function-StringToAlphabet"><function>StringToAlphabet</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>AlphabetToString([1,2,3,0,0],"abcd")</userinput>
+= "bcdaa"
+<prompt>genius&gt;</prompt> <userinput>AlphabetToString(null,"abcd")</userinput>
+= ""
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
+         <listitem>
+          <synopsis>StringToASCII (str)</synopsis>
+         <para>Convert a string to a (row) vector of ASCII values.
+                 See also
+                 <link linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.
+          </para>
+          <para>
+           Example:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
+= [97, 98, 99]
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
+         <listitem>
+          <synopsis>StringToAlphabet (str,alphabet)</synopsis>
+         <para>Convert a string to a (row) vector of 0-based alphabet values
+                 (positions in the alphabet string), -1's for unknown letters.
+                 An empty string results in a <constant>null</constant>.
+                 See also
+                 <link linkend="gel-function-AlphabetToString"><function>AlphabetToString</function></link>.
+          </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>StringToAlphabet("cca","abcd")</userinput>
+= [2, 2, 0]
+<prompt>genius&gt;</prompt> <userinput>StringToAlphabet("ccag","abcd")</userinput>
+= [2, 2, 0, -1]
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-symbolic">
+      <title>Symbolic Operations</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
+         <listitem>
+          <synopsis>SymbolicDerivative (f)</synopsis>
+          <para>Attempt to symbolically differentiate the function f, where f is a function of one 
variable.</para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(sin)</userinput>
+= (`(x)=cos(x))
+<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
+= (`(x)=(7*(2*x)))
+</screen>
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicDerivativeTry (f)</synopsis>
+         <para>Attempt to symbolically differentiate the function f, where f is a function of one variable, 
returns <constant>null</constant> if unsuccessful but is silent.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
+          <para>Attempt to symbolically differentiate a function n times.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
+         <para>Attempt to symbolically differentiate a function n times quietly and return 
<constant>null</constant> on failure
+         (See <link 
linkend="gel-function-SymbolicNthDerivative"><function>SymbolicNthDerivative</function></link>)
+          </para>
+          <para>
+           See
+           <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> for more information.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
+         <listitem>
+          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
+         <para>Attempt to construct the Taylor approximation function around x0 to the nth degree.
+         (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
+          </para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-plotting">
+      <title>Построение графиков</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
+         <listitem>
+          <synopsis>ExportPlot (file,type)</synopsis>
+          <synopsis>ExportPlot (file)</synopsis>
+          <para>
+                 Export the contents of the plotting window to a file.
+                 The type is a string that specifies the file type to
+                 use, "png", "eps", or "ps".  If the type is not
+                 specified, then it is taken to be the extension, in
+                 which case the extension must be ".png", ".eps", or ".ps".
+         </para>
+         <para>
+                 Note that files are overwritten without asking.
+         </para>
+         <para>
+                 On successful export, true is returned.  Otherwise
+                 error is printed and exception is raised.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>ExportPlot("file.png")</userinput>
+<prompt>genius&gt;</prompt> <userinput>ExportPlot("/directory/file","eps")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
+         <listitem>
+          <synopsis>LinePlot (func1,func2,func3,...)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2])</synopsis>
+          <synopsis>LinePlot (func1,func2,func3,[x1,x2,y1,y2])</synopsis>
+          <para>
+           Plot a function (or several functions) with a line.
+           First (up to 10) arguments are functions, then optionally
+            you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>)
+           If the y limits are not specified, then the functions are computed and then the maxima and minima
+           are used.
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
+         <listitem>
+          <synopsis>LinePlotClear ()</synopsis>
+          <para>
+            Show the line plot window and clear out functions and any other
+            lines that were drawn.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
+         <listitem>
+          <synopsis>LinePlotCParametric (func,...)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotCParametric (func,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <para>
+           Plot a parametric complex valued function with a line.  First comes
+the function that returns <computeroutput>x+iy</computeroutput>,
+then optionally the <varname>t</varname> limits as <userinput>t1,t2,tinc</userinput>, then
+optionally the limits as <userinput>x1,x2,y1,y2</userinput>.
+          </para>
+         <para>
+           If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+           If instead the string "fit" is given for the x and y limits, then the limits are the maximum 
extent of
+           the graph
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
+         <listitem>
+          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
+          <synopsis>LinePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,
+           <varname>x2</varname>,<varname>y2</varname> can be replaced by an
+           <varname>n</varname> by 2 matrix for a longer polyline.
+           Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+           that is an <varname>n</varname> by 1 matrix and each complex number is then
+           considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           arrows, the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           <userinput>"arrow"</userinput>, or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, type of arrow, or the legend.  (Arrow and window are from version 1.0.6 onwards.)
+         </para>
+         <para>
+           If the line is to be treated as a filled polygon, filled with the given color, you
+           can specify the argument <userinput>"filled"</userinput>.  Since version 1.0.22 onwards.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Arrow specification should be
+           <userinput>"origin"</userinput>,
+           <userinput>"end"</userinput>,
+           <userinput>"both"</userinput>, or
+           <userinput>"none"</userinput>.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.
+         </para>
+         <para>
+                 Specifying <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
+         <listitem>
+          <synopsis>LinePlotDrawPoints (x,y,...)</synopsis>
+          <synopsis>LinePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>.
+                 The input can be an <varname>n</varname> by 2 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>.
+                 Alternatively the vector <varname>v</varname> may be a column vector of complex numbers,
+                 that is an <varname>n</varname> by 1 matrix and each complex number is then
+                 considered a point in the plane.
+          </para>
+          <para>
+           Extra parameters can be added to specify color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 4-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The 
Solution")</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The 7th 
roots of unity")</userinput>
+</screen>
+          </para>
+         <para>
+                 Unlike many other functions that do not care if they take a
+                 column or a row vector, if specifying points as a vector of
+                 complex values, due to possible ambiguities, it must always
+                 be given as a column vector.  Therefore, notice in the
+                 last example the transpose of the vector <userinput>0:6</userinput>
+                 to make it into a column vector.
+         </para>
+         <para>
+                 Available from version 1.0.18 onwards.  Specifying
+                 <varname>v</varname> as a column vector of complex numbers is
+                 implemented from version 1.0.22 and onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
+         <listitem>
+          <synopsis>LinePlotMouseLocation ()</synopsis>
+          <para>
+           Returns a row vector of a point on the line plot corresponding to
+           the current mouse location.  If the line plot is not visible,
+           then prints an error and returns <constant>null</constant>.
+           In this case you should run
+           <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> or
+           <link linkend="gel-function-LinePlotClear"><function>LinePlotClear</function></link>
+           to put the graphing window into the line plot mode.
+           See also
+           <link 
linkend="gel-function-LinePlotWaitForClick"><function>LinePlotWaitForClick</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
+         <listitem>
+          <synopsis>LinePlotParametric (xfunc,yfunc,...)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</synopsis>
+          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")</synopsis>
+          <para>
+           Plot a parametric function with a line.  First come the functions
+for <varname>x</varname> and <varname>y</varname> then optionally the <varname>t</varname> limits as 
<userinput>t1,t2,tinc</userinput>, then optionally the
+limits as <userinput>x1,x2,y1,y2</userinput>.
+          </para>
+         <para>
+           If x and y limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+           If instead the string "fit" is given for the x and y limits, then the limits are the maximum 
extent of
+           the graph
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
+         <listitem>
+          <synopsis>LinePlotWaitForClick ()</synopsis>
+          <para>
+           If in line plot mode, waits for a click on the line plot window
+           and returns the location of the click as a row vector.
+           If the window is closed
+           the function returns immediately with <constant>null</constant>.
+           If the window is not in line plot mode, it is put in it and shown
+           if not shown.
+           See also
+           <link 
linkend="gel-function-LinePlotMouseLocation"><function>LinePlotMouseLocation</function></link>.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasFreeze"/>PlotCanvasFreeze</term>
+         <listitem>
+          <synopsis>PlotCanvasFreeze ()</synopsis>
+          <para>
+                 Freeze drawing of the canvas plot temporarily.  Useful if you need to draw a bunch of 
elements
+                 and want to delay drawing everything to avoid flicker in an animation.  After everything
+                 has been drawn you should call <link 
linkend="gel-function-PlotCanvasThaw"><function>PlotCanvasThaw</function></link>.
+          </para>
+          <para>
+                 The canvas is always thawed after end of any execution, so it will never remain frozen.  
The moment
+                 a new command line is shown for example the plot canvas is thawed automatically.  Also note 
that
+                 calls to freeze and thaw may be safely nested.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
+         <listitem>
+          <synopsis>PlotCanvasThaw ()</synopsis>
+          <para>
+                 Thaw the plot canvas frozen by
+                 <link linkend="gel-function-PlotCanvasFreeze"><function>PlotCanvasFreeze</function></link>
+                 and redraw the canvas immediately.  The canvas is also always thawed after end of execution
+                 of any program.
+          </para>
+         <para>Version 1.0.18 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
+         <listitem>
+          <synopsis>PlotWindowPresent ()</synopsis>
+          <para>
+                 Show and raise the plot window, creating it if necessary.
+                 Normally the window is created when one of the plotting
+                 functions is called, but it is not always raised if it
+                 happens to be below other windows.  So this function is
+                 good to call in scripts where the plot window might have 
+                 been created before, and by now is hidden behind the
+                 console or other windows.
+          </para>
+         <para>Version 1.0.19 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
+         <listitem>
+          <synopsis>SlopefieldClearSolutions ()</synopsis>
+          <para>
+           Clears the solutions drawn by the
+           <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>
+           function.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
+         <listitem>
+          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
+          <para>
+           When a slope field plot is active, draw a solution with
+           the specified initial condition.  The standard
+           Runge-Kutta method is used with increment <varname>dx</varname>.
+           Solutions stay on the graph until a different plot is shown or until
+           you call 
+           <link 
linkend="gel-function-SlopefieldClearSolutions"><function>SlopefieldClearSolutions</function></link>.
+           You can also use the graphical interface to draw solutions and specify
+           initial conditions with the mouse.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
+         <listitem>
+          <synopsis>SlopefieldPlot (func)</synopsis>
+          <synopsis>SlopefieldPlot (func,x1,x2,y1,y2)</synopsis>
+          <para>
+           Plot a slope field.  The function <varname>func</varname>
+           should take two real numbers <varname>x</varname>
+           and <varname>y</varname>, or a single complex
+           number.
+            Optionally you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+       <varlistentry>
+        <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
+         <listitem>
+          <synopsis>SurfacePlot (func)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlot (func,x1,x2,y1,y2)</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlot (func,[x1,x2,y1,y2])</synopsis>
+          <para>
+           Plot a surface function that takes either two arguments or a complex number.  First comes the 
function then optionally limits as <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>,
+           <varname>z1</varname>, <varname>z2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>).
+           Genius can only plot a single surface function at this time.
+          </para>
+          <para>
+           If the z limits are not specified then the maxima and minima of the function are used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
+         <listitem>
+          <synopsis>SurfacePlotClear ()</synopsis>
+          <para>
+            Show the surface plot window and clear out functions and any other
+            lines that were drawn.
+          </para>
+          <para>
+           Available in version 1.0.19 and onwards.
+          </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
+         <listitem>
+          <synopsis>SurfacePlotData (data)</synopsis>
+          <synopsis>SurfacePlotData (data,label)</synopsis>
+          <synopsis>SurfacePlotData (data,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,label,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotData (data,label,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <para>
+                 Plot a surface from data.  The data is an n by 3 matrix whose
+                 rows are the x, y and z coordinates.  The data can also be
+                 simply a vector whose length is a multiple of 3 and so
+                 contains the triples of x, y, z.  The data should contain at
+                 least 3 points.
+         </para>
+          <para>
+                 Optionally we can give the label and also optionally the
+                 limits.  If limits are not given, they are computed from
+                 the data, <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>
+                 is not used, if you want to use it, pass it in explicitly.
+                 If label is not given then empty label is used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,-1,1,-1,1,0,10)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,SurfacePlotWindow)</userinput>
+</screen>
+          </para>
+         <para>
+                 Here's an example of how to plot in polar coordinates,
+                 in particular how to plot the function
+                 <userinput>-r^2 * theta</userinput>:
+          <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>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
+         <listitem>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2],label)</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],label)</synopsis>
+          <para>
+                 Plot a surface from regular rectangular data.
+                 The data is given in a n by m matrix where the rows are the
+                 x coordinate and the columns are the y coordinate.
+                 The x coordinate is divided into equal n-1 subintervals
+                 and y coordinate is divided into equal m-1 subintervals.
+                 The limits <varname>x1</varname> and <varname>x2</varname>
+                 give the interval on the x-axis that we use, and 
+                 the limits <varname>y1</varname> and <varname>y2</varname>
+                 give the interval on the y-axis that we use.
+                 If the limits <varname>z1</varname> and <varname>z2</varname>
+                 are not given they are computed from the data (to be
+                 the extreme values from the data).
+         </para>
+          <para>
+                 Optionally we can give the label, if label is not given then
+                 empty label is used.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"My data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = 
(0.1*i-1)^2-(0.1*j)^2;</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"half a saddle")</userinput>
+</screen>
+          </para>
+         <para>Version 1.0.16 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
+          <synopsis>SurfacePlotDrawLine (v,...)</synopsis>
+          <para>
+           Draw a line from <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname> to
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname>.
+           <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname>,
+           <varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname> can be replaced by an
+           <varname>n</varname> by 3 matrix for a longer polyline.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>,
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally, since version 1.0.18, the color
+           can also be specified as a real vector specifying the red green and
+           blue components where the components are between 0 and 1, e.g. 
<userinput>[1.0,0.5,0.1]</userinput>.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawPoints (x,y,z,...)</synopsis>
+          <synopsis>SurfacePlotDrawPoints (v,...)</synopsis>
+          <para>
+                 Draw a point at <varname>x</varname>,<varname>y</varname>,<varname>z</varname>.
+                 The input can be an <varname>n</varname> by 3 matrix
+                 for <varname>n</varname> different points.  This function has essentially the same
+                 input as <link linkend="gel-function-SurfacePlotDrawLine">SurfacePlotDrawLine</link>.
+          </para>
+          <para>
+           Extra parameters can be added to specify line color, thickness,
+           the plotting window, or legend.
+           You can do this by adding an argument string <userinput>"color"</userinput>, 
+           <userinput>"thickness"</userinput>,
+           <userinput>"window"</userinput>, 
+           or <userinput>"legend"</userinput>, and after it specify
+           the color, the thickness, the window
+           as 6-vector, or the legend.
+         </para>
+         <para>
+           The color should be either a string indicating the common English word for the color
+           that GTK will recognize such as 
+            <userinput>"red"</userinput>, <userinput>"blue"</userinput>, <userinput>"yellow"</userinput>, 
etc...
+           Alternatively the color can be specified in RGB format as
+           <userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput>, or
+           <userinput>"#rrrrggggbbbb"</userinput>, where the r, g, or b are hex digits of the red, green, 
and blue
+           components of the color.  Finally the color can also be specified as a real vector specifying the 
red green
+           and blue components where the components are between 0 and 1.
+         </para>
+         <para>
+           The window should be given as usual as <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, or
+           alternatively can be given as a string
+           <userinput>"fit"</userinput> in which case,
+           the x range will be set precisely and the y range will be set with
+           five percent borders around the line.
+         </para>
+         <para>
+           Finally, legend should be a string that can be used as the legend in the
+           graph.  That is, if legends are being printed.
+          </para>
+         <para>
+         Examples:
+          <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])</userinput>
+</screen>
+          </para>
+         <para>
+                 Available from version 1.0.19 onwards.
+         </para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
+         <listitem>
+          <synopsis>VectorfieldClearSolutions ()</synopsis>
+          <para>
+           Clears the solutions drawn by the
+           <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>
+           function.
+          </para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
+         <listitem>
+          <synopsis>VectorfieldDrawSolution (x, y, dt, tlen)</synopsis>
+          <para>
+           When a vector field plot is active, draw a solution with
+           the specified initial condition.  The standard
+           Runge-Kutta method is used with increment <varname>dt</varname>
+           for an interval of length <varname>tlen</varname>.
+           Solutions stay on the graph until a different plot is shown or until
+           you call 
+           <link 
linkend="gel-function-VectorfieldClearSolutions"><function>VectorfieldClearSolutions</function></link>.
+           You can also use the graphical interface to draw solutions and specify
+           initial conditions with the mouse.
+          </para>
+         <para>Version 1.0.6 onwards.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
+         <listitem>
+          <synopsis>VectorfieldPlot (funcx, funcy)</synopsis>
+          <synopsis>VectorfieldPlot (funcx, funcy, x1, x2, y1, y2)</synopsis>
+          <para>
+           Plot a two dimensional vector field.  The function
+           <varname>funcx</varname>
+           should be the dx/dt of the vectorfield and the function
+           <varname>funcy</varname> should be the dy/dt of the vectorfield.
+           The functions
+           should take two real numbers <varname>x</varname>
+           and <varname>y</varname>, or a single complex
+           number.  When the parameter
+           <link 
linkend="gel-function-VectorfieldNormalized"><function>VectorfieldNormalized</function></link>
+           is <constant>true</constant>, then the magnitude of the vectors is normalized.  That is, only
+           the direction and not the magnitude is shown.
+         </para>
+         <para>
+            Optionally you can specify the limits of the plotting window as
+           <varname>x1</varname>, <varname>x2</varname>,
+           <varname>y1</varname>, <varname>y2</varname>.  If limits are not
+           specified, then the currently set limits apply
+           (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
+          </para>
+          <para>
+           The parameter
+           <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link>
+           controls the drawing of the legend.
+         </para>
+          <para>
+           Examples:
+          <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, `(x,y)=y^2-x, -1, 1, 
-1, 1)</userinput>
+</screen>
+          </para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL examples ============================= -->
+  <chapter id="genius-gel-example-programs">
+    <title>Примеры программ на GEL</title>
+
+    <para>
+Here is a function that calculates factorials:
+<programlisting><![CDATA[function f(x) = if x <= 1 then 1 else (f(x-1)*x)
+]]></programlisting>
+    </para>
+    <para>
+With indentation it becomes:
+<programlisting><![CDATA[function f(x) = (
+  if x <= 1 then
+    1
+  else
+    (f(x-1)*x)
+)
+]]></programlisting>
+    </para>
+    <para>
+This is a direct port of the factorial function from the <application>bc</application> manpage. The syntax 
seems similar to <application>bc</application>, but different in that in GEL, the last expression is the one 
that is returned. Using the <literal>return</literal> function instead, it would be:
+<programlisting><![CDATA[function f(x) = (
+  if (x <= 1) then return (1);
+  return (f(x-1) * x)
+)
+]]></programlisting>
+    </para>
+
+    <para>
+By far the easiest way to define a factorial function would be using
+the product loop as follows.  This is not only the shortest and fastest,
+but also probably the most readable version.
+<programlisting>function f(x) = prod k=1 to x do k
+</programlisting>
+    </para>
+
+    <para>
+Here is a larger example, this basically redefines the internal
+<link linkend="gel-function-ref"><function>ref</function></link> function to calculate the row echelon form 
of a
+matrix.  The function <function>ref</function> is built in and much faster,
+but this example demonstrates some of the more complex features of GEL.
+<programlisting><![CDATA[# Calculate the row-echelon form of a matrix
+function MyOwnREF(m) = (
+  if not IsMatrix(m) or not IsValueOnly(m) then
+    (error("MyOwnREF: argument not a value only matrix");bailout);
+  s := min(rows(m), columns(m));
+  i := 1;
+  d := 1;
+  while d <= s and i <= columns(m) do (
+
+    # This just makes the anchor element non-zero if at
+    # all possible
+    if m@(d,i) == 0 then (
+      j := d+1;
+      while j <= rows(m) do (
+        if m@(j,i) == 0 then
+          (j=j+1;continue);
+        a := m@(j,);
+        m@(j,) := m@(d,);
+        m@(d,) := a;
+        j := j+1;
+        break
+      )
+    );
+    if m@(d,i) == 0 then
+      (i:=i+1;continue);
+    
+    # Here comes the actual zeroing of all but the anchor
+    # element rows
+    j := d+1;
+    while j <= rows(m)) do (
+      if m@(j,i) != 0 then (
+        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
+      );
+      j := j+1
+    );
+    m@(d,) := m@(d,) * (1/m@(d,i));
+    d := d+1;
+    i := i+1
+  );
+  m
+)
+]]></programlisting>
+    </para>
+
+  </chapter>
+
+  <!-- ============= Customization ============================ -->
+  <chapter id="genius-prefs"> 
+    <title>Настройки</title> 
+
+    <para>
+      To configure <application>Genius Mathematics Tool</application>, choose
+      <menuchoice><guimenu>Settings</guimenu>
+      <guimenuitem>Preferences</guimenuitem></menuchoice>.
+      There are several basic parameters provided by the calculator in addition
+      to the ones provided by the standard library.  These control how the
+      calculator behaves.
+    </para>
+
+    <note>
+      <title>Changing Settings with GEL</title>
+      <para>
+       Many of the settings in Genius are simply global variables, and can
+       be evaluated and assigned to in the same way as normal variables. See
+       <xref linkend="genius-gel-variables"/> about evaluating and assigning
+       to variables, and <xref linkend="genius-gel-function-parameters"/> for
+       a list of settings that can be modified in this way.
+      </para>
+      <para>
+As an example, you can set the maximum number of digits in a result to 12 by typing:
+<programlisting>MaxDigits = 12
+</programlisting>
+      </para>
+    </note>
+
+    <sect1 id="genius-prefs-output"> 
+      <title>Output</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum digits to output</guilabel>
+      </term> 
+         <listitem>
+                 <para>The maximum digits in a result (<link 
linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Results as floats</guilabel>
+      </term> 
+         <listitem>
+                 <para>If the results should be always printed as floats (<link 
linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Floats in scientific notation</guilabel>
+      </term> 
+         <listitem>
+                 <para>If floats should be in scientific notation (<link 
linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Always print full expressions</guilabel>
+      </term> 
+         <listitem>
+                 <para>Should we print out full expressions for non-numeric return values (longer than a 
line) (<link linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Use mixed fractions</guilabel>
+      </term> 
+         <listitem>
+                 <para>If fractions should be printed as mixed fractions such as "1 1/3" rather than "4/3". 
(<link linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Display 0.0 when floating point number is less than 10^-x (0=never chop)</guilabel>
+      </term> 
+         <listitem>
+         <para>How to chop output.  But only when other numbers nearby are large.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+            <guilabel>Only chop numbers when another number is greater than 10^-x</guilabel>
+      </term> 
+         <listitem>
+                 <para>When to chop output.  This is set by the parameter <link 
linkend="gel-function-OutputChopWhenExponent"><function>OutputChopWhenExponent</function></link>.
+          See the documentation of the parameter
+          <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>. 
</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Remember output settings across sessions</guilabel>
+      </term> 
+         <listitem>
+        <para>Should the output settings in the <guilabel>Number/Expression output options</guilabel> frame
+             be remembered for next session.  Does not apply to the <guilabel>Error/Info output 
options</guilabel> frame.</para>
+             <para>
+                If unchecked,
+          either the default or any previously saved settings are used each time Genius starts
+          up.  Note that
+          settings are saved at the end of the session, so if you wish to change the defaults
+          check this box, restart <application>Genius Mathematics Tool</application> and then uncheck it 
again.
+             </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Display errors in a dialog</guilabel>
+      </term> 
+         <listitem>
+        <para>If set the errors will be displayed in a separate dialog, if
+       unset the errors will be printed on the console.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Display information messages in a dialog</guilabel>
+      </term> 
+         <listitem>
+       <para>If set the information messages will be displayed in a separate
+       dialog, if unset the information messages will be printed on the
+       console.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum errors to display</guilabel>
+      </term> 
+         <listitem>
+        <para>
+         The maximum number of errors to return on one evaluation
+         (<link linkend="gel-function-MaxErrors"><function>MaxErrors</function></link>).  If you set this to 
0 then
+         all errors are always returned.  Usually if some loop causes
+         many errors, then it is unlikely that you will be able to make
+         sense out of more than a few of these, so seeing a long list
+         of errors is usually not helpful.
+         </para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+
+      <para>
+       In addition to these preferences, there are some preferences that can
+       only be changed by setting them in the workspace console.  For others
+       that may affect the output see <xref linkend="genius-gel-function-parameters"/>.
+      </para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <function>IntegerOutputBase</function>
+      </term> 
+         <listitem>
+        <para>The base that will be used to output integers</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <function>OutputStyle</function>
+      </term> 
+         <listitem>
+       <para>A string, can be <literal>"normal"</literal>,
+<literal>"latex"</literal>, <literal>"mathml"</literal> or
+<literal>"troff"</literal> and it will affect how matrices (and perhaps other
+stuff) is printed, useful for pasting into documents.  Normal style is the
+default human readable printing style of <application>Genius Mathematics Tool</application>.  The other 
styles are for
+typesetting in LaTeX, MathML (XML), or in Troff.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+   </sect1> 
+
+    <sect1 id="genius-prefs-precision"> 
+      <title>Precision</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Floating point precision</guilabel>
+      </term> 
+         <listitem>
+        <para>
+         The floating point precision in bits
+         (<link linkend="gel-function-FloatPrecision"><function>FloatPrecision</function></link>).
+         Note that changing this only affects newly computed quantities.
+         Old values stored in variables are obviously still in the old
+         precision and if you want to have them more precise you will have
+         to recompute them.  Exceptions to this are the system constants
+         such as <link linkend="gel-function-pi"><function>pi</function></link> or
+         <link linkend="gel-function-e"><function>e</function></link>.
+         </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Remember precision setting across sessions</guilabel>
+      </term> 
+         <listitem>
+        <para>
+          Should the precision setting be remembered for the next session.  If unchecked,
+          either the default or any previously saved setting is used each time Genius starts
+          up.  Note that
+          settings are saved at the end of the session, so if you wish to change the default
+          check this box, restart genius and then uncheck it again.
+         </para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-terminal"> 
+      <title>Терминал</title> 
+
+      <para>Терминалом называется консоль в рабочей области.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Scrollback lines</guilabel>
+      </term> 
+         <listitem>
+        <para>Lines of scrollback in the terminal.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Шрифт</guilabel>
+      </term> 
+         <listitem>
+        <para>Шрифт, используемый в терминале</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Чёрный на белом</guilabel>
+      </term> 
+         <listitem>
+        <para>Использовать в терминале чёрный текст на белом фоне.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Мигающий курсор</guilabel>
+      </term> 
+         <listitem>
+        <para>Должен ли курсор терминала мигать, если фокус ввода находится в терминале. Иногда это 
раздражает, кроме того это создаёт лишний трафик при удалённом доступе к Genius.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-memory"> 
+      <title>Память</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximum number of nodes to allocate</guilabel>
+      </term> 
+         <listitem>
+        <para>
+          Internally all data is put onto small nodes in memory.  This gives
+          a limit on the maximum number of nodes to allocate for
+          computations.  This limit avoids the problem of running out of memory
+          if you do something by mistake that uses too much memory, such
+          as a recursion without end.  This could slow your computer and make
+          it hard to even interrupt the program.
+         </para>
+        <para>
+          Once the limit is reached, <application>Genius Mathematics Tool</application> asks if you wish to 
interrupt
+          the computation or if you wish to continue.  If you continue, no
+          limit is applied and it will be possible to run your computer
+          out of memory.  The limit will be applied again next time you
+          execute a program or an expression on the Console regardless of how
+          you answered the question.
+        </para>
+        <para>
+          Setting the limit to zero means there is no limit to the amount of
+          memory that genius uses.
+        </para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist> 
+    </sect1> 
+
+  </chapter>
+
+<!-- ============= About ====================================== -->
+  <chapter id="genius-about"> 
+    <title>О <application>математическом инструменте Genius</application></title> 
+
+    <para><application>Математический инструмент Genius</application> создан Jiří (George) Lebl 
(<email>jirka 5z com</email>). История <application>математического инструмента Genius</application> началась 
в конце 1997 г. Это был первый калькулятор для GNOME, но с тех пор он вырос в нечто большее, чем простой 
настольный калькулятор. Чтобы узнать больше о <application>математическом инструменте Genius</application>, 
посетите <ulink url="http://www.jirka.org/genius.html"; type="http">веб-страницу Genius</ulink>.</para>
+    <para>
+      To report a bug or make a suggestion regarding this application or
+      this manual, send email to me (the author) or post to the mailing
+      list (see the web page).
+    </para>
+
+    <para> This program is distributed under the terms of the GNU
+      General Public license as published by the Free Software
+      Foundation; either version 3 of the License, or (at your option)
+      any later version. A copy of this license can be found at this
+      <ulink url="http://www.gnu.org/copyleft/gpl.html"; type="http">link</ulink>, or in the file
+      COPYING included with the source code of this program. </para>
+
+    <para>Jiří Lebl was during various parts of the development
+      partially supported for the work by NSF grants DMS 0900885, 
+      DMS 1362337,
+      the University of Illinois at Urbana-Champaign,
+      the University of California at San Diego, 
+      the University of Wisconsin-Madison, and
+      Oklahoma State University.  The software has
+      been used for both teaching and research.</para>
+
+  </chapter>
+
+</book>
diff --git a/help/ru/html/index.html b/help/ru/html/index.html
index eef761e..16bb335 100644
--- a/help/ru/html/index.html
+++ b/help/ru/html/index.html
@@ -58,7 +58,7 @@
                        EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
                        THE POSSIBILITY OF SUCH DAMAGES.
                  </p></li></ol></div><p>
-       </p></div></div><div><div class="legalnotice"><a name="idm45623491196336"></a><p 
class="legalnotice-title"><b>Обратная связь</b></p><p>
+       </p></div></div><div><div class="legalnotice"><a name="idm51"></a><p 
class="legalnotice-title"><b>Обратная связь</b></p><p>
              To report a bug or make a suggestion regarding the <span class="application">Genius Mathematics 
Tool</span>
              application or this manual, please visit the
              <a class="ulink" href="http://www.jirka.org/genius.html"; target="_top">Genius
diff --git a/help/sv/genius.xml b/help/sv/genius.xml
new file mode 100644
index 0000000..a61fa7b
--- /dev/null
+++ b/help/sv/genius.xml
@@ -0,0 +1,6489 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY app "<application>Genius Mathematics Tool</application>">
+<!ENTITY appname "Genius">
+<!ENTITY appversion "1.0.22">
+<!ENTITY date "September 2016">
+<!ENTITY legal SYSTEM "legal.xml">
+<!ENTITY manrevision "0.2">
+<!ENTITY lt "&#60;">
+<!ENTITY gt "&#62;">
+<!ENTITY le "&#8804;">
+<!ENTITY ge "&#8805;">
+<!ENTITY lsquo "&#8216;">
+<!ENTITY rsquo "&#8217;">
+<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
+<!-- 
+      (Do not remove this comment block.)
+  Maintained by the GNOME Documentation Project
+  http://developer.gnome.org/projects/gdp
+  Template version: 2.0 beta
+  Template last modified Apr 11, 2002
+-->
+<!-- =============Document Header ============================= -->
+<book id="index" lang="sv">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <bookinfo>
+         <abstract role="description"><para>Handbok för Genius matteverktyg.</para></abstract>
+    <title>Handbok för Genius</title>       
+
+    <copyright>
+      <year>1997-2016</year>
+      <holder>Jiří (George) Lebl</holder>
+    </copyright>
+    <copyright>
+      <year>2004</year>
+      <holder>Kai Willadsen</holder>
+    </copyright><copyright><year>2016</year><holder>Anders Jonsson (anders jonsson norsjovallen 
se)</holder></copyright>
+<!-- translators: uncomment this:
+  <copyright>
+   <year>2002</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+-->
+
+    <publisher> 
+      <publishername/> 
+    </publisher> 
+
+     <legalnotice id="legalnotice">
+       <para>
+         Permission is granted to copy, distribute and/or modify this
+         document under the terms of the GNU Free Documentation
+         License (GFDL), Version 1.1 or any later version published
+         by the Free Software Foundation with no Invariant Sections,
+         no Front-Cover Texts, and no Back-Cover Texts.  You can find
+         a copy of the GFDL at this <ulink type="help" url="ghelp:fdl">link</ulink> or in the file 
COPYING-DOCS
+         distributed with this manual.
+         </para>
+         <para> This manual is part of a collection of GNOME manuals
+          distributed under the GFDL.  If you want to distribute this
+          manual separately from the collection, you can do so by
+          adding a copy of the license to the manual, as described in
+          section 6 of the license.
+       </para>
+
+       <para>
+         Many of the names used by companies to distinguish their
+         products and services are claimed as trademarks. Where those
+         names appear in any GNOME documentation, and the members of
+         the GNOME Documentation Project are made aware of those
+         trademarks, then the names are in capital letters or initial
+         capital letters.
+       </para>
+
+       <para>
+         DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED
+         UNDER  THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE
+         WITH THE FURTHER UNDERSTANDING THAT:
+
+         <orderedlist>
+               <listitem>
+                 <para>DOCUMENT IS PROVIDED ON AN "AS IS" BASIS,
+                    WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+                    IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
+                    THAT THE DOCUMENT OR MODIFIED VERSION OF THE
+                    DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR
+                    A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
+                    RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE
+                    OF THE DOCUMENT OR MODIFIED VERSION OF THE
+                    DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR
+                    MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT,
+                    YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY
+                    CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+                    SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+                    OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
+                    LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED
+                    VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER
+                    EXCEPT UNDER THIS DISCLAIMER; AND
+                 </para>
+               </listitem>
+               <listitem>
+                 <para>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
+                       THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE),
+                       CONTRACT, OR OTHERWISE, SHALL THE AUTHOR,
+                       INITIAL WRITER, ANY CONTRIBUTOR, OR ANY
+                       DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION
+                       OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH
+                       PARTIES, BE LIABLE TO ANY PERSON FOR ANY
+                       DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
+                       CONSEQUENTIAL DAMAGES OF ANY CHARACTER
+                       INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS
+                       OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
+                       MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR
+                       LOSSES ARISING OUT OF OR RELATING TO USE OF THE
+                       DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT,
+                       EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
+                       THE POSSIBILITY OF SUCH DAMAGES.
+                 </para>
+               </listitem>
+         </orderedlist>
+       </para>
+  </legalnotice>
+
+
+   <!-- This file  contains link to license for the documentation (GNU FDL), and 
+        other legal stuff such as "NO WARRANTY" statement. Please do not change 
+       any of this. -->
+
+    <authorgroup> 
+      <author role="maintainer"> 
+               <firstname>Jiří</firstname> 
+               <surname>Lebl</surname> 
+               <affiliation> 
+                       <orgname>Oklahoma State University</orgname> 
+                       <address> <email>jirka 5z com</email> </address> 
+               </affiliation> 
+      </author> 
+      <author> 
+               <firstname>Kai</firstname> 
+               <surname>Willadsen</surname> 
+               <affiliation> 
+                       <orgname>University of Queensland, Australien</orgname> 
+                       <address> <email>kaiw itee uq edu au</email> </address> 
+               </affiliation> 
+      </author> 
+      
+<!-- This is appropriate place for other contributors: translators,
+     maintainers,  etc. Commented out by default.
+     
+      <othercredit role="translator">
+               <firstname>Latin</firstname> 
+               <surname>Translator 1</surname> 
+               <affiliation> 
+                       <orgname>Latin Translation Team</orgname> 
+                       <address> <email>translator gnome org</email> </address> 
+               </affiliation>
+               <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+    </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+-->
+<!-- than the current revision. -->
+<!-- The revision numbering system for GNOME manuals is as follows: -->
+<!-- * the revision number consists of two components -->
+<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
+<!-- * the second component of the revision number is a decimal unit that is incremented with each revision 
of the manual. -->
+<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
+<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
+<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
+<!-- to V3.0, and so on. -->  
+<!--  This is unmaintained quite a bit so screw this it just makes things
+      ugly and we don't update the manrevision stuff anyway
+    <revhistory>
+      <revision> 
+               <revnumber>&manrevision;</revnumber> 
+               <date>&date;</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>0.1</revnumber> 
+               <date>September 2004</date> 
+               <revdescription> 
+                       <para role="author">Kai Willadsen
+               <email>kaiw itee uq edu au</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+      <revision> 
+               <revnumber>Genius Calculator Manual</revnumber> 
+               <date>August 2004</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl
+               <email>jirka 5z com</email>
+                       </para>
+               </revdescription> 
+      </revision> 
+    </revhistory> 
+-->
+
+    <revhistory>
+      <revision> 
+               <revnumber>0.2</revnumber> 
+               <date>September 2016</date> 
+               <revdescription> 
+                       <para role="author">Jiri (George) Lebl <email>jirka 5z com</email></para>
+               </revdescription> 
+      </revision> 
+    </revhistory>
+    <releaseinfo>Denna handbok beskriver version 1.0.22 av Genius.</releaseinfo> 
+    <legalnotice> 
+      <title>Återkoppling</title> 
+      <para>För att rapportera ett fel eller komma med ett förslag för programmet <application>Genius 
matematikverktyg</application> eller denna handbok, besök <ulink url="http://www.jirka.org/genius.html"; 
type="http">webbsidan för Genius</ulink> eller skicka mig ett e-postmeddelande på <email>jirka 5z 
com</email>.</para>
+<!-- Translators may also add here feedback address for translations -->
+    </legalnotice> 
+  </bookinfo> 
+
+<!-- ============= Introduction =============================== -->
+  <chapter id="genius-introduction"> 
+    <title>Introduktion</title> 
+    <para>Programmet <application>Genius matematikverktyg</application> är en allmän miniräknare som kan 
användas som en miniräknare för skrivbordet, ett undervisningsverktyg för matematik och till och med är 
användbart för forskning. Språket som används i <application>Genius matematikverktyg</application> är 
designat för att vara ”matematiskt” i betydelsen att det ska uppfylla att ”vad du menar är vad du får”. Detta 
är givetvis inte ett fullständigt uppnåeligt mål. <application>Genius matematikverktyg</application> klarar 
av rationella tal, heltal med godtycklig precision och högprecisionsflyttal med GMP-biblioteket. Det hanterar 
komplexa tal med kartesisk notation. Det har bra vektor- och matrismanipulation och kan hantera grundläggande 
linjär algebra. Programmeringsspråket tillåter användardefinierade funktioner, variabler och ändring av 
parametrar.</para> 
+
+    <para><application>Genius matematikverktyg</application> finns i två versioner. En version är den 
grafiska GNOME-versionen, som har ett gränssnitt av IDE-stil och förmågan att rita grafer med en eller två 
variabler. Kommandoradsversionen kräver inte GNOME, men implementerar förstås inte någon funktion som kräver 
det grafiska gränssnittet.</para> 
+
+    <para>Delar av denna handbok beskriver den grafiska versionen av miniräknaren, men språket är förstås 
detsamma. Kommandoradsversionen saknar funktioner för grafritning och all annan funktionalitet som kräver det 
grafiska användargränssnittet.</para>
+
+    <para>Allmänt så nämns det om någon funktionalitet av språket (funktioner, operatorer och så vidare...) 
är ny för någon version efter 1.0.5, men om den tillkom innan 1.0.5 skulle du behöva titta på 
NEWS-filen.</para>
+
+  </chapter>
+
+<!-- =========== Getting Started ============================== -->
+  <chapter id="genius-getting-started"> 
+    <title>Komma igång</title> 
+
+    <sect1 id="genius-to-start">
+      <title>För att starta <application>Genius matematikverktyg</application></title>
+      <para>Du kan starta <application>Genius matematikverktyg</application> på följande sätt:</para> 
+      <variablelist>
+        <varlistentry>
+          <term><guimenu>Program</guimenu>-menyn</term>
+          <listitem>
+           <para>Beroende på ditt operativsystem och version kan menyposten för <application>Genius 
matematikverktyg</application> dyka upp på ett antal olika platser. Det kan vara i 
<guisubmenu>Utbildning</guisubmenu>, <guisubmenu>Tillbehör</guisubmenu>, 
<guisubmenu>Kontorsprogram</guisubmenu>, <guisubmenu>Vetenskap</guisubmenu> eller någon liknande undermeny 
beroende på din specifika konfiguration. Menyposten som du letar efter är <guimenuitem>Genius 
matematikverktyg</guimenuitem>.Då du hittat denna menypost kan du klicka på den för att starta 
<application>Genius matematikverktyg</application>.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Dialogen <guilabel>Kör</guilabel></term>
+          <listitem>
+           <para>Beroende på din systeminstallation kanske inte menyposten finns tillgänglig. Om den inte 
gör det kan du öppna Kör-dialogen och exekvera <command>gnome-genius</command>.</para>
+             </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>Kommandorad</term>
+         <listitem>
+           <para>För att starta GNOME-versionen av <application>Genius matematikverktyg</application> kör 
<command>gnome-genius</command> från kommandoraden.</para>
+           <para>För att starta kommandoradsversionen, kör följande kommando: <command>genius</command>. 
Denna version inkluderar inte den grafiska miljön och viss funktionalitet som grafritning kommer inte finnas 
tillgänglig.</para> 
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-when-start">
+    <title>Då du startar Genius</title>
+      <para>Då du startar GNOME-versionen av <application>Genius matematikverktyg</application> kommer 
fönstret som avbildas i <xref linkend="mainwindow-fig"/> att visas.</para>
+
+      <figure id="mainwindow-fig"> 
+        <title><application>Genius matematikverktyg</application>-fönstret</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+             <phrase>Shows <application>Genius Mathematics Tool</application> main window. Contains 
titlebar, menubar,
+toolbar and working area. Menubar contains <guilabel>Arkiv</guilabel>,
+<guilabel>Redigera</guilabel>, <guilabel>Miniräknare</guilabel>,
+<guilabel>Exempel</guilabel>,
+<guilabel>Program</guilabel>,
+<guilabel>Inställningar</guilabel>, and <guilabel>Hjälp</guilabel> menus.</phrase> 
+            </textobject> 
+          </mediaobject>
+        </screenshot> 
+      </figure>
+
+      <para>Fönstret för <application>Genius matematikverktyg</application> innehåller följande 
element:</para>
+      <variablelist>
+        <varlistentry>
+          <term>Menyrad.</term>
+          <listitem>
+            <para>Menyerna på menyraden innehåller alla kommandon som du behöver för att arbeta med filer i 
<application>Genius matematikverktyg</application>.<guilabel>Arkiv</guilabel>-menyn innehåller poster för att 
läsa in och spara objekt och skapa nya program. Kommandot <guilabel>Läs in och kör...</guilabel> öppnar inte 
ett nytt fönster för programmet, utan kör bara programmet direkt. Det är ekvivalent med kommandot 
<command>läs in</command>.</para>
+           <para>Menyn <guilabel>Miniräknare</guilabel> kontrollerar miniräknarmotorn. Den låter dig välja 
det aktuellt valda programmet eller att avbryta den pågående beräkningen. Du kan också se det fulla uttrycket 
för det senaste svaret (praktiskt om det senaste svaret var för stort för att passa i konsolen), eller så kan 
du se en lista över värdena för alla användardefinierade variabler. Du kan också övervaka användarvariabler, 
vilket är särskilt användbart under tiden en lång beräkning pågår, eller för att felsöka ett specifikt 
program. Slutligen låter <guilabel>Miniräknare</guilabel> dig att rita funktionsgrafer med en användarvänlig 
dialogruta.</para>
+          <para>Menyn <guilabel>Exempel</guilabel> är en lista över exempelprogram eller demonstrationer. Om 
du öppnar menyn kommer den läsa in exemplet i ett nytt program vilket du kan köra, redigera, ändra och spara. 
Dessa program bör vara väl dokumenterade och demonstrerar allmänt antingen någon funktion i 
<application>Genius matematikverktyg</application> eller något matematiskt koncept.</para>
+          <para>Menyn <guilabel>Program</guilabel> listar aktuellt öppna program och låter dig växla mellan 
dem.</para>
+          <para>De andra menyerna har samma bekanta funktioner som i andra program.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Verktygsfält.</term>
+          <listitem>
+            <para>Verktygsfältet innehåller en delmängd av kommandona du kan komma åt från menyraden.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Arbetsyta</term>
+          <listitem>
+            <para>Arbetsytan är den primära metoden för att interagera med programmet.</para>
+           <para>Arbetsytan har ursprungligen bara fliken <guilabel>Konsol</guilabel>, vilken är huvudsättet 
att interagera med miniräknaren. Här skriver du in uttryck och resultaten visas omedelbart efter att du 
tryckt på Returknappen.</para>
+           <para>Alternativt kan du skriva längre program och de kan visas i separata flikar. Programmen är 
en uppsättning kommandon eller funktioner som kan köras alla på en gång snarare mata in dem i kommandoraden. 
Programmen kan sparas i filer för senare användning.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+<!-- ================ Usage =================================== -->
+  <chapter id="genius-usage"> 
+    <title>Grundläggande användning</title> 
+
+    <sect1 id="genius-usage-workarea"> 
+      <title>Använda arbetsytan</title> 
+
+      <para>Normalt interagerar du med miniräknaren i fliken <guilabel>Konsol</guilabel> i arbetsytan. Om du 
kör textversionen kommer konsolen vara det enda som finns tillgängligt för dig. Om du vill använda 
<application>Genius matematikverktyg</application> endast som en miniräknare skriver du bara in ditt uttryck 
i konsolen så kommer det beräknas och det returnerade värdet kommer att skrivas ut.</para>
+
+      <para>För att beräkna ett uttryck. skriv in det i arbetsytan <guilabel>Konsol</guilabel> och tryck 
Retur. Uttryck skrivs i ett språk som kallas GEL. De enklaste GEL-uttrycken ser ut precis som matematik. Till 
exempel <screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
+</screen> eller <screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
+</screen> eller <screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
+</screen> eller <screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
+</screen> (Det sista är den harmoniska summan från 1 till 70)</para>
+<para>För att se en lista över funktioner och kommandon, skriv: <screen><prompt>genius&gt; 
</prompt><userinput>help</userinput>
+</screen> Om du vill få mer hjälp om en specifik funktion, skriv: <screen><prompt>genius&gt; 
</prompt><userinput>help Funktionsnamn</userinput>
+</screen> För att se denna handbok, skriv: <screen><prompt>genius&gt; </prompt><userinput>manual</userinput>
+</screen></para>
+<para>Anta att du tidigare har sparat några GEL-kommandon som ett program till en fil och att du nu vill 
exekvera dem. För att läsa in detta program till filen <filename>sökväg/till/program.gel</filename>, skriv 
<screen><prompt>genius&gt; </prompt><userinput>load sökväg/till/program.gel</userinput>
+</screen><application>Genius matematikverktyg</application> håller reda på aktuell katalog. För att lista 
filer i den aktuella katalogen skriv <command>ls</command>, för att ändra katalog använder du <userinput>cd 
katalog</userinput> som i kommandoskalet i UNIX.</para>
+    </sect1>
+
+    <sect1 id="genius-usage-create-program"> 
+      <title>För att skapa ett nytt program</title> 
+      <para>Om du vill mata in flera mer komplicerade kommandon, eller kanske skriva en komplicerad funktion 
med <link linkend="genius-gel">GEL</link>-språket så kan du skapa ett nytt program.</para>
+      <para>För att börja skriva ett nytt program, välj 
<menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Nytt program</guimenuitem></menuchoice>. En ny flik kommer 
att dyka upp i arbetsytan. Du kan skriva ett <link linkend="genius-gel">GEL</link>-program i denna arbetsyta. 
Då du har skrivit ditt program kan du köra det genom 
<menuchoice><guimenu>Miniräknare</guimenu><guimenuitem>Kör</guimenuitem></menuchoice> (eller 
verktygsfältsknappen <guilabel>Kör</guilabel>). Detta kommer exekvera ditt program och kommer visa all 
utmatning i <guilabel>Konsol</guilabel>-fliken. Att exekvera ett program är ekvivalent med att ta texten i 
programmet och skriva in den i konsolen. Den enda skillnaden är att denna inmatning görs oberoende från 
konsolen och att bara utmatningen går till konsolen. 
<menuchoice><guimenu>Miniräknare</guimenu><guimenuitem>Kör</guimenuitem></menuchoice> kommer alltid att köra 
det aktuellt valda programmet även om du är i <guilabel>Konsol</guilabel>-
 fliken. Det aktuellt valda programmet har sin flik i fet stil. Klicka på ett programs flik för att välja 
det.</para>
+      <para>För att spara programmet du just skrivit, välj 
<menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Spara som…</guimenuitem></menuchoice>. Liknande i andra 
program kan du välja <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Spara</guimenuitem></menuchoice> för 
att spara ett program som redan har ett associerat filnamn. Om du har många öppnade program som du har 
redigerat och vill spara kan du också välja <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Spara allt 
osparat</guimenuitem></menuchoice>.</para>
+      <para>Program som har osparade ändringar kommer ha ett ”[+]” intill sitt filnamn. På detta sätt kan du 
se om filen på disk och den aktuellt öppnade fliken skiljer sig åt vad gäller innehåll. Program som inte ännu 
fått ett filnamn associerat med sig anses alltid vara osparade och inget ”[+]” skrivs ut.</para>
+    </sect1>
+
+    <sect1 id="genius-usage-open-program"> 
+      <title>Att öppna eller köra ett program</title> 
+      <para>För att öppna en fil, välj 
<menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Öppna</guimenuitem></menuchoice>. En ny flik som innehåller 
filen kommer att dyka upp i arbetsytan. Du kan använda denna för att redigera filen.</para>
+      <para>För att köra ett program från en fil, välj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Läs 
in och kör...</guimenuitem></menuchoice>. Detta kommer köra programmet utan att öppna det i en separat flik. 
Detta är ekvivalent med kommandot <command>load</command>.</para>
+      <para>Om du har gjort redigeringar till en fil som du vill slänga bort och vill läsa om versionen som 
finns på disk kan du välja menyposten <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Läs om från 
disk</guimenuitem></menuchoice>. Detta är användbart för att experimentera med ett program och göra 
tillfälliga redigeringar för att köra ett program, men som du inte avser behålla.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Plotting ============================== -->
+  <chapter id="genius-gel-plotting">
+    <title>Grafritning</title>
+
+    <para>Stöd för grafritning finns endast i den grafiska GNOME-versionen. All grafritning som finns 
tillgänglig från det grafiska gränssnittet finns tillgänglig från fönstret <guilabel>Skapa graf</guilabel>. 
Du kan komma åt detta fönster genom att antingen klicka på <guilabel>Graf</guilabel>-knappen i verktygsfältet 
eller välja <guilabel>Graf</guilabel> i menyn <guilabel>Miniräknare</guilabel>. Du kan också komma åt 
grafritningsfunktionalitet genom att använda GEL-språkets <link 
linkend="genius-gel-function-list-plotting">grafritningsfunktioner</link>. Se <xref linkend="genius-gel"/> 
för att få veta hur du matar in uttryck som Genius förstår.</para>
+
+    <sect1 id="genius-line-plots">
+      <title>Linjegrafer</title>
+      <para>För att rita ut reellvärda funktioner i en variabel öppna fönstret <guilabel>Skapa 
graf</guilabel>. Du kan också använda <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>-funktionen på kommandoraden (se dess 
dokumentation).</para>
+      <para>Då du klickar på <guilabel>Graf</guilabel>-knappen öppnas ett fönster med några flikhäften. Du 
kommer att vilja vara i fliken <guilabel>Linjegraf för funktion</guilabel> och inuti detta vill du vara i 
fliken <guilabel>Funktioner / Uttryck</guilabel>. Se <xref linkend="lineplot-fig"/>.</para>
+
+      <figure id="lineplot-fig"> 
+        <title>Skapa graf-fönster</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Visar linjegrafsfönstret.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Skriv in uttryck med <userinput>x</userinput> som oberoende variabel i textrutorna. Alternativt 
kan du ange namn på funktioner som <userinput>cos</userinput> snarare än att behöva skriva 
<userinput>cos(x)</userinput>. Du kan rita upp till tio funktioner. Om du gör ett misstag och Genius inte kan 
tolka inmatningen kommer det att visa detta med en varningsikon till höger om textinmatningsrutan där felet 
uppstod, såväl som att ge dig en feldialog. Du kan ändra intervallen för de beroende och de oberoende 
variablerna i nederdelen av dialogen. Intervallet <varname>y</varname> (beroende) kan ställas in automatiskt 
genom att kryssa i kryssrutan <guilabel>Passa till beroende axel</guilabel>. Namnen på variablerna kan också 
ändras. Att trycka på knappen <guilabel>Graf</guilabel> producerar grafen som visas i <xref 
linkend="lineplot2-fig"/>.</para>
+      <para>Namnen på variablerna kan ändras genom att klicka på knappen <guilabel>Ändra 
variabelnamn…</guilabel>, vilket är användbart om du vill skriva ut eller spara figuren och inte vill använda 
standardnamnen. Slutligen kan du också undvika att skriva ut förklaringen och axeletiketterna helt, vilket 
också är användbart då du skriver ut eller sparar, då förklaringen kan vara i vägen.</para>
+
+      <figure id="lineplot2-fig"> 
+        <title>Graffönster</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Den producerade grafen.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Härifrån kan du skriva ut grafen, skapa encapsulated postscript eller en PNG-version av grafen 
eller ändra zoomnivån. Om den beroende axeln inte ställdes in korrekt kan Genius anpassa den genom att hitta 
extremvärdena för de ritade funktionerna.</para>
+
+      <para>För grafritning med kommandoraden se dokumentationen för <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>-funktionen.</para>
+    </sect1>
+
+    <sect1 id="genius-parametric-plots">
+      <title>Parametriska grafer</title>
+      <para>I ”Skapa graf”-fönstret kan du också välja flikhäftet <guilabel>Parametrisk</guilabel> för att 
skapa tvådimensionella parametriska grafer. På detta sätt kan du rita en parametrisk funktion. Du kan 
antingen ange punkterna som <varname>x</varname> och <varname>y</varname>, eller ange ett ensamt komplext tal 
som en funktion av variabeln <varname>t</varname>. Intervallet för variabeln <varname>t</varname> anges 
explicit, och funktionen ritas enligt angivet inkrement. Intervallet för <varname>x</varname> och 
<varname>y</varname> kan ställas in automatiskt genom att kryssa i kryssrutan <guilabel>Passa till beroende 
axel</guilabel>, eller så kan det anges explicit. Se <xref linkend="paramplot-fig"/>.</para>
+
+      <figure id="paramplot-fig"> 
+        <title>Flik för parametriska grafer</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Flik för parametrisk graf i fönstret <guilabel>Skapa graf</guilabel>.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>Ett exempel på en parametrisk graf ges i <xref linkend="paramplot2-fig"/>. Liknande operationer 
kan göras på sådana grafer som kan göras på de andra linjegraferna. För grafritning på kommandoraden se 
dokumentationen för funktionerna <link 
linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> eller <link 
linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link>.</para>
+
+      <figure id="paramplot2-fig"> 
+        <title>Parametrisk graf</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Producerad parametrisk graf</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+    </sect1>
+
+    <sect1 id="genius-slopefield-plots">
+      <title>Riktningsfältsgrafer</title>
+      <para>I ”Skapa graf”-fönstret kan du också välja flikhäftet <guilabel>Riktningsfält</guilabel> för att 
skapa en tvådimensionell riktningsfältsgraf. Liknande operationer kan göras på sådana grafer som kan göras på 
de andra linjegraferna. För grafritning på kommandoraden se dokumentationen för funktionen <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>.</para>
+
+      <para>Då ett riktningsfält är aktivt finns det en extra meny <guilabel>Lösare</guilabel> tillgänglig, 
genom vilken du kan få fram lösardialogen. Här kan du få Genius att rita ut specifika lösningar för de givna 
startvillkoren. Du kan antingen ange startvillkor i dialogen eller så kan du klicka direkt på grafen för att 
ange ursprungspunkten. Medan lösardialogen är aktiv fungerar det inte att zooma genom att klicka och dra. Du 
måste stänga dialogen först om du vill zooma med musen.</para>
+
+      <para>Lösaren använder den vanliga Runge-Kutta-metoden. Graferna behålls på skärmen tills de rensas 
bort. Lösaren kommer stoppa då den når kanten på graffönstret. Att zooma ändrar inte gränserna eller 
parametrarna för lösningarna, du kommer behöva rensa bort och rita om dem med lämpliga parametrar. Du kan 
också använda funktionen <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link> för att rita 
lösningar från kommandoraden eller program.</para>
+
+    </sect1>
+
+    <sect1 id="genius-vectorfield-plots">
+      <title>Vektorfältsgrafer</title>
+      <para>I ”Skapa graf”-fönstret kan du också välja flikhäftet <guilabel>Vektorfält</guilabel> för att 
skapa en tvådimensionell vektorfältsgraf. Liknande operationer kan göras på sådana grafer som kan göras på de 
andra linjegraferna. För grafritning på kommandoraden se dokumentationen för funktionen <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>.</para>
+
+      <para>Som standard visas riktningen och magnituden för vektorfältet. För att endast visa riktning och 
inte magnituden, kryssa i motsvarande kryssruta för att normalisera pillängderna.</para>
+
+      <para>Då ett vektorfält är aktivt finns det en extra meny <guilabel>Lösare</guilabel> tillgänglig, 
genom vilken du kan få fram lösardialogen. Här kan du få Genius att rita ut specifika lösningar för de givna 
startvillkoren. Du kan antingen ange startvillkor i dialogen eller så kan du klicka direkt på grafen för att 
ange ursprungspunkten. Medan lösardialogen är aktiv fungerar det inte att zooma genom att klicka och dra. Du 
måste stänga dialogen först om du vill zooma med musen.</para>
+
+      <para>Lösaren använder den vanliga Runge-Kutta-metoden. Graferna behålls på skärmen tills de rensas 
bort. Att zooma ändrar inte gränserna eller parametrarna för lösningarna, du kommer behöva rensa bort och 
rita om dem med lämpliga parametrar. Du kan också använda funktionen <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link> för att 
rita lösningar från kommandoraden eller program.</para>
+
+    </sect1>
+
+    <sect1 id="genius-surface-plots">
+      <title>Ytgrafer</title>
+      <para>Genius kan också rita ytor. Välj fliken <guilabel>Ytgraf</guilabel> i huvudflikhäftet i 
<guilabel>Skapa graf</guilabel>-fönstret. Här kan du ange ett enskilt uttryck som ska använda antingen 
<varname>x</varname> och <varname>y</varname> som reella oberoende variabler eller <varname>z</varname> som 
en komplex variabel (där <varname>x</varname> är realdelen av <varname>z</varname> och <varname>y</varname> 
är imaginärdelen). Till exempel kan du för att rita absolutbeloppet av cosinusfunktionen för komplexa 
parametrar mata in <userinput>|cos(z)|</userinput>. Detta skulle vara ekvivalent med 
<userinput>|cos(x+1i*y)|</userinput>. Se <xref linkend="surfaceplot-fig"/>. För grafritning med kommandoraden 
se dokumentationen för funktionen <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
+      <para><varname>z</varname>-intervallet kan ställas in automatiskt genom att kryssa i kryssrutan 
<guilabel>Passa till beroende axel</guilabel>. Namnen på variablerna kan ändras genom att klicka på knappen 
<guilabel>Ändra variabelnamn…</guilabel>, vilket är användbart om du vill skriva ut eller spara figuren och 
inte vill använda standardnamnen. Slutligen kan du också undvika att skriva ut förklaringen vilket också är 
användbart då du skriver ut eller sparar, då förklaringen kan vara i vägen.</para>
+
+      <figure id="surfaceplot-fig"> 
+        <title>Ytgraf</title> 
+        <screenshot> 
+          <mediaobject> 
+            <imageobject>
+              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
+            </imageobject>
+            <textobject> 
+              <phrase>Absolutbelopp för den komplexa cosinusfunktionen.</phrase> 
+            </textobject> 
+          </mediaobject> 
+        </screenshot> 
+      </figure>
+
+      <para>I ytläge kommer vänster- och högerpiltangenterna på ditt tangentbord att rotera vyn kring 
z-axeln. Alternativt kan du rotera kring valfri axel genom att välja <guilabel>Rotera axel...</guilabel> i 
<guilabel>Visa</guilabel>-menyn. <guilabel>Visa</guilabel>-menyn har också ett toppvyläge som roterar grafen 
så att z-axeln pekar rakt ut, det vill säga vi ser grafen ovanifrån och får i princip bara färgerna som 
definierar värdena på funktionen vilket ger oss en temperaturgraf av funktionen. Slutligen bör du pröva 
<guilabel>Börja rotera animering</guilabel> för att starta en kontinuerlig långsam rotation. Detta är 
speciellt bra om du använder <application>Genius matematikverktyg</application> för en presentation för 
åskådare.</para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL ====================================== -->
+  <chapter id="genius-gel"> 
+    <title>Grunderna i GEL</title> 
+
+       <para>GEL står för Genius Extension Language. Det är språket som du använder för att skriva program i 
Genius. Ett program i GEL är helt enkelt ett uttryck som evalueras till ett tal, en matris eller ett annat 
objekt i GEL. <application>Genius matematikverktyg</application> kan användas som en enkel miniräknare eller 
som ett kraftfullt verktyg för teoretisk forskning. Syntaxen är tänkt att ha en så låg inlärningskurva som 
möjligt, särskilt då det används som en miniräknare.</para>
+
+    <sect1 id="genius-gel-values">
+      <title>Värden</title>
+
+      <para>Värden i GEL kan vara <link linkend="genius-gel-values-numbers">tal</link>, <link 
linkend="genius-gel-values-booleans">booleska värden</link> eller <link 
linkend="genius-gel-values-strings">strängar</link>. GEL behandlar också <link 
linkend="genius-gel-matrices">matriser</link> som värden. Värden kan bland annat användas i beräkningar, 
tilldelas till variabler och returneras från funktioner.</para>
+
+      <sect2 id="genius-gel-values-numbers">
+        <title>Tal</title>
+        <para>Heltal är den första taltypen i GEL. Heltal skrivs som vanligt. <programlisting>1234
+</programlisting> Hexadecimala och oktala tal kan skrivas med C-notation. Till exempel: 
<programlisting>0x123ABC
+01234
+</programlisting> Eller så kan du skriva tal i en godtycklig bas med 
<literal>&lt;base&gt;\&lt;number&gt;</literal>. Siffror större än 10 använder bokstäver liknande för 
hexadecimala tal. Till exempel kan ett tal i bas 23 skrivas: <programlisting>23\1234ABCD
+</programlisting></para>
+
+        <para>Den andra typen av GEL-tal är rationella tal. Rationella tal fås helt enkelt genom att 
dividera två heltal. Man skulle kunna skriva: <programlisting>3/4
+</programlisting> för att få tre fjärdedelar. Rationella tal accepterar också notationen för delade bråk, så 
för att få ett och tre tiondelar skulle du kunna skriva: <programlisting>1 3/10
+</programlisting></para>
+
+        <para>Nästa taltyp är flyttal. Dessa matas in på liknande sätt som C-notation. Du kan använda 
<literal>E</literal>, <literal>e</literal> eller <literal>@</literal> som exponentavskiljare. Observera att 
använda exponentavskiljaren ger ett flyttal även om det inte är något decimaltecken i talet. Exempel: 
<programlisting>1.315
+7.887e77
+7.887e-77
+.3
+0.3
+77e5
+</programlisting> När Genius skriver ut ett flyttal kommer det alltid att lägga till ett 
<computeroutput>.0</computeroutput> även om talet är ett heltal. Detta är för att indikera att flyttal tas 
som inexakta kvantiteter. Då ett tal är skrivet i vetenskaplig notation är det alltid ett flyttal och Genius 
skriver därför inte ut <computeroutput>.0</computeroutput>.</para>
+
+        <para>Den sista taltypen i GEL är de komplexa talen. Du kan mata in ett komplext tal som en summa av 
reella och imaginära delar. För att lägga till en imaginärdel, lägg till ett <literal>i</literal>. Här är 
några exempel då komplexa tal matas in: <programlisting>1+2i
+8.01i
+77*e^(1.3i)
+</programlisting></para>
+
+        <important>
+          <para>Då imaginära tal matas in måste det finnas ett tal före <literal>i</literal>. Om du använder 
<literal>i</literal> för sig själv kommer Genius att tolka det som att det handlar om variabeln 
<varname>i</varname>. Om du behöver hänvisa till ett ensamt <literal>i</literal>, använd 
<literal>1i</literal> istället.</para>
+
+          <para>För att använda blandad bråk-notation med imaginära tal måste du ha det blandade bråket inom 
parenteser. (d.v.s., <userinput>(1 2/5)i</userinput>)</para>
+        </important>
+
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-booleans">
+        <title>Booleska värden</title>
+        <para>Genius har också stöd för inbyggda booleska värden. De två booleska konstanterna är 
definierade som <constant>true</constant> och <constant>false</constant>; dessa identifierare kan användas 
som vilken annan variabel som helst. Du kan också använda identifierarna <constant>True</constant>, 
<constant>TRUE</constant>, <constant>False</constant> och <constant>FALSE</constant> som alias för de 
ovannämnda.</para>
+        <para>På alla ställen där ett booleskt uttryck förväntas kan du använda ett booleskt värde eller 
valfritt uttryck som producerar antingen ett tal eller ett booleskt värde. Om Genius behöver evaluera ett tal 
som ett booleskt värde kommer det tolka 0 som <constant>false</constant> och alla andra tal som 
<constant>true</constant>.</para>
+        <para>Utöver detta kan du göra aritmetik med booleska värden. Till exempel är <programlisting>( (1 + 
true) - false ) * true
+</programlisting> detsamma som: <programlisting>( (true or true) or not false ) and true
+</programlisting> Endast addition, subtraktion och multiplikation stöds. Om du blandar tal med booleska 
värden i ett uttryck så konverteras talen till booleska värden som beskrivits ovan. Detta betyder att till 
exempel: <programlisting>1 == true
+</programlisting> alltid evaluerar till <constant>true</constant> eftersom 1 kommer konverteras till 
<constant>true</constant> innan det jämförs med <constant>true</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-strings">
+        <title>Strängar</title>
+        <para>Som tal och booleska värden kan även strängar i GEL lagras som värden i variabler och skickas 
till funktioner. Du kan också konkatenera en sträng med ett annat värde med plus-operatorn. Till exempel: 
<programlisting>a=2+3;"Resultatet är: "+a
+</programlisting> kommer skapa strängen: <programlisting>Resultatet är: 5
+</programlisting> Du kan också använda C-liknande kontrollsekvenser som 
<literal>\n</literal>,<literal>\t</literal>,<literal>\b</literal>,<literal> och \r. F\ eller " i str\. Till 
exempel: "Omv kommer skapa en strOmv Observera dock att nprint eller printn.</literal></para>
+        <para>Dessutom kan du använda biblioteksfunktionen <link 
linkend="gel-function-string"><function>string</function></link> för att konvertera vad som helst till en 
sträng. Till exempel: <programlisting>string(22)
+</programlisting> kommer returnera <programlisting>"22"
+</programlisting> Strängar kan också jämföras med (jämförelse)operatorerna <literal>==</literal> (lika med), 
<literal>!=</literal> (inte lika med) och <literal>&lt;=&gt;</literal></para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-values-null">
+        <title>Null</title>
+        <para>Det finns ett speciellt värde som kallas <constant>null</constant>. Inga operationer kan be 
utföras på det, och inget skrivs ut då det returneras. Därför är <constant>null</constant> användbart då du 
inte vill ha utdata från ett uttryck. Värdet <constant>null</constant> kan erhållas som ett uttryck då du 
skriver <literal>.</literal>, konstanten <constant>null</constant> eller ingenting. Med ingenting menar vi 
att om du avslutar ett uttryck med en avskiljare <literal>;</literal> är det ekvivalent med att avsluta det 
med en avskiljare följt av ett <constant>null</constant>.</para>
+        <para>Exempel: <programlisting>x=5;.
+x=5;
+</programlisting></para>
+<para>Vissa funktioner returnerar <constant>null</constant> då inget värde kan returneras eller då ett fel 
uppstått. <constant>null</constant> används också som en tom vektor eller matris, eller en tom 
referens.</para>
+      </sect2>
+
+    </sect1>
+
+    <sect1 id="genius-gel-variables">
+      <title>Använda variabler</title>
+
+      <para>Syntax: <programlisting>Variabelnamn
+</programlisting> Exempel: <screen><prompt>genius&gt; </prompt><userinput>e</userinput>
+= 2.71828182846
+</screen></para>
+
+      <para>För att evaluera en ensam variabel skriver du bara in namnet på variabeln. Detta returnerar 
variabelns värde. Du kan använda en variabel var som helst där du vanligen skulle använda ett tal eller en 
sträng. Dessutom är variabler nödvändiga då man definierar funktioner som tar argument (se <xref 
linkend="genius-gel-functions-defining"/>).</para>
+
+      <tip>
+        <title>Använda tabbkomplettering</title>
+        <para>Du kan använda tabbkomplettering för att få Genius att komplettera variabelnamn åt dig. Skriv 
in de första bokstäverna i namnet och tryck <userinput>Tabb</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Variabelnamn är skiftlägeskänsliga</title>
+        <para>Namnen på variabler är skiftlägeskänsliga. Detta betyder att variablerna med namnen 
<varname>hej</varname>, <varname>HEJ</varname> och <varname>Hej</varname> alla är olika variabler.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-variables-setting">
+        <title>Ställa in variabler</title>
+        <para>Syntax: <programlisting><![CDATA[<identifier> = <value>
+<identifier> := <value>]]>
+</programlisting> Exempel: <programlisting>x = 3
+x := 3
+</programlisting></para>
+
+        <para>För att tilldela ett värde till en variabel, använd operatorerna <literal>=</literal> eller 
<literal>:=</literal>. Dessa operatorer ställer in värdet på variabeln och returnerar värdet som du ställt 
in, så du kan göra saker som <programlisting>a = b = 5
+</programlisting> Detta kommer ställa in <varname>b</varname> till 5 och sedan även ställa in 
<varname>a</varname> till 5.</para>
+
+        <para>Operatorerna <literal>=</literal> och <literal>:=</literal> kan båda användas för att ställa 
in variabler. Skillnaden mellan dem är att <literal>:=</literal>-operatorn alltid beter sig som en 
tilldelningsoperator medan <literal>=</literal>-operatorn kan tolkas som ett test för likhet då den används i 
en kontext där ett booleskt uttryck förväntas.</para>
+
+       <para>För mer information om variablers räckvidd, det vill säga när vilka variabler är synliga, se 
<xref linkend="genius-gel-variables-global"/>.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-variables-built-in">
+        <title>Inbyggda variabler</title>
+        <para>GEL har ett antal inbyggda ”variabler”, som <varname>e</varname>, <varname>pi</varname> eller 
<varname>GoldenRatio</varname>. Dessa är ofta använda konstanter med ett förinställt värde, och de kan inte 
tilldelas nya värden. Det finns ett antal andra inbyggda variabler. Se <xref 
linkend="genius-gel-function-list-constants"/> för en fullständig lista. Observera att <varname>i</varname> 
som standard inte är kvadratroten av minus ett (det imaginära talet), och har lämnats odefinierad för att 
kunna användas som en räknare. Om du vill skriva det imaginära talet kommer du behöva använda 
<userinput>1i</userinput>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-previous-result">
+        <title>Variabel för föregående resultat</title>
+        <para>Variablerna <varname>Ans</varname> och <varname>ans</varname> kan användas för att få 
resultatet av det senaste uttrycket. Om du till exempel utfört någon beräkning kan du göra följande för att 
lägga till 389 till resultatet: <programlisting>Ans+389
+</programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-functions">
+      <title>Använda funktioner</title>
+
+      <para>Syntax: <programlisting>Funktionsnamn(argument1, argument2, ...)
+</programlisting> Exempel: <programlisting>Factorial(5)
+cos(2*pi)
+gcd(921,317)
+</programlisting> För att evaluera en funktion, mata in funktionens namn följt av funktionens argument (om 
sådana finns) i parenteser. Detta kommer returnera resultatet av att tillämpa funktionen på dess argument. 
Antalet argument för funktionen skiljer sig förstås åt för varje funktion.</para>
+
+      <para>Det finns många inbyggda funktioner, som <link 
linkend="gel-function-sin"><function>sin</function></link>, <link 
linkend="gel-function-cos"><function>cos</function></link> och <link 
linkend="gel-function-tan"><function>tan</function></link>. Du kan använda det inbyggda kommandot <link 
linkend="gel-command-help"><function>help</function></link> för att få en lista över tillgängliga funktioner, 
eller se <xref linkend="genius-gel-function-list"/> för en fullständig lista.</para>
+
+      <tip>
+        <title>Använda tabbkomplettering</title>
+        <para>Du kan använda tabbkomplettering för att få Genius att komplettera funktionsnamn åt dig. Skriv 
in de första bokstäverna i namnet och tryck <userinput>Tabb</userinput>.</para>
+      </tip>
+
+      <important>
+        <title>Funktionsnamn är skiftlägeskänsliga</title>
+        <para>Namnen på funktioner är skiftlägeskänsliga. Detta betyder att funktionerna med namnen 
<function>arbeta</function>, <function>ARBETA</function> och <function>Arbeta</function> alla är olika 
funktioner.</para>
+      </important>
+
+
+      <sect2 id="genius-gel-functions-defining">
+        <title>Definiera funktioner</title>
+        <para>Syntax: <programlisting><![CDATA[function <identifier>(<comma separated arguments>) = 
<function body>
+<identifier> = (`() = <function body>)
+]]></programlisting> <literal>`</literal> är tecknet grav accent och betecknar en anonym funktion. Genom att 
ställa in den till ett variabelnamn definierar du praktiskt sett en funktion.</para>
+
+        <para>En funktion tar noll eller fler kommaseparerade argument och returnerar resultatet av 
funktionskroppen. Att definiera dina egna funktioner är främst en bekvämlighetsfråga; en möjlig användning är 
att ha uppsättningar av funktioner definierade i GEL-filer som Genius kan läsa in för att göra dem 
tillgängliga. Exempel: <programlisting>function addup(a,b,c) = a+b+c
+</programlisting> sedan <userinput>addup(1,4,9)</userinput> ger 14</para>
+      </sect2>
+
+      <sect2 id="genius-gel-functions-variable-argument-lists">
+        <title>Variabla argumentlistor</title>
+        <para>Om du inkluderar <literal>...</literal> efter det sista argumentnamnet i funktionsdeklaration 
kommer Genius att tillåta ett godtyckligt antal argument att skickas istället för det argumentet. Om inga 
skickades så kommer det argumentet att ställas in till <constant>null</constant>. I andra fall kommer det 
vara en horisontell vektor som innehåller alla argumenten. Till exempel: <programlisting>function f(a,b...) = 
b
+</programlisting> Då kommer <userinput>f(1,2,3)</userinput> att ge <computeroutput>[2,3]</computeroutput>, 
medan <userinput>f(1)</userinput> ger ett <constant>null</constant>.</para>
+      </sect2>
+
+
+      <sect2 id="genius-gel-functions-passing-functions">
+        <title>Skicka funktioner till funktioner</title>
+
+        <para>I Genius är det möjligt att skicka en funktion som ett argument till en annan funktion. Detta 
kan antingen göras med ”funktionsnoder” eller anonyma funktioner.</para>
+
+        <para>Om du inte matar in parenteserna efter ett funktionsnamn så kommer funktionen istället för att 
evalueras returneras som en ”funktionsnod”. Funktionsnoden kan sedan skickas till en annan funktion. Exempel: 
<programlisting>function f(a,b) = a(b)+1;
+function b(x) = x*x;
+f(b,2)
+</programlisting></para>
+        <para>För att skicka funktioner som inte är definierade kan du använda en anonym funktion (se <xref 
linkend="genius-gel-functions-defining"/>). Det vill säga att du vill skicka en funktion utan att ge den ett 
namn. Syntax: <programlisting><![CDATA[function(<comma separated arguments>) = <function body>
+`(<comma separated arguments>) = <function body>
+]]></programlisting> Exempel: <programlisting>function f(a,b) = a(b)+1;
+f(`(x) = x*x,2)
+</programlisting> Detta kommer returnera 5.</para>
+      </sect2>
+
+
+    <sect2 id="genius-gel-functions-operations">
+      <title>Operationer på funktioner</title>
+      <para>Vissa funktioner tillåter aritmetiska operationer, och vissa funktioner med ett argument som 
<link linkend="gel-function-exp"><function>exp</function></link> eller <link 
linkend="gel-function-ln"><function>ln</function></link> att operera på funktionen. Till exempel returnerar 
<programlisting>exp(sin*cos+4)
+</programlisting> en funktion som tar <varname>x</varname> och returnerar 
<userinput>exp(sin(x)*cos(x)+4)</userinput>. Det är funktionellt sett ekvivalent med att skriva 
<programlisting>`(x) = exp(sin(x)*cos(x)+4)
+</programlisting> Denna operation kan vara användbar då man definierar funktioner snabbt. För att till 
exempel skapa en funktion som kallas <varname>f</varname> för att utföra operationen ovan kan du helt enkelt 
skriva: <programlisting>f = exp(sin*cos+4)
+</programlisting> Det kan också användas i grafritning. För att till exempel rita grafen för sinus i kvadrat 
kan du mata in: <programlisting>LinePlot(sin^2)
+</programlisting></para>
+
+      <warning>
+        <para>Alla funktioner kan inte användas på detta sätt. Då du till exempel använder en binär 
operation måste funktionerna ta samma antal argument.</para>
+      </warning>
+    </sect2>
+
+
+    </sect1>
+
+    <sect1 id="genius-gel-separator">
+      <title>Avskiljare</title>
+      <para>GEL skiljer sig något från andra språk i hur det hanterar flera kommandon och funktioner. I GEL 
måste du skapa en kedja av kommandon med en avskiljaroperator. Det vill säga om du vill skriva mer än ett 
uttryck måste du använda <literal>;</literal>-operatorn mellan uttrycken. Detta är ett sätt så att båda 
uttrycken evalueras och att resultatet av det andra (eller det sista om det finns mer är två uttryck) 
returneras. Anta att du matar in följande: <programlisting>3 ; 5
+</programlisting> Detta uttryck kommer att ge 5.</para>
+      <para>Detta kommer ibland att kräva parenteser för att göra det otvetydigt, särskilt om 
<literal>;</literal> inte är den översta primitiven. Detta skiljer sig något från andra programmeringsspråk 
där <literal>;</literal> terminerar uttryck, medan den i GEL faktiskt är en binär operator. Om du är bekant 
med pascal faller detta sig naturligt. Genius kan dock låta dig låtsas att den är en terminator i någon 
utsträckning. Om en <literal>;</literal> hittas i slutet på en parentes eller ett block kommer genius att 
lägga till ett null efter den som om du hade skrivit <userinput>;null</userinput>. Detta är användbart ifall 
du inte vill returnera ett värde från exempelvis en slinga, eller om du vill hantera returvärdet på annat 
sätt. Observera att detta kommer sakta ner koden något om det anropas för ofta eftersom det är en till 
operator inblandad.</para>
+      <para>Om du skriver uttryck i ett program måste du inte lägga till ett semikolon. I detta fall kommer 
genius helt enkelt att skriva ut returvärdet närhelst det exekverar uttrycket. Observera dock att om du 
definierar en funktion så är kroppen av funktionen ett enda uttryck.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-comments">
+      <title>Kommentarer</title>
+      <para>GEL liknar andra skriptspråk i att <literal>#</literal> betecknar en kommentar, det vill säga 
text som inte ska evalueras. Allt från nummertecknet till slutet på raden kommer att ignoreras. Till exempel, 
<programlisting># Det här är bara en kommentar
+# varje rad i en kommentar måste ha ett nummertecken
+# i nästa rad ställer vi in x till värdet 123
+x=123;
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-modular-evaluation">
+      <title>Moduloberäkning</title>
+      <para>Genius implementerar modulär aritmetik. För att använda det lägger du bara till ”mod 
&lt;heltal&gt;” efter uttrycket. Exempel: <userinput>2^(5!) * 3^(6!) mod 5</userinput> Det kunde vara möjligt 
att utföra modulär aritmetik genom att beräkna med heltal och sedan beräkna modulo i slutet med 
<literal>%</literal>-operatorn, vilken helt enkelt ger resten, men det kan vara tidskrävande om inte omöjligt 
då man arbetar med större tal. Till exempel, <userinput>10^(10^10) % 6</userinput> kommer helt enkelt inte 
att fungera (exponenten kommer vara för stor), medan <userinput>10^(10^10) mod 6</userinput> är omedelbart. 
Det första uttrycket försöker först att beräkna heltalet <userinput>10^(10^10)</userinput> och sedan hitta 
resten efter division med 6, medan det andra uttrycket evaluerar allting modulo 6 till att börja med.</para>
+      <para>Du kan beräkna inverserna av tal modulo något heltal genom att bara använda rationella tal 
(givetvis måste inversen existera). Exempel: <programlisting>10^-1 mod 101
+1/10 mod 101</programlisting> Du kan också utföra modulär evaluering med matriser inklusive att ta inverser, 
potenser och division. Exempel: <programlisting>A = [1,2;3,4]
+B = A^-1 mod 5
+A*B mod 5</programlisting> Detta skulle ge identitetsmatrisen eftersom B kommer vara inversen av A mod 
5.</para>
+      <para>Vissa funktioner som <link linkend="gel-function-sqrt"><function>sqrt</function></link> eller 
<link linkend="gel-function-log"><function>log</function></link> fungerar annorlunda i moduloläge. Dessa 
kommer då fungera som sina diskreta versioner inom den ring av heltal som du valt. Till exempel: 
<programlisting>genius&gt; sqrt(4) mod 7
+=
+[2, 5]
+genius&gt; 2*2 mod 7
+= 4</programlisting><function>sqrt</function> kommer faktiskt returnera alla möjliga kvadratrötter.</para>
+      <para>Kedja inte samman modulo-operatorer, placera det helt enkelt i slutet på beräkningen, alla 
beräkningar i uttrycket till vänster kommer utföras i modulär aritmetik. Om du placerar en mod inuti en annan 
mod kommer du att få oväntade resultat. Om du helt enkelt vill beräkna modulo av ett enda tal och kontrollera 
exakt då rester tas är det bäst att använda <literal>%</literal>-operatorn. Då du behöver kedja samman flera 
uttryck i modulär aritmetik med olika delare kan det vara bäst att bara dela upp uttrycken i flera och 
använda tillfälliga variabler för att undvika att ha mod inuti mod.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-operator-list">
+      <title>Lista över GEL-operatorer</title>
+
+      <para>Allt i GEL är bara ett uttryck. Uttryck slås samman med olika operatorer. Som vi har sett är 
till och med avskiljaren helt enkelt en binär operator i GEL. Här är en lista över operatorerna i GEL.</para>
+
+      <variablelist>
+        <varlistentry>
+         <term><userinput>a;b</userinput></term>
+         <listitem>
+           <para>Avskiljaren, evaluerar helt enkelt både <varname>a</varname> och <varname>b</varname>, men 
returnerar bara resultatet av <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a=b</userinput></term>
+         <listitem>
+           <para>Tilldelningsoperatorn. Denna tilldelar <varname>b</varname> till <varname>a</varname> 
(<varname>a</varname> måste vara ett giltigt <link linkend="genius-gel-lvalues">vvärde</link>) (observera 
dock att denna operator kan översättas till <literal>==</literal> om den används där ett booleskt uttryck 
förväntas)</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:=b</userinput></term>
+         <listitem>
+           <para>Tilldelningsoperatorn. Tilldelar <varname>b</varname> till <varname>a</varname> 
(<varname>a</varname> måste vara ett giltigt <link linkend="genius-gel-lvalues">vvärde</link>) Detta skiljer 
sig från <literal>=</literal> eftersom det aldrig översätts till <literal>==</literal>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>|a|</userinput></term>
+         <listitem>
+           <para>Absolutbelopp. Om uttrycket är ett komplext tak kommer resultatet vara avståndet från 
origo. Till exempel: <userinput>|3 * e^(1i*pi)|</userinput> returnerar 3.</para>
+          <para>Se <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a^b</userinput></term>
+         <listitem>
+           <para>Exponentiering, upphöjer <varname>a</varname> till exponenten <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.^b</userinput></term>
+         <listitem>
+           <para>Elementvis exponentiering. Upphöj varje element i en matris <varname>a</varname> till 
exponenten <varname>b</varname>. Eller om <varname>b</varname> är en matris med samma storlek som 
<varname>a</varname>, gör i så fall operationen elementvis. Om <varname>a</varname> är ett tal och 
<varname>b</varname> är en matris så skapar det en matris av samma storlek som <varname>b</varname> med 
<varname>a</varname> upphöjt till alla de olika exponenterna i <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a+b</userinput></term>
+         <listitem>
+           <para>Addition. Adderar två tal, matriser, funktioner eller strängar. Om du lägger till en sträng 
kommer resultatet att vara en sträng. Om en är en kvadratisk matris och den andra ett tal kommer talet att 
multipliceras med identitetsmatrisen.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a-b</userinput></term>
+         <listitem>
+           <para>Subtraktion. Subtrahera två tal, matriser eller funktioner.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a*b</userinput></term>
+         <listitem>
+           <para>Multiplikation. Detta är vanlig matrismultiplikation.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.*b</userinput></term>
+         <listitem>
+           <para>Elementvis multiplikation om <varname>a</varname> och <varname>b</varname> är 
matriser.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a/b</userinput></term>
+         <listitem>
+           <para>Division. Då <varname>a</varname> och <varname>b</varname> bara är tal är detta vanlig 
division. Då de är matriser är detta ekvivalent med <userinput>a*b^-1</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a./b</userinput></term>
+         <listitem>
+           <para>Elementvis division. Samma som <userinput>a/b</userinput> för tal, men opererar elementvis 
på matriser.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a\b</userinput></term>
+         <listitem>
+           <para>Baklängesdivision. Det vill säga detta är samma sak som <userinput>b/a</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.\b</userinput></term>
+         <listitem>
+           <para>Elementvis baklängesdivision.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a%b</userinput></term>
+         <listitem>
+           <para>Modulooperatorn. Detta slår inte på <link 
linkend="genius-gel-modular-evaluation">moduloläget</link>, utan returnerar bara resten av heltalsdivisionen 
<userinput>a/b</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.%b</userinput></term>
+         <listitem>
+           <para>Elementvis modulooperator. Returnerar resten efter elementvis division 
<userinput>a./b</userinput> av heltal.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a mod b</userinput></term>
+         <listitem>
+           <para>Modulär evalueringsoperator. Uttrycket <varname>a</varname> evalueras modulo 
<varname>b</varname>. Se <xref linkend="genius-gel-modular-evaluation"/>. Vissa funktioner och operatorer 
beter sig annorlunda modulo ett heltal.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!</userinput></term>
+         <listitem>
+           <para>Fakultetsoperator. Detta är som <userinput>1*...*(n-2)*(n-1)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!!</userinput></term>
+         <listitem>
+           <para>Semifakultetsoperator. Detta är som <userinput>1*...*(n-4)*(n-2)*n</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a==b</userinput></term>
+         <listitem>
+           <para>Likhetsoperator. Returnerar <constant>true</constant> eller <constant>false</constant> 
beroende på om <varname>a</varname> och <varname>b</varname> är lika eller inte.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a!=b</userinput></term>
+         <listitem>
+           <para>Olikhetsoperator, returnerar <constant>true</constant> om <varname>a</varname> inte är lika 
med <varname>b</varname>, returnerar annars <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;&gt;b</userinput></term>
+         <listitem>
+           <para>Alternativ olikhetsoperator, returnerar <constant>true</constant> om <varname>a</varname> 
inte är lika med <varname>b</varname>, returnerar annars <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=b</userinput></term>
+         <listitem>
+           <para>Mindre än eller lika med-operator, returnerar <constant>true</constant> om 
<varname>a</varname> är mindre eller lika med <varname>b</varname>, returnerar annars 
<constant>false</constant>. Dessa kan kombineras som i <userinput>a &lt;= b &lt;= c</userinput> (kan också 
kombineras med mindre än-operatorn).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;=b</userinput></term>
+         <listitem>
+           <para>Större än eller lika med-operator, returnerar <constant>true</constant> om 
<varname>a</varname> är större eller lika med <varname>b</varname>, returnerar annars 
<constant>false</constant>. Dessa kan kombineras som i <userinput>a &gt;= b &gt;= c</userinput> (kan också 
kombineras med större än-operatorn).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a&lt;b</userinput></term>
+         <listitem>
+           <para>Mindre än-operator, returnerar <constant>true</constant> om <varname>a</varname> är mindre 
än <varname>b</varname>, returnerar annars <constant>false</constant>. Dessa kan kombineras som i 
<userinput>a &lt; b &lt; c</userinput> (kan också kombineras med mindre än eller lika med-operatorn).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&gt;b</userinput></term>
+         <listitem>
+           <para>Större än-operator, returnerar <constant>true</constant> om <varname>a</varname> är större 
än <varname>b</varname>, returnerar annars <constant>false</constant>. Dessa kan kombineras som i 
<userinput>a &gt; b &gt; c</userinput> (kan också kombineras med större än eller lika med-operatorn).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a&lt;=&gt;b</userinput></term>
+         <listitem>
+           <para>Jämförelseoperator. Om <varname>a</varname> är lika med <varname>b</varname> returnerar den 
0, om <varname>a</varname> är mindre än <varname>b</varname> returnerar den -1 och om <varname>a</varname> är 
större än <varname>b</varname> returnerar den 1.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a and b</userinput></term>
+         <listitem>
+           <para>Logiskt och. Returnerar true om både <varname>a</varname> och <varname>b</varname> är true, 
returnerar annars false. Om tal gives behandlas nollskilda tal som true.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a or b</userinput></term>
+         <listitem>
+           <para>Logiskt eller. Returnerar true om antingen <varname>a</varname> eller <varname>b</varname> 
är true, returnerar annars false. Om tal gives behandlas nollskilda tal som true.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a xor b</userinput></term>
+         <listitem>
+           <para>Logiskt uteslutande eller. Returnerar true om exakt en av <varname>a</varname> eller 
<varname>b</varname> är true, returnerar annars false. Om tal gives behandlas nollskilda tal som true.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>not a</userinput></term>
+         <listitem>
+           <para>Logiskt inte. Returnerar den logiska negationen till <varname>a</varname></para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>-a</userinput></term>
+         <listitem>
+           <para>Negationsoperator. Returnerar negativet av ett tal eller en matris (arbetar elementvis på 
en matris).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>&amp;a</userinput></term>
+         <listitem>
+           <para>Variabelreferens (för att skicka en referens till en variabel). Se <xref 
linkend="genius-gel-references"/>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>*a</userinput></term>
+         <listitem>
+           <para>Variabeldereferering (för att komma åt en refererad variabel). Se <xref 
linkend="genius-gel-references"/>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a'</userinput></term>
+         <listitem>
+           <para>Konjugattransponatet för matris. Det vill säga rader och kolumner byter plats och vi tar 
komplexkonjugatet av alla poster. Det vill säga om i,j-elementet av <varname>a</varname> är x+iy så är 
j,i-elementet av <userinput>a'</userinput> då x-iy.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a.'</userinput></term>
+         <listitem>
+           <para>Matristransponat, konjugerar inte posterna. Det vill säga i,j-elementet av 
<varname>a</varname> blir j,i-elementet av <userinput>a.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,c)</userinput></term>
+         <listitem>
+           <para>Hämta element för en matris i rad <varname>b</varname> och kolumn <varname>c</varname>. Om 
<varname>b</varname>, <varname>c</varname> är vektorer så ger detta de motsvarande raderna, kolumnerna eller 
delmatriserna.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,)</userinput></term>
+         <listitem>
+           <para>Hämta rad av en matris (eller flera rader om <varname>b</varname> är en vektor).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b,:)</userinput></term>
+         <listitem>
+           <para>Samma som ovan.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(,c)</userinput></term>
+         <listitem>
+           <para>Hämta kolumn av en matris (eller flera kolumner om <varname>b</varname> är en 
vektor).</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(:,c)</userinput></term>
+         <listitem>
+           <para>Samma som ovan.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a@(b)</userinput></term>
+         <listitem>
+           <para>Hämta ett element från en matris behandlad som en vektor. Detta kommer traversera matrisen 
radvis.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b</userinput></term>
+         <listitem>
+           <para>Bygg en vektor från <varname>a</varname> till <varname>b</varname> (eller ange en rad- och 
kolumnregion för <literal>@</literal>-operatorn). Till exempel kan vi för att få raderna 2 till 4 av matrisen 
<varname>A</varname> göra <programlisting>A@(2:4,)
+            </programlisting> eftersom <userinput>2:4</userinput> kommer returnera en vektor 
<userinput>[2,3,4]</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>a:b:c</userinput></term>
+         <listitem>
+           <para>Bygg en vektor från <varname>a</varname> till <varname>c</varname> med <varname>b</varname> 
som steglängd. Det vill säga exempelvis <programlisting>genius&gt; 1:2:9
+=
+`[1, 3, 5, 7, 9]
+</programlisting></para>
+          <para>Då de inblandade talen är flyttal, till exempel <userinput>1.0:0.4:3.0</userinput>, är 
utmatningen vad som förväntas även om att lägga till 0.4 till 1.0 fem gånger faktiskt är något mindre än 3.0 
på grund av sättet som flyttal lagras i bas 2 (det finns inget 0.4, det faktiska lagrade talet är bara något 
större). Sättet detta hanteras är detsamma som i for-, sum-, och prod-slingorna. Om slutet är inom 
<userinput>2^-20</userinput> gånger stegstorleken till ändpunkten, används ändpunkten och vi antar att det 
fanns avrundningsfel. Detta är inte perfekt, men hanterar de flesta fallen. Denna kontroll görs bara från 
version 1.0.18 och framåt, så exekvering av din kod kan skilja sig åt i äldre versioner. Använd faktiska 
rationella tal om du vill undvika att hantera detta problem, möjligen tillsammans med 
<function>float</function> om du vill få flyttal i slutet. Till exempel gör <userinput>1:2/5:3</userinput> 
rätt sak och <userinput>float
 (1:2/5:3)</userinput> ger dig till och med flyttal och är även något mer exakt än 
<userinput>1.0:0.4:3.0</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>(a)i</userinput></term>
+         <listitem>
+           <para>Gör <varname>a</varname> till ett imaginärt tal (multiplicera <varname>a</varname> med det 
imaginära). Observera att <varname>i</varname> vanligen skrivs <userinput>1i</userinput>, så det ovanstående 
är detsamma som <programlisting>(a)*1i
+            </programlisting></para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><userinput>`a</userinput></term>
+         <listitem>
+           <para>Citera en identifierare så att den inte evalueras. Eller citera en matris så att den inte 
expanderas.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>a swapwith b</userinput></term>
+         <listitem>
+           <para>Byt värde på <varname>a</varname> med värdet av <varname>b</varname>. Opererar för 
närvarande inte på intervall av matriselement. Det returnerar <constant>null</constant>. Tillgängligt från 
version 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a</userinput></term>
+         <listitem>
+           <para>Inkrementera variabeln <varname>a</varname> med 1. Om <varname>a</varname> är en matris 
inkrementeras varje element. Detta är ekvivalent med <userinput>a=a+1</userinput>, men är något snabbare. Det 
returnerar <constant>null</constant>. Tillgängligt från version 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><userinput>increment a by b</userinput></term>
+         <listitem>
+           <para>Inkrementera variabeln <varname>a</varname> med <varname>b</varname>. Om 
<varname>a</varname> är en matris inkrementeras varje element. Detta är ekvivalent med 
<userinput>a=a+b</userinput>, men är något snabbare. Det returnerar <constant>null</constant>. Tillgängligt 
från version 1.0.13.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+
+<note>
+<para>@()-operatorn gör :-operatorn mest användbar. Med denna kan du ange regioner i en matris. Därmed är 
a@(2:4,6) raderna 2,3,4 för kolumn 6. Eller så ger a@(,1:2) dig de två första kolumnerna i en matris. Du kan 
också tilldela till @()-operatorn, så länge som högervärdet är en matris som matchar regionens storlek, eller 
om det är någon annan sorts värde.</para>
+</note>
+
+<note>
+<para>Jämförelseoperatorerna (förutom &lt;=&gt;-operatorn, vilken beter sig normalt) är inte strikt binära 
operatorer, de kan i själva verket grupperas på det vanliga matematiska sättet, t.ex. så är 
(1&lt;x&lt;=y&lt;5) ett giltigt booleskt uttryck och betyder precis vad det borde, det vill säga (1&lt;x och 
x≤y och y&lt;5)</para>
+</note>
+
+<note>
+<para>Unärt minus opererar annorlunda beroende på var det förekommer. Om det förekommer före ett tal binder 
det väldigt hårt, om det förekommer före ett uttryck binder det mindre hårt än potens- och 
fakultet-operatorerna. Så till exempel är <userinput>-1^k</userinput> faktiskt <userinput>(-1)^k</userinput>, 
men <userinput>-foo(1)^k</userinput> är verkligen <userinput>-(foo(1)^k)</userinput>. Så var aktsam över hur 
du använder det, och om du är osäker, lägg till parenteser.</para>
+</note>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL Programming ========================== -->
+  <chapter id="genius-gel-programming">
+    <title>Programmering med GEL</title>
+
+    <sect1 id="genius-gel-conditionals">
+      <title>Villkor</title>
+      <para>Syntax: <programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
+]]></programlisting> Om <literal>else</literal> utesluts och <literal>uttryck1</literal> ger 
<constant>false</constant> eller 0 kommer <literal>NULL</literal> att returneras.</para>
+      <para>Exempel: <programlisting><![CDATA[if(a==5)then(a=a-1)
+if b<a then b=a
+if c>0 then c=c-1 else c=0
+a = ( if b>0 then b else 1 )
+]]></programlisting> Observera att <literal>=</literal> kommer att översättas till <literal>==</literal> om 
det används inuti uttrycket för <literal>if</literal>, så <programlisting>if a=5 then a=a-1
+</programlisting> kommer tolkas som: <programlisting>if a==5 then a:=a-1
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loops">
+      <title>Slingor</title>
+
+      <sect2 id="genius-gel-loops-while">
+        <title>While-slingor</title>
+        <para>Syntax: <programlisting><![CDATA[while <expression1> do <expression2>
+until <expression1> do <expression2>
+do <expression2> while <expression1>
+do <expression2> until <expression1>]]></programlisting> Dessa är liknande som i andra språk. Eftersom det i 
GEL helt enkelt är ett uttryck som måste ha ett returvärde kommer dessa konstruktioner dock att helt enkelt 
returnera resultatet av den sista iterationen eller <literal>NULL</literal> om ingen iteration utfördes. I 
det booleska uttrycket översätts <literal>=</literal> till <literal>==</literal> precis som för 
<literal>if</literal>-satsen.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-for">
+        <title>For-slingor</title>
+        <para>Syntax: <programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
+for <identifier> = <from> to <to> by <increment> do <body>]]></programlisting> Slinga med identifierare 
inställd till alla värden från <literal>&lt;from&gt;</literal> till <literal>&lt;to&gt;</literal>, valfritt 
med ett annat inkrement än 1. Dessa är snabbare, trevligare och mer kompakta än de vanliga slingorna som 
ovan, men mindre flexibla. Identifieraren måste vara en identifierare och kan inte vara en dereferering. 
Värdet på identifieraren är identifierarens sista värde, eller <literal>&lt;from&gt;</literal> om kroppen 
aldrig evaluerades. Variabeln är garanterad att vara initierad efter en slinga, så du kan använda den säkert. 
Vidare måste <literal>&lt;from&gt;</literal>, <literal>&lt;to&gt;</literal> och 
<literal>&lt;increment&gt;</literal> vara icke-komplexa tal. <literal>&lt;to&gt;</literal> är inte garanterad 
att träffas, men kommer aldrig att passeras, till exempel skriver följande ut udda tal från 1 till 19: 
<programlisting>for i = 1 to 20 by 2 d
 o print(i)
+</programlisting></para>
+        <para>Då ett av värdena är ett flyttal görs den sista kontrollen till inom 2^-20 av stegstorleken. 
Det vill säga även om vi passerar med 2^-20 gånger ”by”-värdet ovan kommer vi fortfarande att exekvera den 
sista iterationen. På detta sätt gör <programlisting>for x = 0 to 1 by 0.1 do print(x)
+</programlisting> vad som förväntas även om addition av 0.1 tio gånger blir något mer än 1.0 på grund av hur 
flyttal lagras i bas 2 (det finns inget 0.1, det faktiska lagrade talet är något större). Detta är inte 
perfekt, men hanterar de flesta fallen. Använd faktiska rationella tal om du vill undvika att hantera detta 
problem, till exempel: <programlisting>for x = 0 to 1 by 1/10 do print(x)
+</programlisting> Denna kontroll görs bara från version 1.0.16 och framåt, så exekvering av din kod kan 
skilja sig åt i äldre versioner.</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-foreach">
+        <title>Foreach-slingor</title>
+        <para>Syntax: <programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting> 
För varje element i matrisen, från rad till rad från vänster till höger exekverar vi kroppen med 
identifieraren inställd till aktuellt element. För att skriva ut siffrorna 1,2,3 och 4 i denna ordning kan du 
göra: <programlisting>for n in [1,2:3,4] do print(n)
+</programlisting> Om du vill gå genom raderna och kolumnerna i en matris kan du använda funktionerna RowsOf 
och ColumnsOf som returnerar en vektor av raderna eller kolumnerna i matrisen. Så <programlisting>for n in 
RowsOf ([1,2:3,4]) do print(n)
+</programlisting> kommer skriva ut [1,2] och sedan [3,4].</para>
+      </sect2>
+
+      <sect2 id="genius-gel-loops-break-continue">
+        <title>Break och Continue</title>
+        <para>Du kan också använda kommandona <literal>break</literal> och <literal>continue</literal> i 
slingor. Fortsättningskommandot <literal>continue</literal> kommer att starta om den aktuella slingan i dess 
nästa iteration, medan kommandot <literal>break</literal> går ur den aktuella slingan. 
<programlisting><![CDATA[while(<expression1>) do (
+  if(<expression2>) break
+  else if(<expression3>) continue;
+  <expression4>
+)
+]]></programlisting></para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="genius-gel-sums-products">
+      <title>Summor och produkter</title>
+      <para>Syntax: <programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
+sum <identifier> = <from> to <to> by <increment> do <body>
+sum <identifier> in <matrix> do <body>
+prod <identifier> = <from> to <to> do <body>
+prod <identifier> = <from> to <to> by <increment> do <body>
+prod <identifier> in <matrix> do <body>]]></programlisting> Om du ersätter <literal>for</literal> med 
<literal>sum</literal> eller <literal>prod</literal> kommer du att få en summa eller en produkt istället för 
en <literal>for</literal>-slinga. Istället för att returnera det sista värdet kommer dessa att returnera 
summan respektive produkten av värdena.</para>
+      <para>Om ingen kropp exekveras (till exempel <userinput>sum i=1 to 0 do ...</userinput>) så kommer 
<literal>sum</literal> att returnera 0 och <literal>prod</literal> att returnera 1 som är 
standardkonventionen.</para>
+      <para>För flyttal görs samma skydd mot avrundningsfel som i for-slingan. Se <xref 
linkend="genius-gel-loops-for"/>.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-comparison-operators">
+      <title>Jämförelseoperatorer</title>
+      <para>Följande standardoperatorer för jämförelse stöds i GEL och har de uppenbara betydelserna: 
<literal>==</literal>, <literal>&gt;=</literal>, <literal>&lt;=</literal>, <literal>!=</literal>, 
<literal>&lt;&gt;</literal>, <literal>&lt;</literal>, <literal>&gt;</literal>. De returnerar 
<constant>true</constant> eller <constant>false</constant>. Operatorerna <literal>!=</literal> och 
<literal>&lt;&gt;</literal> är samma sak och betyder ”är inte lika med”. GEL stöder även operatorn 
<literal>&lt;=&gt;</literal> som returnerar -1 om vänstersidan är mindre, 0 om båda sidor är lika, 1 om 
vänstersidan är större.</para>
+
+      <para>Normalt översätts <literal>=</literal> till <literal>==</literal> om det förekommer någonstans 
där GEL förväntar sig ett villkor som i if-villkoret. Till exempel är <programlisting>if a=b then c
+if a==b then c
+</programlisting> samma sak i GEL. Du bör dock använda <literal>==</literal> eller <literal>:=</literal> då 
du vill jämföra respektive tilldela om du vill att din kod ska vara lätt att läsa och för att undvika 
misstag.</para>
+
+      <para>Alla jämförelseoperatorerna (förutom <literal>&lt;=&gt;</literal>-operatorn, vilken beter sig 
normalt) är inte strikt binära operatorer, de kan i själva verket grupperas på det vanliga matematiska 
sättet, t.ex. så är (<literal>1&lt;x&lt;=y&lt;5</literal>) ett giltigt booleskt uttryck och betyder precis 
vad det borde, det vill säga (1&lt;x och x≤y och y&lt;5)</para>
+      <para>Använd orden <literal>not</literal>, <literal>and</literal>, <literal>or</literal>, 
<literal>xor</literal> för att bygga upp logiska uttryck. Operatorerna <literal>or</literal> och 
<literal>and</literal> är speciella eftersom de evaluerar sina uttryck ett efter ett, så det vanliga tricket 
för villkorlig evaluering fungerar även här. Till exempel kommer <literal>1 or a=1</literal> inte att ställa 
in <literal>a=1</literal> eftersom det första argumentet var true (sant).</para>
+    </sect1>
+
+      <sect1 id="genius-gel-variables-global">
+        <title>Globala variabler och räckvidd för variabler</title>
+       <para>GEL är ett <ulink url="https://en.wikipedia.org/wiki/Scope_%28programming%29";> språk med 
dynamisk räckvidd</ulink>. Vi kommer att förklara vad detta betyder nedan. Det betyder att normala variabler 
och funktioner har dynamisk räckvidd. Undantaget är <link 
linkend="genius-gel-parameters">parametervariabler</link> som alltid är globala.</para>
+       <para>Som de flesta programmeringsspråk har GEL olika typer av variabler. Normalt då en variabel är 
definierad i en funktion är den synlig från den funktionen och från alla funktioner som anropas (alla högre 
kontexter). Till exempel, anta att en funktion <function>f</function> definierar en variabel 
<varname>a</varname> och sedan anropar funktionen <function>g</function>. Då kan funktion 
<function>g</function> referera till <varname>a</varname>. Men då <function>f</function> returnerar, går 
variabeln <varname>a</varname> utom räckvidd. Till exempel kommer den följande koden att skriva ut 5. 
Funktionen <function>g</function> kan inte anropas på toppnivån (utanför <function>f</function> eftersom 
<varname>a</varname> inte kommer vara definierad). <programlisting>function f() = (a:=5; g());
+function g() = print(a);
+f();
+</programlisting></para>
+        <para>Om du definierar en variabel inuti en funktion kommer den åsidosätta variabler definierade i 
anropande funktioner. Som ett exempel modifierar vi koden ovan och skriver: <programlisting>function f() = 
(a:=5; g());
+function g() = print(a);
+a:=10;
+f();
+</programlisting> Denna kod kommer fortfarande skriva ut 5. Men om du anropar <function>g</function> utanför 
<function>f</function> kommer du få utskriften 10. Observera att ställa in <varname>a</varname> till 5 inuti 
<function>f</function> ändrar inte värdet på <varname>a</varname> på toppnivån (globalt), så om du nu 
kontrollerar värdet på <varname>a</varname> kommer det fortfarande vara 10.</para>
+       <para>Funktionsargument är exakt som variabler definierade i funktionen, förutom att de initieras med 
värdet som skickats till funktionen. Förutom denna punkt behandlas de precis som alla andra variabler som 
definieras i funktionen.</para>
+       <para>Funktioner behandlas precis som variabler. Därmed kan du definiera om funktioner lokalt. 
Normalt (på toppnivån) kan du inte definiera om skyddade variabler och funktioner. Lokalt kan du dock göra 
detta. Anta följande session: <screen><prompt>genius&gt; </prompt><userinput>function f(x) = 
sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
+= (`(x)=(sin(x)^2))
+<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
+= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
+<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
+= 1e20
+</screen></para>
+       <para>Funktioner och variabler definierade på toppnivån anses vara globala. De är synliga överallt. 
Som vi sa kommer den följande funktionen <function>f</function> inte ändra värdet på <varname>a</varname> 
till 5. <programlisting>a=6;
+function f() = (a:=5);
+f();
+</programlisting> Ibland är det dock nödvändigt att ställa in en global variabel inifrån en funktion. Då 
detta beteende behövs, använd funktionen <link linkend="gel-function-set"><function>set</function></link>. 
Att skicka en sträng eller en citerad identifierare till denna funktion ställer in variabeln globalt (på 
toppnivån). För att till exempel ställa in <varname>a</varname> till värdet 3 kan du anropa: 
<programlisting>set(`a,3)
+</programlisting> eller: <programlisting>set("a",3)
+</programlisting></para>
+        <para>Funktionen <function>set</function> ställer alltid in toppnivåglobalen. Det finns inget sätt 
att ställa in en lokal variabel i någon funktion från en subrutin. Om detta krävs måste du använda 
referensöverföring.</para>
+       <para>Se även funktionerna <link 
linkend="gel-function-SetElement"><function>SetElement</function></link> och <link 
linkend="gel-function-SetVElement"><function>SetVElement</function></link>.</para>
+       <para>För att upprepa med mer tekniskt språk: Genius arbetar med olika numrerade kontexter. Toppnivån 
är kontext 0 (noll). Närhelst vi går in i en funktion höjs kontexten, och då funktionen returnerar sänks 
kontexten. En funktion eller en variabel är alltid synlig från alla kontexter med högre siffra. Då en 
variabel definierades i ett lägre kontextnummer, så har inställandet av denna variabel effekten att det 
skapar en ny lokal variabel i det aktuella kontextnumret och denna variabel kommer nu vara synlig från alla 
högre kontextnummer.</para>
+       <para>Det finns också verkligt lokala variabler som inte ses från någon annan plats än den aktuella 
kontexten. Vid returnering av funktioner efter värde kan det referera till variabler som ej är synliga från 
högre kontexter och detta kan vara ett problem. Se avsnitten <link 
linkend="genius-gel-true-local-variables">Verkligt lokala variabler</link> och <link 
linkend="genius-gel-returning-functions">Returnera funktioner</link>.</para>
+      </sect1>
+
+      <sect1 id="genius-gel-parameters">
+        <title>Parametervariabler</title>
+       <para>Som vi sa tidigare finns det specialvariabler som kallas parametrar som finns i alla 
räckvidder. För att deklarera en parameter som kallas <varname>foo</varname> med ursprungligt värde 1 skriver 
vi <programlisting><![CDATA[parameter foo = 1
+]]></programlisting> Från denna punkt är <varname>foo</varname> en strikt global variabel. Att ställa in 
<varname>foo</varname> i en funktion kommer ändra variabeln i alla kontexter, det vill säga att funktioner 
inte har en privat kopia av parametrar.</para>
+        <para>Då du avdefinierar en parameter med funktionen <link 
linkend="gel-function-undefine"><function>undefine</function></link> slutar den vara en parameter.</para>
+        <para>Några parametrar är inbyggda och ändrar beteendet hos genius.</para>
+      </sect1>
+
+    <sect1 id="genius-gel-returning">
+      <title>Returnera</title>
+       <para>Normalt består en funktion av ett eller flera uttryck som skiljs åt av ett semikolon, och 
värdet för det sista uttrycket returneras. Detta är bra för enkla funktioner, men ibland vill du inte att en 
funktion ska returnera det sista som beräknades. Du kan exempelvis vilja returnera från mitten av en 
funktion. I detta fall kan du använda nyckelordet <literal>return</literal>. <literal>return</literal> tar 
ett argument, vilket är värdet som ska returneras.</para>
+      <para>Exempel: <programlisting><![CDATA[function f(x) = (
+  y=1;
+  while true do (
+    if x>50 then return y;
+    y=y+1;
+    x=x+1
+  )
+)
+]]></programlisting></para>
+    </sect1>
+
+
+    <sect1 id="genius-gel-references">
+      <title>Referenser</title>
+      <para>Det kan vara nödvändigt för vissa funktioner att returnera mer än ett värde. Detta kan 
åstadkommas genom att returnera en vektor av värden, men många gånger är det bekvämt att skicka en referens 
till en variabel. Du skickar en referens till en variabel till en funktion, och funktionen kommer att ställa 
in variabeln åt dig med en dereferering. Du måste inte använda referenser bara för detta syfte, men det är 
deras huvudsakliga användning.</para>
+      <para>Då du använder funktioner som returnerar värden genom referenser i argumentlistan, skicka bara 
variabelnamnet med ett et-tecken. Till exempel kommer följande kod att beräkna ett egenvärde för en matris 
<varname>A</varname> med initial egenvektorgissning <varname>x</varname>, och lagra den beräknade egenvektorn 
i variabeln <varname>v</varname>: <programlisting><![CDATA[RayleighQuotientIteration (A,x,0.001,100,&v)
+]]></programlisting></para>
+      <para>Detaljerna kring hur referenser fungerar och syntaxen liknar språket C. Operatorn 
<literal>&amp;</literal> refererar en variabel och <literal>*</literal> derefererar en variabel. Båda kan 
endast tillämpas till en identifierare, så <literal>**a</literal> är inte ett giltigt uttryck i GEL.</para>
+      <para>Referenser förklaras bäst med ett exempel: <programlisting><![CDATA[a=1;
+b=&a;
+*b=2;
+]]></programlisting> nu innehåller <varname>a</varname> 2. Du kan också referera till funktioner: 
<programlisting><![CDATA[function f(x) = x+1;
+t=&f;
+*t(3)
+]]></programlisting> ger oss 4.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-lvalues">
+      <title>Vvärden</title>
+      <para>Ett vvärde är vänstersidan av en tilldelning. Med andra ord är ett vvärde vad du tilldelar något 
till. Giltiga vvärden är: <variablelist>
+  <varlistentry>
+    <term><userinput>a</userinput></term>
+    <listitem>
+      <para>Identifierare. Här skulle vi ställa in variabeln med namn <varname>a</varname>.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>*a</userinput></term>
+    <listitem>
+      <para>Dereferering av en identifierare. Detta kommer ställa in den variabel som <varname>a</varname> 
pekar på.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><userinput>a@(&lt;region&gt;)</userinput></term>
+    <listitem>
+      <para>En matrisregion. Här specificeras regionen som vanligt med den vanliga @()-operatorn, och kan 
varfa en ensam post, eller en hel region av matrisen.</para>
+    </listitem>
+  </varlistentry>
+</variablelist></para>
+      <para>Exempel: <programlisting>a:=4
+*tmp := 89
+a@(1,1) := 5
+a@(4:8,3) := [1,2,3,4,5]'
+</programlisting> Observera att både <literal>:=</literal> och <literal>=</literal> är direkt utbytbara med 
varandra förutom om tilldelningen sker i ett villkor. Det är därför alltid säkrare att hel enkelt använda 
<literal>:=</literal> då du menar tilldelning och <literal>==</literal> då du menar jämförelse.</para>
+    </sect1>
+
+  </chapter>
+
+  <chapter id="genius-gel-programming-advanced">
+    <title>Avancerad programmering med GEL</title>
+
+    <sect1 id="genius-gel-error-handling">
+      <title>Felhantering</title>
+      <para>Om du upptäcker ett fel i din funktion kan du avbryta den. För normala fel, som felaktiga typer 
på argument kan du misslyckas att beräkna funktionen genom att lägga till satsen <literal>bailout</literal>. 
Om något gick väldigt fel och du vill fullständigt döda den pågående beräkningen kan du använda 
<literal>exception</literal>.</para>
+      <para>Om du till exempel vill kontrollera argument i din funktion kan du använda följande kod. 
<programlisting>function f(M) = (
+  if not IsMatrix (M) then (
+    error ("M inte en matris!");
+    bailout
+  );
+  ...
+)
+</programlisting></para>
+    </sect1>
+
+    <sect1 id="genius-gel-toplevel-syntax">
+      <title>Toppnivåsyntax</title>
+      <para>Syntaxen skiljer sig något beroende på om du matar in satser på toppnivån gentemot då de används 
inom parenteser eller i funktioner. På toppnivån uppför sig retur just som om du tryckte retur på 
kommandoraden. Tänk därför på program som bara en följd av rader som matats in på kommandoraden. I synnerhet 
behöver du inte ange avskiljaren i slutet på raden (om den förstås inte är del av flera satser inom 
parenteser). Då en sats inte avslutas med en avskiljare på toppnivån skrivs resultatet ut efter 
körning.</para>
+      <para>Till exempel kommer <programlisting>function f(x)=x^2
+f(3)
+</programlisting> att först skriva ut resultatet av att ställa in en funktion (en representation av 
funktionen, i det här fallet <computeroutput>(`(x)=(x^2))</computeroutput>) och sedan det förväntade 9. För 
att undvika detta, ange en avskiljare efter funktionsdefinitionen. <programlisting>function f(x)=x^2;
+f(3)
+</programlisting> Om du behöver stoppa en avskiljare i din funktion måste den omges av parenteser. Till 
exempel: <programlisting>function f(x)=(
+  y=1;
+  for j=1 to x do
+    y = y+j;
+  y^2
+);
+</programlisting></para>
+      <para>Följande kod producerar ett fel då den matas in i toppnivån för ett program, medan den kommer 
fungera fint i en funktion. <programlisting>if Ngt() then
+  ExekveraNgt()
+else
+  ExekveraNgtAnnat()
+</programlisting></para>
+      <para>Problemet är att efter <application>Genius matematikverktyg</application> ser slutet på raden 
efter den andra raden kommer det att avgöra att vi har hela uttrycket och exekvera det. Efter exekveringen är 
klar kommer <application>Genius matematikverktyg</application> att gå till nästa rad och se 
<literal>else</literal>, och det kommer att producera ett tolkfel. För att fixa detta, använd parenteser. 
<application>Genius matematikverktyg</application> kommer inte låta sig nöja förrän det har sett att alla 
parenteser stängts. <programlisting>if Ngt() then (
+  ExekveraNgt()
+) else (
+  ExekveraNgtAnnat()
+)
+</programlisting></para>
+    </sect1>
+
+     <sect1 id="genius-gel-returning-functions">
+       <title>Returnera funktioner</title>
+       <para>Det är möjligt att returnera funktioner som värde. På detta sätt kan du bygga funktioner som 
konstruerar specialanpassade funktioner enligt några parametrar. Det svåra är vilka variabler som funktionen 
ser. Sättet det fungerar på i GEL är att när en funktion returnerar en annan funktion, blir alla 
identifierare refererade i funktionskroppen som gick utanför räckvidd föregångna med en privat ordbok av den 
returnerade funktionen. Funktion kommer därmed se alla variabler som var inom räckvidd då den definierades. 
Till exempel definierar vi en funktion som returnerar en funktion som lägger till 5 till sitt argument. 
<programlisting>function f() = (
+  k = 5;
+  `(x) = (x+k)
+)
+</programlisting> Observera att funktionen lägger till <varname>k</varname> till <varname>x</varname>. Du 
kan använda detta som följer. <programlisting>g = f();
+g(5)
+</programlisting> och <userinput>g(5)</userinput> skulle returnera 10.</para>
+       <para>En sak att notera är att värdet på <varname>k</varname> som används är det som används då 
<function>f</function> returnerar. Till exempel: <programlisting>function f() = (
+  k := 5;
+  function r(x) = (x+k);
+  k := 10;
+  r
+)
+</programlisting> kommer returnera en funktion som lägger till 10 till sitt argument snarare än 5. Detta är 
eftersom den extra ordboken skapas bara då kontexten i vilken funktionen definierades tar slut, vilket är när 
funktionen <function>f</function> returnerar. Detta är konsekvent med hur du skulle förvänta dig att 
funktionen <function>r</function> fungerar inuti funktionen <function>f</function> enligt reglerna för 
variabelräckvidd i GEL. Endast de variabler som är i kontexten som just tog slut och inte längre existerar 
läggs till i den extra ordboken. Variabler som används i funktionen som är i fortfarande giltiga kontexter 
kommer fungera som vanligt, med aktuellt värde på variabeln. Den enda skillnaden är med globala variabler och 
funktioner. Alla identifierare som refererade globala variabler under tiden för funktionsdefinitionen läggs 
inte till i den privata ordboken. Detta är för att undvika mycket onödigt arbete då funktioner returneras och 
 kommer sällan vara ett problem. Anta till exempel att du tar bort "k=5" från funktionen 
<function>f</function>, och att du på toppnivån definierar <varname>k</varname> till att vara exempelvis 5. 
När du då kör <function>f</function> kommer funktionen <function>r</function> inte lägga <varname>k</varname> 
i den privata ordboken eftersom den var global (toppnivå) då <function>r</function> definierades.</para>
+       <para>Ibland är det bättre att ha mer kontroll över hur variabler kopieras till den privata ordboken. 
Sedan version 1.0.7 kan du ange vilka variabler som kopieras till den privata ordboken genom att lägga till 
extra hakparenteser efter argumenten med listan över variabler som ska kopieras separerade av kommatecken. Om 
du gör detta kopieras variabler till den privata ordboken vid funktionsdefinitionen, och den privata ordboken 
rörs inte efteråt. Till exempel kommer <programlisting>function f() = (
+  k := 5;
+  function r(x) [k] = (x+k);
+  k := 10;
+  r
+)
+</programlisting> returnera en funktion som när den anropas kommer lägga till 5 till sitt argument. Den 
lokala kopian av <varname>k</varname> skapades när funktionen definierades.</para>
+       <para>Då du vill att funktionen inte ska ha någon privat ordbok sätter du tomma hakparenteser efter 
argumentlistan. Då kommer ingen privat ordbok att skapas överhuvudtaget. Att göra detta är bra för att öka 
effektiviteten då en privat ordbok inte behövs eller när du inte vill att funktionen ska slå upp alla 
variabler då den ser dem då de anropas. Anta till exempel att du vill att funktionen som returneras från 
<function>f</function> ska se värdet av <varname>k</varname> från toppnivån även om det finns en lokal 
variabel med samma namn under definitionen. Så koden <programlisting>function f() = (
+  k := 5;
+  function r(x) [] = (x+k);
+  r
+);
+k := 10;
+g = f();
+g(10)
+</programlisting> kommer att returnera 20 och inte 15, vilket skulle hända om <varname>k</varname> med ett 
värde av 5 lades till i den privata ordboken.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-true-local-variables">
+      <title>Verkligt lokala variabler</title>
+      <para>Då funktioner skickas till andra funktioner kan den vanliga variabelräckvidden vara oönskad. 
Till exempel: <programlisting>k := 10;
+function r(x) = (x+k);
+function f(g,x) = (
+  k := 5;
+  g(x)
+);
+f(r,1)
+</programlisting> du vill antagligen att funktionen <function>r</function> då den skickas som 
<function>g</function> till <function>f</function> ska se <varname>k</varname> som 10 snarare än 5, så att 
koden returnerar 11 och inte 6. Som det är skrivet kommer dock funktionen då den exekveras se det 
<varname>k</varname> som är lika med 5. Det finns två sätt att lösa detta. En skulle vara att låta 
<function>r</function> få <varname>k</varname> i en privat ordbok genom hakparentesnotationen i avsnittet 
<link linkend="genius-gel-returning-functions">Returnera funktioner</link>.</para>
+      <para>Men det finns en annan lösning. Sedan version 1.0.7 finns det verkligt lokala variabler. Dessa 
är variabler som är synliga endast från aktuell kontext och inte från några anropade funktioner. Vi kan 
definiera <varname>k</varname> som en lokal variabel i funktionen <function>f</function>. För att göra detta 
lägg till ett <command>local</command>-uttryck som det första uttrycket i funktionen (det måste alltid vara 
det första uttrycket i funktionen). Du kan också göra argument till lokala variabler. Det vill säga, 
<programlisting>function f(g,x) = (
+  local g,x,k;
+  k := 5;
+  g(x)
+);
+</programlisting> Då kommer koden fungera som förväntat och skriver ut 11. Observera att 
<command>local</command>-uttrycket initierar alla de refererade variablerna (förutom funktionsargument) till 
ett <constant>null</constant>.</para>
+      <para>Om alla variabler ska skapas som lokala kan du helt enkelt skicka en asterisk istället för en 
variabellista. I detta fall kommer variablerna förstås inte initieras förrän de faktiskt ställs in. Så 
följande definition av <function>f</function> kommer också att fungera: <programlisting>function f(g,x) = (
+  local *;
+  k := 5;
+  g(x)
+);
+</programlisting></para>
+      <para>Det är god sed att alla funktioner som tar andra funktioner som argument använder lokala 
variabler. På detta sätt ser den skickade funktionen inte implementationsdetaljer och blir förvirrad.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-startup-procedure">
+      <title>Uppstartsprocedur för GEL</title>
+      <para>Först tittar programmet efter den installerade biblioteksfilen (den kompilerade versionen 
<filename>lib.cgel</filename>) i den installerade katalogen, sedan tittar det i den aktuella katalogen, och 
sedan försöker det läsa in en okompilerad fil som heter <filename>~/.geniusinit</filename>.</para>
+      <para>Om du någonsin ändrar biblioteket i dess installerade plats måste du först kompilera det med 
<command>genius --compile loader.gel &gt; lib.cgel</command></para>
+    </sect1>
+
+    <sect1 id="genius-gel-loading-programs">
+      <title>Läsa in program</title>
+      <para>Ibland har du ett större program som du skrev till en fil och vill läsa in den filen i 
<application>Genius matematikverktyg</application>. I dessa situationer har du två val. Du kan behålla 
funktionerna du vill använda mest inuti filen <filename>~/.geniusinit</filename>. Eller om du vill läsa in en 
fil mitt i en session (eller inifrån en annan fil) kan du skriva <command>load &lt;lista med 
filnamn&gt;</command> på prompten. Detta måste göras på toppnivån och inte inuti en funktion eller vad det må 
vara, och det kan inte vara en del av ett uttryck. Det har också ett något annorlunda syntax från resten av 
genius, mer liknande ett skal. Du kan mata in filen citerad. Om du använder citattecknen '' kommer du få 
precis strängen du skrev in, om du använder citattecknen "" kommer specialtecken att få kontrollsekvenser 
borttagna som för strängar. Exempel: <programlisting>load program1.gel program2.gel
+load "Konstigt filnamn med MELLANSLAG.gel"
+</programlisting> Det finns också de inbyggda kommandona <command>cd</command>, <command>pwd</command> och 
<command>ls</command>. <command>cd</command> kommer ta ett argument, <command>ls</command> kommer ta ett 
argument som är som ett mönster i UNIX-skalet (d.v.s. du kan använda jokertecken). <command>pwd</command> tar 
inga argument. Till exempel: <programlisting>cd katalog_med_gelprogram
+ls *.gel
+</programlisting></para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Matrices ================================= -->
+  <chapter id="genius-gel-matrices">
+    <title>Matriser i GEL</title>
+
+    <para>Genius har stöd för vektorer och matriser och innehåller ett stort bibliotek med funktioner för 
matrismanipulation och linjär algebra.</para>
+
+    <sect1 id="genius-gel-matrix-support">
+      <title>Mata in matriser</title>
+      <para>För att mata in matriser kan du använda en av följande två syntaxer. Du kan antingen mata in 
matrisen på en rad, där värden skiljs åt av kommatecken och rader av semikolon. Annars kan du mata in varje 
rad på en rad, där värden separeras av kommatecken. Du kan också kombinera de två metoderna. För att mata in 
en 3x3-matris med talen 1-9 skulle du kunna göra <programlisting>[1,2,3;4,5,6;7,8,9]
+</programlisting> eller <programlisting>[1, 2, 3
+ 4, 5, 6
+ 7, 8, 9]
+</programlisting> Använd dock inte både ”;” och direkt returnering på samma rad.</para>
+
+      <para>Du kan också använda matrisexpansionsfunktionen för att mata in matriser. Till exempel kan du 
göra: <programlisting>a = [ 1, 2, 3
+      4, 5, 6
+      7, 8, 9]
+b = [ a,  10
+      11, 12]
+</programlisting> och då få <programlisting>[1,   2,  3, 10
+ 4,   5,  6, 10
+ 7,   8,  9, 10
+ 11, 11, 11, 12]
+</programlisting> på liknande sätt kan du bygga matriser från vektorer och andra sådana saker.</para>
+
+      <para>En annan sak att tänka på är att ej angivna fläckar initieras till 0, så <programlisting>[1, 2, 3
+ 4, 5
+ 6]
+</programlisting> kommer att bli <programlisting>
+[1, 2, 3
+ 4, 5, 0
+ 6, 0, 0]
+</programlisting></para>
+
+      <para>Då matriser evalueras så evalueras och traverseras de radvis. Detta är precis som 
<literal>M@(j)</literal>-operatorn som traverserar matrisen radvis.</para>
+
+      <note>
+        <para>Var försiktig med returnering av uttryck inuti <literal>[ ]</literal>-parenteserna, eftersom 
det har en något annorlunda betydelse där. Du kommer att starta en ny rad.</para>
+      </note>
+
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-transpose">
+      <title>Konjugattransponat och transponatoperator</title>
+      <para>Du kan konjugattransponera en matris med <literal>'</literal>-operatorn. Det vill säga posten i 
kolumn <varname>i</varname> och rad <varname>j</varname> kommer bli komplexkonjugatet till posten i kolumn 
<varname>j</varname> och rad <varname>i</varname> av originalmatrisen. Till exempel: 
<programlisting>[1,2,3]*[4,5,6]'
+</programlisting> Vi transponerar den andra vektorn för att göra matrismultiplikation möjlig. Om du bara 
vill transponera en matris utan att konjugera den använder du <literal>.'</literal>-operatorn. Till exempel: 
<programlisting>[1,2,3]*[4,5,6i].'
+</programlisting></para>
+       <para>Observera att normalt transponat, det vill säga <literal>.'</literal>-operatorn är mycket 
snabbare och kommer inte skapa en ny kopia av matrisen i minnet. Konjugattransponatet skapar tyvärr en ny 
kopia. Det rekommenderas att alltid använda <literal>.'</literal>-operatorn vid arbete med reella matriser 
och vektorer.</para>
+    </sect1>
+
+    <sect1 id="genius-gel-matrix-linalg">
+      <title>Linjär algebra</title>
+      <para>Genius implementerar många användbara rutiner för linjär algebra och matrismanipulation. Se 
avsnitten för <link linkend="genius-gel-function-list-linear-algebra">Linjär algebra</link> och <link 
linkend="genius-gel-function-list-matrix">Matrismanipulering</link> i funktionslistan för GEL.</para>
+      <para>Linjär algebra-rutinerna som är implementerade i GEL kommer för närvarande inte från något 
vältestat numeriskt paket, och bör därmed inte användas för kritiska numeriska beräkningar. Å andra sidan 
implementerar Genius många linjär algebra-operationer med bråk- och heltalskoefficienter på ett mycket bra 
sätt. Dessa är medfött exakta och kommer faktiskt ge dig mycket bättre resultat än vanliga 
dubbelprecisionsrutiner för linjär algebra.</para>
+      <para>Till exempel är det meningslöst att beräkna rang och nollrum för en flyttalsmatris eftersom för 
alla praktiska ändamål måste vi anse att matrisen har små fel. Du kommer mycket möjligt att få ett annat 
resultat än du förväntar dig. Problemet är att under en liten störning är varje matris av full rang och 
inverterbar. Om matrisen består av rationella tal är dock rangen och nollrummet alltid exakt.</para>
+      <para>Allmänt då Genius beräknar basen av ett särskilt vektorrum (till exempel med <link 
linkend="gel-function-NullSpace"><function>NullSpace</function></link>) kommer det ge basen som en matris, i 
vilken kolumnerna är vektorerna för basen. Det vill säga att då Genius pratar om ett linjärt underrum menar 
det en matris vars kolumnrum är det angivna linjära underrummet.</para>
+      <para>Det bör noteras att Genius kan komma ihåg vissa egenskaper hos en matris. Till exempel kommer 
det att komma ihåg att en matris är i radreducerad form. Om många anrop görs till funktioner som internt 
använder radreducerad form av matrisen kan vi helt enkelt först radreducera matrisen en gång. Upprepade anrop 
till <link linkend="gel-function-rref"><function>rref</function></link> kommer att vara väldigt snabba.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Polynomials ============================== -->
+  <chapter id="genius-gel-polynomials">
+    <title>Polynom i GEL</title>
+
+    <para>För närvarande kan Genius hantera polynom i en variabel utskrivna som vektorer, och utföra några 
grundläggande operationer med dessa. Det finns planer för att utöka detta stöd vidare.</para>
+
+    <sect1 id="genius-gel-polynomials-using">
+      <title>Använda polynom</title>
+      <para>För närvarande är polynom i en variabel bara horisontella vektorer med värden som noder. 
Potensen av termen är positionen i vektorn, med den första positionen som 0. Så, <programlisting>[1,2,3]
+</programlisting> översätts till polynomet <programlisting>1 + 2*x + 3*x^2
+</programlisting></para>
+      <para>Du kan addera, subtrahera och multiplicera polynom med de motsvarande funktionerna <link 
linkend="gel-function-AddPoly"><function>AddPoly</function></link>, <link 
linkend="gel-function-SubtractPoly"><function>SubtractPoly</function></link> och <link 
linkend="gel-function-MultiplyPoly"><function>MultiplyPoly</function></link>. Du kan skriva ut ett polynom 
med funktionen <link linkend="gel-function-PolyToString"><function>PolyToString</function></link>. Till 
exempel, <programlisting>PolyToString([1,2,3],"y")
+</programlisting> ger <programlisting>3*y^2 + 2*y + 1
+</programlisting> Du kan också få en funktionsrepresentation av polynomet så att du kan beräkna det. Detta 
görs genom <link linkend="gel-function-PolyToFunction"><function>PolyToFunction</function></link>, som 
returnerar en anonym funktion. <programlisting>f = PolyToFunction([0,1,1])
+f(2)
+</programlisting></para>
+      <para>Det är också möjligt att hitta rötter för polynom av grad 1 till 4 med funktionen <link 
linkend="gel-function-PolynomialRoots"><function>PolynomialRoots</function></link>, som anropar lämplig 
formelfunktion. Polynom av högre grad måste konverteras till funktioner och lösas numeriskt med en funktion 
som <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> eller <link 
linkend="gel-function-FindRootSecant"><function>FindRootSecant</function></link>.</para>
+      <para>Se <xref linkend="genius-gel-function-list-polynomials"/> i funktionslistan för resten av 
funktionerna som arbetar på polynom.</para>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= Set Theory ============================== -->
+  <chapter id="genius-gel-settheory">
+    <title>Mängdlära i GEL</title>
+
+    <para>Genius har viss grundläggande mängdteoretisk funktionalitet inbyggd. För närvarande är en mängd 
bara en vektor (eller en matris). Varje distinkt objekt behandlas som ett eget element.</para>
+
+    <sect1 id="genius-gel-sets-using">
+      <title>Använda mängder</title>
+      <para>Precis som vektorer kan objekt i mängder inkludera tal, strängar, <constant>null</constant>, 
matriser och vektorer. Det planeras att i framtiden ha en enkom typ för mängder, snarare än att använda 
vektorer. Observera att flyttal skiljer sig åt från heltal även om de verkar vara lika. Det vill säga Genius 
behandlar <constant>0</constant> och <constant>0.0</constant> som två olika element. 
<constant>null</constant> behandlas som en tom mängd.</para>
+      <para>För att skapa en mängd från en vektor, använd funktionen <link 
linkend="gel-function-MakeSet"><function>MakeSet</function></link> function. För närvarande kommer den bara 
att returnera en ny vektor där varje element är unikt. <screen><prompt>genius&gt; 
</prompt><userinput>MakeSet([1,2,2,3])</userinput>
+= [1, 2, 3]
+</screen></para>
+
+       <para>På liknande sätt finns det funktionerna <link 
linkend="gel-function-Union"><function>Union</function></link>, <link 
linkend="gel-function-Intersection"><function>Intersection</function></link> och <link 
linkend="gel-function-SetMinus"><function>SetMinus</function></link>, som är ganska självförklarande. Till 
exempel: <screen><prompt>genius&gt; </prompt><userinput>Union([1,2,3], [1,2,4])</userinput>
+= [1, 2, 4, 3]
+</screen> Observera att ingen ordning garanteras för returvärdena. Om du vill sortera vektorn bör du använda 
funktionen <link linkend="gel-function-SortVector"><function>SortVector</function></link>.</para>
+
+       <para>För att testa medlemskap finns funktionerna <link 
linkend="gel-function-IsIn"><function>IsIn</function></link> och <link 
linkend="gel-function-IsSubset"><function>IsSubset</function></link> vilka returnerar ett booleskt värde. 
Till exempel: <screen><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
+= true
+</screen> Inmatningen <userinput>IsIn(x,X)</userinput> är förstås ekvivalent med 
<userinput>IsSubset([x],X)</userinput>. Observera att eftersom den tomma mängden är en delmängd av varje 
mängd så är <userinput>IsSubset(null,X)</userinput> alltid true (sann).</para>
+
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL function list ======================== -->
+  <chapter id="genius-gel-function-list">
+    <title>Lista över GEL-funktioner</title>
+
+    <!--&gel-function-list;-->
+
+    <para>För att få hjälp om en specifik funktion från konsolen skriv: <programlisting>help Funktionsnamn
+</programlisting></para>
+
+    <sect1 id="genius-gel-function-list-commands">
+      <title>Kommandon</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-command-help"/>help</term>
+         <listitem>
+          <synopsis>help</synopsis>
+          <synopsis>help Funktionsnamn</synopsis>
+          <para>Skriv ut hjälp (eller hjälp om funktion/kommando).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-load"/>load</term>
+         <listitem>
+          <synopsis>load "fil.gel"</synopsis>
+          <para>Läs in en fil i tolken. Filen kommer att exekveras som om den skrevs in i 
kommandoraden.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-cd"/>cd</term>
+         <listitem>
+          <synopsis>cd /katalog/namn</synopsis>
+          <para>Ändra arbetskatalog till <filename>/katalog/namn</filename>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-pwd"/>pwd</term>
+         <listitem>
+          <synopsis>pwd</synopsis>
+          <para>Skriv ut aktuell arbetskatalog.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-ls"/>ls</term>
+         <listitem>
+          <synopsis>ls</synopsis>
+          <para>Lista filer i aktuell katalog.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-command-plugin"/>plugin</term>
+         <listitem>
+          <synopsis>plugin insticksmodulnamn</synopsis>
+          <para>Läs in en insticksmodul. En insticksmodul med det namnet måste vara installerad på systemet 
i rätt katalog.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-basic">
+      <title>Grundläggande</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
+         <listitem>
+          <synopsis>AskButtons (fråga)</synopsis>
+          <synopsis>AskButtons (fråga, knapp1, ...)</synopsis>
+         <para>Ställer en fråga och visar en lista med knappar för användaren (eller en meny med val i 
textläge). Returnerar det 1-baserade indexet för knappen som tryckts ned. Det vill säga returnerar 1 om den 
första knappen trycktes ned, 2 om den andra knappen trycktes ned och så vidare. Om användaren stänger 
fönstret (Eller helt enkelt trycker Retur i textläge) så returneras <constant>null</constant>. Körningen av 
programmet blockeras till användaren svarar.</para>
+         <para>Version 1.0.10 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AskString"/>AskString</term>
+         <listitem>
+          <synopsis>AskString (fråga)</synopsis>
+          <synopsis>AskString (fråga, standard)</synopsis>
+          <para>Ställer en fråga och låter användaren mata in en sträng som det sedan returnerar. Om 
användaren avbryter eller stänger fönstret returneras <constant>null</constant>. Körningen av programmet 
blockeras till användaren svarar. Om <varname>standard</varname> anges är det förifyllt så att användaren 
helt enkelt kan trycka retur (version 1.0.6 och framåt).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Compose"/>Compose</term>
+         <listitem>
+          <synopsis>Compose (f,g)</synopsis>
+          <para>Sätt samman två funktioner och returnera en funktion som är sammanslagningen av 
<function>f</function> och <function>g</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
+         <listitem>
+          <synopsis>ComposePower (f,n,x)</synopsis>
+          <para>Sätt samman en funktion med sig själv <varname>n</varname> gånger och kör den, med 
<varname>x</varname> som argument. Returnerar <varname>x</varname> om <varname>n</varname> är 0. Exempel: 
<screen><prompt>genius&gt;</prompt> <userinput>function f(x) = x^2 ;</userinput>
+<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
+= 5764801
+<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
+= 5764801
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
+         <listitem>
+          <synopsis>Evaluate (str)</synopsis>
+          <para>Tolkar och evaluerar en sträng.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
+         <listitem>
+          <synopsis>GetCurrentModulo</synopsis>
+          <para>Hämta aktuell modulo från kontexten utanför funktionen. Det vill säga, om utsidan av 
funktionen exekverades i modulo (med <literal>mod</literal>) så returnerar detta vad detta modulo var. 
Normalt exekveras kroppen av den anropade funktionen inte i modulär aritmetik, och denna inbyggda funktion 
gör det möjligt att göra GEL-funktioner medvetna om modulär aritmetik.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Identity"/>Identity</term>
+         <listitem>
+          <synopsis>Identity (x)</synopsis>
+         <para>Identitetsfunktionen, returnerar sitt argument. Den är ekvivalent med <userinput>function 
Identity(x)=x</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
+         <listitem>
+          <synopsis>IntegerFromBoolean (bool)</synopsis>
+         <para>Skapa heltal (0 för <constant>false</constant> eller 1 för <constant>true</constant>) från 
booleskt värde. <varname>bool</varname> kan också vara ett tal i vilket fall ett nollskilt värde kommer 
tolkas som <constant>true</constant> och noll kommer tolkas som <constant>false</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
+         <listitem>
+          <synopsis>IsBoolean (arg)</synopsis>
+          <para>Kontrollera om argumentet är booleskt (och inte ett tal).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
+         <listitem>
+          <synopsis>IsDefined (id)</synopsis>
+          <para>Kontrollera om ett id är definierat. Du bör skicka en sträng och eller identifierare. Om du 
skickar en matris kommer varje post att evalueras separat och matrisen bör innehålla strängar eller 
identifierare.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
+         <listitem>
+          <synopsis>IsFunction (arg)</synopsis>
+          <para>Kontrollera om argumentet är en funktion.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
+         <listitem>
+          <synopsis>IsFunctionOrIdentifier (arg)</synopsis>
+          <para>Kontrollera om argumentet är en funktion eller en identifierare.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
+         <listitem>
+          <synopsis>IsFunctionRef (arg)</synopsis>
+          <para>Kontrollera om argumentet är en funktionsreferens. Detta inkluderar 
variabelreferenser.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
+         <listitem>
+          <synopsis>IsMatrix (arg)</synopsis>
+          <para>Kontrollera om argumentet är en matris. Även om <constant>null</constant> ibland anses vara 
en tom matris så anser funktionen <function>IsMatrix</function> inte att <constant>null</constant> är en 
matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNull"/>IsNull</term>
+         <listitem>
+          <synopsis>IsNull (arg)</synopsis>
+         <para>Kontrollera om argumentet är ett <constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsString"/>IsString</term>
+         <listitem>
+          <synopsis>IsString (arg)</synopsis>
+          <para>Kontrollera om argumentet är en textsträng.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValue"/>IsValue</term>
+         <listitem>
+          <synopsis>IsValue (arg)</synopsis>
+          <para>Kontrollera om argumentet är ett tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Parse"/>Parse</term>
+         <listitem>
+          <synopsis>Parse (str)</synopsis>
+          <para>Tolkar men evaluerar inte en sträng. Observera att viss förberäkning sker på 
tolkstadiet.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
+         <listitem>
+          <synopsis>SetFunctionFlags (id,flaggor...)</synopsis>
+          <para>Ställ in flaggor för en funktion, för närvarande <literal>"PropagateMod"</literal> och 
<literal>"NoModuloArguments"</literal>. Om <literal>"PropagateMod"</literal> är inställd, kommer funktionens 
kropp evalueras i modulär aritmetik då funktionen är anropad inuti ett block som evaluerats med modulär 
aritmetik (med <literal>mod</literal>). Om <literal>"NoModuloArguments"</literal>, evalueras funktionens 
argument aldrig med modulär aritmetik.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
+         <listitem>
+          <synopsis>SetHelp (id,kategori,beskr)</synopsis>
+          <para>Ställer in kategori- och hjälpbeskrivningsraderna för en funktion.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
+         <listitem>
+          <synopsis>SetHelpAlias (id,alias)</synopsis>
+          <para>Konfigurerar ett hjälpalias.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-chdir"/>chdir</term>
+         <listitem>
+          <synopsis>chdir (kat)</synopsis>
+          <para>Ändrar aktuell katalog, samma som <command>cd</command>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
+         <listitem>
+          <synopsis>CurrentTime</synopsis>
+          <para>Returnerar aktuell UNIX-tid med mikrosekundsprecision som ett flyttal. Det vill säga, 
returnera antalet sekunder sedan 1 januari 1970.</para>
+         <para>Version 1.0.15 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-display"/>display</term>
+         <listitem>
+          <synopsis>display (str,uttr)</synopsis>
+          <para>Visa en sträng och ett uttryck med ett kolon mellan dem.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DisplayVariables"/>DisplayVariables</term>
+         <listitem>
+          <synopsis>DisplayVariables (var1,var2,...)</synopsis>
+         <para>Visa en uppsättning variabler. Variablerna kan anges som strängar eller identifierare. Till 
exempel: <programlisting>DisplayVariables(`x,`y,`z)
+           </programlisting></para>
+         <para>Om anropad utan argument (måste skicka med tom argumentlista) som 
<programlisting>DisplayVariables()
+           </programlisting> så skrivs alla variabler ut inklusive ett stackspår liknande <guilabel>Visa 
användarvariabler</guilabel> i den grafiska versionen.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-error"/>error</term>
+         <listitem>
+          <synopsis>error (str)</synopsis>
+          <para>Skriver ut en sträng till felflödet (till konsolen).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exit"/>exit</term>
+         <listitem>
+          <synopsis>exit</synopsis>
+          <para>Alias: <function>quit</function></para>
+          <para>Avslutar programmet.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-false"/>false</term>
+         <listitem>
+          <synopsis>false</synopsis>
+          <para>Alias: <function>False</function><function>FALSE</function></para>
+         <para>Det booleska värdet <constant>false</constant> (falskt).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-manual"/>manual</term>
+         <listitem>
+          <synopsis>manual</synopsis>
+          <para>Visar användarmanualen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-print"/>print</term>
+         <listitem>
+          <synopsis>print (str)</synopsis>
+          <para>Skriver ut ett uttryck och sedan en nyrad. Argumentet <varname>str</varname> kan vara ett 
godtyckligt uttryck. Det omvandlas till en sträng innan det skrivs ut.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-printn"/>printn</term>
+         <listitem>
+          <synopsis>printn (str)</synopsis>
+          <para>Skriver ut ett uttryck utan en avslutande nyrad. Argumentet <varname>str</varname> kan vara 
ett godtyckligt uttryck. Det omvandlas till en sträng innan det skrivs ut.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrintTable"/>PrintTable</term>
+         <listitem>
+          <synopsis>PrintTable (f,v)</synopsis>
+         <para>Skriv ut en tabell med värden för en funktion. Värdena är i vektorn <varname>v</varname>. Du 
kan använda vektorbyggnotationen enligt följande: <programlisting>PrintTable (f,[0:10])
+           </programlisting> Om <varname>v</varname> är ett positivt heltal kommer tabellen av heltal från 1 
upp till och inklusive v att användas.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-protect"/>protect</term>
+         <listitem>
+          <synopsis>protect (id)</synopsis>
+          <para>Skydda en variabel från att ändras. Detta används på de interna GEL-funktionerna för att 
förhindra att de skrivs över av misstag.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
+         <listitem>
+          <synopsis>ProtectAll ()</synopsis>
+          <para>Skydda alla för närvarande definierade variabler, parametrar och funktioner från att ändras. 
Detta används på de interna GEL-funktionerna för att förhindra dem från att skrivas över av misstag. Normalt 
anser <application>Genius matematikverktyg</application> oskyddade variabler vara användardefinierade.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-set"/>set</term>
+         <listitem>
+          <synopsis>set (id,värde)</synopsis>
+          <para>Ställ in en global variabel. <varname>id</varname> kan antingen vara en sträng eller en 
citerad identifierare. Till exempel: <programlisting>set(`x,1)
+           </programlisting> kommer ställa in den globala variabeln <varname>x</varname> till värdet 
1.</para>
+         <para>Funktionen returnerar <varname>värde</varname>, att användas i en kedja.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetElement"/>SetElement</term>
+         <listitem>
+          <synopsis>SetElement (id,rad,kol,värde)</synopsis>
+         <para>Ställ in ett element i en global variabel som är en matris. <varname>id</varname> kan vara 
antingen en sträng eller en citerad identifierare. Till exempel: <programlisting>SetElement(`x,2,3,1)
+           </programlisting> kommer att ställa in elementet i andra raden och tredje kolumnen av den globala 
variabeln <varname>x</varname> till värdet 1. Om ingen global variabel med det namnet existerar, eller om den 
är inställd till något som inte är en matris kommer en ny nollmatris av lämplig storlek att skapas.</para>
+         <para><varname>rad</varname> och <varname>kol</varname> kan också vara intervall, och semantiken är 
densamma som för vanlig inställning av elementen med ett lika med-tecken.</para>
+         <para>Funktionen returnerar <varname>värde</varname>, att användas i en kedja.</para>
+         <para>Tillgängligt i 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetVElement"/>SetVElement</term>
+         <listitem>
+          <synopsis>SetElement (id,elt,värde)</synopsis>
+         <para>Ställ in ett element i en global variabel som är en vektor. <varname>id</varname> kan vara 
antingen en sträng eller en citerad identifierare. Till exempel: <programlisting>SetElement(`x,2,1)
+           </programlisting> kommer att ställa in det andra elementet i den globala vektorvariabeln 
<varname>x</varname> till värdet 1. Om ingen global variabel med det namnet existerar, eller om den är 
inställd till något som inte är en vektor (matris) kommer en ny nollradvektor av lämplig storlek att 
skapas.</para>
+         <para><varname>elt</varname> kan också vara ett intervall, och semantiken är densamma som för 
vanlig inställning av elementen med ett lika med-tecken.</para>
+         <para>Funktionen returnerar <varname>värde</varname>, att användas i en kedja.</para>
+         <para>Tillgängligt i 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-string"/>string</term>
+         <listitem>
+          <synopsis>string (s)</synopsis>
+          <para>Skapa en sträng. Detta kommer göra en sträng av ett godtyckligt argument.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-true"/>true</term>
+         <listitem>
+          <synopsis>true</synopsis>
+          <para>Alias: <function>True</function><function>TRUE</function></para>
+         <para>Det booleska värdet <constant>true</constant> (sant).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-undefine"/>undefine</term>
+         <listitem>
+          <synopsis>undefine (id)</synopsis>
+          <para>Alias: <function>Undefine</function></para>
+          <para>Avdefiniera en variabel. Detta inkluderar lokala och globala variabler, varje värde i alla 
kontextnivåer rensas. Denna funktion bör egentligen inte användas på lokala variabler. En vektor av 
identifierare kan också skickas för att avdefiniera flera variabler.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
+         <listitem>
+          <synopsis>UndefineAll ()</synopsis>
+         <para>Avdefiniera alla oskyddade globala variabler (inklusive funktioner och parametrar). Normalt 
anser <application>Genius matematikverktyg</application> skyddade variabler vara systemdefinierade funktioner 
och variabler. Observera att <function>UndefineAll</function> endast tar bort den globala definitionen av 
symboler, inte lokala, så den kan köras säkert inifrån andra funktioner.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-unprotect"/>unprotect</term>
+         <listitem>
+          <synopsis>unprotect (id)</synopsis>
+          <para>Skydda inte längre en variabel från att ändras.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
+         <listitem>
+          <synopsis>UserVariables ()</synopsis>
+          <para>Returnera en vektor av identifierar för användardefinierade (oskyddade) globala 
variabelnamn.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-wait"/>wait</term>
+         <listitem>
+          <synopsis>wait (sek)</synopsis>
+          <para>Väntar ett angivet antal sekunder. <varname>sek</varname> måste vara icke-negativ. Noll 
accepteras och inget händer i detta fall, förutom att möjligen användargränssnittshändelser behandlas.</para>
+         <para>Sedan version 1.0.18 kan <varname>sek</varname> vara ett icke-heltal, så 
<userinput>wait(0.1)</userinput> kommer vänta en tiondels sekund.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-version"/>version</term>
+         <listitem>
+          <synopsis>version</synopsis>
+          <para>Returnerar versionen för Genius som en horisontell 3-vektor med huvudversion först, sedan 
mindre version och slutligen patchnivå.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-warranty"/>warranty</term>
+         <listitem>
+          <synopsis>warranty</synopsis>
+          <para>Ger garantiinformationen.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+
+    </sect1>
+
+    <sect1 id="genius-gel-function-parameters">
+      <title>Parametrar</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
+         <listitem>
+          <synopsis>ChopTolerance = tal</synopsis>
+          <para><function>Chop</function>-funktionens tolerans.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
+         <listitem>
+          <synopsis>ContinuousNumberOfTries = tal</synopsis>
+          <para>Hur många iterationer för att försöka hitta gränsvärdet för kontinuitet och 
gränsvärden.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
+         <listitem>
+          <synopsis>ContinuousSFS = tal</synopsis>
+          <para>Hur många efter varandra följande steg att vara inom tolerans för 
kontinuitetsberäkning.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
+         <listitem>
+          <synopsis>ContinuousTolerance = tal</synopsis>
+          <para>Toleransen för kontinuiteten för funktioner och för att beräkna gränsvärdet.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
+         <listitem>
+          <synopsis>DerivativeNumberOfTries = tal</synopsis>
+          <para>Hur många iterationer för att försöka hitta gränsvärdet för derivatan.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
+         <listitem>
+          <synopsis>DerivativeSFS = tal</synopsis>
+          <para>Hur många efter varandra följande steg att vara inom tolerans för beräkning av 
derivata.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
+         <listitem>
+          <synopsis>DerivativeTolerance = tal</synopsis>
+          <para>Toleransen för att beräkna derivatorna för funktioner.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
+         <listitem>
+          <synopsis>ErrorFunctionTolerance = tal</synopsis>
+         <para>Toleransen för funktionen <link 
linkend="gel-function-ErrorFunction"><function>ErrorFunction</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
+         <listitem>
+          <synopsis>FloatPrecision = tal</synopsis>
+          <para>Flyttalsprecision.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
+         <listitem>
+          <synopsis>FullExpressions = boolean</synopsis>
+          <para>Skriv ut fullständiga uttryck, även om det tar mer än en rad.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
+         <listitem>
+          <synopsis>GaussDistributionTolerance = tal</synopsis>
+         <para>Toleransen för funktionen <link 
linkend="gel-function-GaussDistribution"><function>GaussDistribution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
+         <listitem>
+          <synopsis>IntegerOutputBase = tal</synopsis>
+          <para>Bas för heltalsutdata.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
+         <listitem>
+          <synopsis>IsPrimeMillerRabinReps = tal</synopsis>
+         <para>Antal extra Miller-Rabin-test att köra på ett tal innan det deklareras som ett primtal i 
<link linkend="gel-function-IsPrime"><function>IsPrime</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
+         <listitem>
+          <synopsis>LinePlotDrawLegends = true</synopsis>
+          <para>Säger till genius att rita ut förklaringar för <link 
linkend="genius-gel-function-list-plotting">linjegrafsfunktioner</link> som <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
+         <listitem>
+          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
+          <para>Säger till genius att rita ut axeletiketter för <link 
linkend="genius-gel-function-list-plotting">linjegrafsfunktioner</link> som <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
+         <listitem>
+          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
+          <para>Säger till genius vilka variabelnamn som används som standardnamn för <link 
linkend="genius-gel-function-list-plotting">linjegrafsfunktioner</link> som <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link> och dylikt.</para>
+         <para>Version 1.0.10 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
+         <listitem>
+          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
+          <para>Ställer in gränserna för <link 
linkend="genius-gel-function-list-plotting">linjegrafsfunktioner</link> som <link 
linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
+         <listitem>
+          <synopsis>MaxDigits = tal</synopsis>
+          <para>Maximalt antal siffror att visa.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
+         <listitem>
+          <synopsis>MaxErrors = tal</synopsis>
+          <para>Maximalt antal fel att visa.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
+         <listitem>
+          <synopsis>MixedFractions = boolean</synopsis>
+          <para>Om true (sant) skrivs blandade bråk ut.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
+         <listitem>
+          <synopsis>NumericalIntegralFunction = funktion</synopsis>
+         <para>Funktionen som används för numerisk integration i <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
+         <listitem>
+          <synopsis>NumericalIntegralSteps = tal</synopsis>
+         <para>Steg att utföra i <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
+         <listitem>
+          <synopsis>OutputChopExponent = tal</synopsis>
+         <para>Då ett annat tal i objektet som skrivs ut (en matris eller ett värde) är större än 
10<superscript>-OutputChopWhenExponent</superscript>, och talet som skrivs ut är mindre än 
10<superscript>-OutputChopExponent</superscript> visas <computeroutput>0.0</computeroutput> istället för 
talet.</para>
+<para>Utdata klipps aldrig om <function>OutputChopExponent</function> är noll. De måste vara ett 
icke-negativt heltal.</para>
+<para>Om du vill att utdata alltid ska klippas enligt <function>OutputChopExponent</function>, ställ då in 
<function>OutputChopWhenExponent</function> till något större än eller lika med 
<function>OutputChopExponent</function>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
+         <listitem>
+          <synopsis>OutputChopWhenExponent = tal</synopsis>
+         <para>När utdata ska klippas. Se <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
+         <listitem>
+          <synopsis>OutputStyle = sträng</synopsis>
+          <para>Utdatastil, detta kan vara <literal>normal</literal>, <literal>latex</literal>, 
<literal>mathml</literal> eller <literal>troff</literal>.</para>
+         <para>Detta påverkar främst hur matriser och bråk skrivs ut och är användbart då du vill klistra in 
i dokument. Till exempel kan du ställa in detta till latex med: <programlisting>OutputStyle = "latex"
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
+         <listitem>
+          <synopsis>ResultsAsFloats = boolean</synopsis>
+          <para>Konvertera alla resultat till flyttal innan de skrivs ut.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
+         <listitem>
+          <synopsis>ScientificNotation = boolean</synopsis>
+          <para>Använd vetenskaplig notation.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
+         <listitem>
+          <synopsis>SlopefieldTicks = [vertikalt,horisontellt]</synopsis>
+          <para>Ställer in antalet vertikala och horisontella skalstreck i en riktningsfältsgraf. (Se <link 
linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>).</para>
+         <para>Version 1.0.10 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
+         <listitem>
+          <synopsis>SumProductNumberOfTries = tal</synopsis>
+         <para>Hur många iterationer att försöka för <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> och <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
+         <listitem>
+          <synopsis>SumProductSFS = tal</synopsis>
+          <para>Hur många efter varandra följande steg att vara inom tolerans för <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> och <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
+         <listitem>
+          <synopsis>SumProductTolerance = tal</synopsis>
+          <para>Toleransen för <link 
linkend="gel-function-InfiniteSum"><function>InfiniteSum</function></link> och <link 
linkend="gel-function-InfiniteProduct"><function>InfiniteProduct</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLegends = true</synopsis>
+          <para>Säger till genius att rita ut förklaringar för <link 
linkend="genius-gel-function-list-plotting">ytgrafsfunktioner</link> som <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
+         <listitem>
+          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
+          <para>Säger till genius vilka variabelnamn som används som standardnamn för <link 
linkend="genius-gel-function-list-plotting">ytgrafsfunktioner</link> med <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>. Observera att 
<varname>z</varname> inte avser den beroende (vertikala) axeln, utan den oberoende komplexa variabeln 
<userinput>z=x+iy</userinput>.</para>
+         <para>Version 1.0.10 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
+         <listitem>
+          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
+          <para>Ställer in gränserna för ytgrafer (Se <link 
linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
+         <listitem>
+          <synopsis>VectorfieldNormalized = true</synopsis>
+          <para>Ska vektorfältsgrafen ha normaliserad pillängd. Om true kommer vektorfält endast visa 
riktning och inte magnitud. (Se <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
+         <listitem>
+          <synopsis>VectorfieldTicks = [vertikalt,horisontellt]</synopsis>
+          <para>Ställer in antalet vertikala och horisontella skalstreck i en vektorfältsgraf. (Se <link 
linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
+         <para>Version 1.0.10 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-constants">
+      <title>Konstanter</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
+         <listitem>
+          <synopsis>CatalanConstant</synopsis>
+          <para>Catalans konstant, ungefär 0.915... Den är definierad som serien där termerna är 
<userinput>(-1^k)/((2*k+1)^2)</userinput>, där <varname>k</varname> går från 0 till oändligheten.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Catalan%27s_constant";>Wikipedia</ulink> eller 
<ulink url="http://mathworld.wolfram.com/CatalansConstant.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
+         <listitem>
+          <synopsis>EulerConstant</synopsis>
+          <para>Alias: <function>gamma</function></para>
+          <para>Eulers gammakonstant. Ibland kallad Euler-Mascheroni-konstanten.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Euler-Mascheroni_constant";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/MascheroniConstant";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
+         <listitem>
+          <synopsis>GoldenRatio</synopsis>
+          <para>Det gyllene snittet.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Golden_ratio";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/GoldenRatio";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/GoldenRatio.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Gravity"/>Gravity</term>
+         <listitem>
+          <synopsis>Gravity</synopsis>
+         <para>Acceleration vid fritt fall vid havsytan i meter per sekundkvadrat- Detta är den vanliga 
gravitationskonstanten 9.80665. Gravitationen i dina hemtrakter kan skilja sig från denna på grund av annan 
höjd och för att jorden inte är ett perfekt klot.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Standard_gravity";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-e"/>e</term>
+         <listitem>
+          <synopsis>e</synopsis>
+          <para>Basen för den naturliga logaritmen. <userinput>e^x</userinput> är den exponentiella 
funktionen <link linkend="gel-function-exp"><function>exp</function></link>. Den är ungefär 2.71828182846... 
Detta tal kallas ibland Eulers tal, men det finns flera tal som också kallas Eulers. Ett exempel på det är 
gammakonstanten: <link linkend="gel-function-EulerConstant"><function>EulerConstant</function></link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/E_(mathematical_constant)">Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/E";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/e.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-pi"/>pi</term>
+         <listitem>
+          <synopsis>pi</synopsis>
+          <para>Talet pi, det vill säga förhållandet mellan en cirkels omkrets och dess diameter. Detta är 
ungefär 3,14159265359...</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Pi";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/Pi";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Pi.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-numeric">
+      <title>Numeriska funktioner</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
+         <listitem>
+          <synopsis>AbsoluteValue (x)</synopsis>
+          <para>Alias: <function>abs</function></para>
+          <para>Absolutbeloppet av ett tal, och om <varname>x</varname> är ett komplext tal så är detta 
avståndet för <varname>x</varname> till origo. Detta är ekvivalent med <userinput>|x|</userinput>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Absolute_value";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/AbsoluteValue";>Planetmath (absolutbelopp)</ulink>, <ulink 
url="http://planetmath.org/ModulusOfComplexNumber";>Planetmath (modulus)</ulink>, <ulink 
url="http://mathworld.wolfram.com/AbsoluteValue.html";>Mathworld (absolutbelopp)</ulink> eller <ulink 
url="http://mathworld.wolfram.com/ComplexModulus.html";>Mathworld (komplex modulus)</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Chop"/>Chop</term>
+         <listitem>
+          <synopsis>Chop (x)</synopsis>
+          <para>Ersätt väldigt litet tal med noll.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
+         <listitem>
+          <synopsis>ComplexConjugate (z)</synopsis>
+          <para>Alias: <function>conj</function><function>Conj</function></para>
+          <para>Beräknar komplexkonjugatet av det komplexa talet <varname>z</varname>. Om 
<varname>z</varname> är en vektor eller matris konjugeras alla dess element.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Complex_conjugate";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Denominator"/>Denominator</term>
+         <listitem>
+          <synopsis>Denominator (x)</synopsis>
+          <para>Hämta nämnaren för ett rationellt tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Denominator";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
+         <listitem>
+          <synopsis>FractionalPart (x)</synopsis>
+          <para>Returnera bråkdelen av ett tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fractional_part";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Im"/>Im</term>
+         <listitem>
+          <synopsis>Im (z)</synopsis>
+          <para>Alias: <function>ImaginaryPart</function></para>
+          <para>Hämta den imaginära delen av ett komplext tal. Till exempel ger 
<userinput>Re(3+4i)</userinput> svaret 4.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Imaginary_part";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
+         <listitem>
+          <synopsis>IntegerQuotient (m,n)</synopsis>
+          <para>Division utan rest.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
+         <listitem>
+          <synopsis>IsComplex (tal)</synopsis>
+         <para>Kontrollera om argumentet är ett komplext (icke-reellt) tal. Observera att vi menar 
icke-reellt tal. Det vill säga <userinput>IsComplex(3)</userinput> ger false, medan 
<userinput>IsComplex(3-1i)</userinput> ger true.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
+         <listitem>
+          <synopsis>IsComplexRational (tal)</synopsis>
+         <para>Kontrollera om argumentet är ett möjligtvis komplext rationellt tal. Det vill säga om både 
real- och imaginärdelarna anges som rationella tal. Givetvis betyder rationell helt enkelt ”inte lagrad som 
ett flyttal”.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
+         <listitem>
+          <synopsis>IsFloat (tal)</synopsis>
+          <para>Kontrollera om argumentet är ett reellt flyttal (icke-komplext).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
+         <listitem>
+          <synopsis>IsGaussInteger (tal)</synopsis>
+          <para>Alias: <function>IsComplexInteger</function></para>
+         <para>Kontrollera om argumentet är ett möjligtvis komplext heltal. Det vill säga ett komplext 
heltal är ett heltal på formen <userinput>n+1i*m</userinput> där <varname>n</varname> och 
<varname>m</varname> är heltal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
+         <listitem>
+          <synopsis>IsInteger (tal)</synopsis>
+          <para>Kontrollera om argumentet är ett heltal (icke-komplext).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
+         <listitem>
+          <synopsis>IsNonNegativeInteger (tal)</synopsis>
+          <para>Kontrollera om argumentet är ett icke-negativt reellt heltal. Det vill säga antingen ett 
positivt heltal eller noll.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
+         <listitem>
+          <synopsis>IsPositiveInteger (tal)</synopsis>
+          <para>Alias: <function>IsNaturalNumber</function></para>
+          <para>Kontrollera om argumentet är ett positivt reellt heltal. Observera att vi accepterar 
konventionen att 0 inte är ett naturligt tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsRational"/>IsRational</term>
+         <listitem>
+          <synopsis>IsRational (tal)</synopsis>
+          <para>Kontrollera om argumentet är ett rationellt tal (icke-komplext). Rationellt betyder förstås 
endast ”inte lagrat som ett flyttal”.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsReal"/>IsReal</term>
+         <listitem>
+          <synopsis>IsReal (tal)</synopsis>
+          <para>Kontrollera om argumentet är ett reellt tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Numerator"/>Numerator</term>
+         <listitem>
+          <synopsis>Numerator (x)</synopsis>
+          <para>Hämta täljaren för ett rationellt tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Numerator";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Re"/>Re</term>
+         <listitem>
+          <synopsis>Re (z)</synopsis>
+          <para>Alias: <function>RealPart</function></para>
+         <para>Hämta den reella delen av ett komplext tal. Till exempel ger <userinput>Re(3+4i)</userinput> 
svaret 3.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Real_part";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Sign"/>Sign</term>
+         <listitem>
+          <synopsis>Sign (x)</synopsis>
+          <para>Alias: <function>sign</function></para>
+          <para>Returnera tecknet för ett tal. Det vill säga returnerar <literal>-1</literal> om värdet är 
negativt, <literal>0</literal> om värdet är noll och <literal>1</literal> om värdet är positivt. Om 
<varname>x</varname> är ett komplext värde så returnerar <function>Sign</function> riktningen eller 0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ceil"/>ceil</term>
+         <listitem>
+          <synopsis>ceil (x)</synopsis>
+          <para>Alias: <function>Ceiling</function></para>
+         <para>Hämta det minsta heltalet större än eller lika med <varname>n</varname>. Exempel: 
<screen><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
+= 2
+<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
+= -1
+</screen></para>
+          <para>Observera att du bör vara försiktig och notera att flyttal lagras binärt och därför kanske 
inte är vad du förväntar dig. Till exempel har vi <userinput>ceil(420/4.2)</userinput> som returnerar 101 
istället för det förväntade 100. Detta är för att 4.2 faktiskt är något mindre än 4.2. Använd 
bråkrepresentationen <userinput>42/10</userinput> om du vill ha exakt aritmetik.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-exp"/>exp</term>
+         <listitem>
+          <synopsis>exp (x)</synopsis>
+          <para>Exponentialfunktionen. Detta är funktionen <userinput>e^x</userinput> där 
<varname>e</varname> är <link linkend="gel-function-e">basen för den naturliga logaritmen</link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Exponential_function";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/ExponentialFunction.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-float"/>float</term>
+         <listitem>
+          <synopsis>float (x)</synopsis>
+          <para>Gör ett tal till ett flyttalsvärde. Det vill säga returnerar flyttalsrepresentationen av 
talet <varname>x</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-floor"/>floor</term>
+         <listitem>
+          <synopsis>floor (x)</synopsis>
+          <para>Alias: <function>Floor</function></para>
+          <para>Hämta det största heltalet mindre än eller lika med <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ln"/>ln</term>
+         <listitem>
+          <synopsis>ln (x)</synopsis>
+          <para>Den naturliga logaritmen, logaritmen med bas <varname>e</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Natural_logarithm";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/LogarithmFunction";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/NaturalLogarithm.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log"/>log</term>
+         <listitem>
+          <synopsis>log (x)</synopsis>
+          <synopsis>log (x,b)</synopsis>
+         <para>Logaritm för <varname>x</varname> med basen <varname>b</varname> (anropar <link 
linkend="gel-function-DiscreteLog"><function>DiscreteLog</function></link> om i moduloläge), om bas inte är 
angiven används <link linkend="gel-function-e"><varname>e</varname></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log10"/>log10</term>
+         <listitem>
+          <synopsis>log10 (x)</synopsis>
+          <para>Logaritmen av <varname>x</varname> bas 10.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-log2"/>log2</term>
+         <listitem>
+          <synopsis>log2 (x)</synopsis>
+          <para>Alias: <function>lg</function></para>
+          <para>Logaritmen av <varname>x</varname> bas 2.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-max"/>max</term>
+         <listitem>
+          <synopsis>max (a,arg...)</synopsis>
+          <para>Alias: <function>Max</function><function>Maximum</function></para>
+          <para>Returnera maximum av argument eller matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-min"/>min</term>
+         <listitem>
+          <synopsis>min (a,arg...)</synopsis>
+          <para>Alias: <function>Min</function><function>Minimum</function></para>
+          <para>Returnera minimum av argument eller matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rand"/>rand</term>
+         <listitem>
+          <synopsis>rand (storlek...)</synopsis>
+          <para>Generera slumpmässigt flyttal i intervallet <literal>[0,1)</literal>. Om storlek är angiven 
returneras en matris (om två tal anges) eller en vektor (om ett tal anges) av den angivna storleken.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-randint"/>randint</term>
+         <listitem>
+          <synopsis>randint (max,storlek...)</synopsis>
+          <para>Generera slumpmässigt heltal i intervallet <literal>[0,1)</literal>. Om storlek är angiven 
returneras en matris (om två tal anges) eller en vektor (om ett tal anges) av den angivna storleken. Till 
exempel, <screen><prompt>genius&gt;</prompt> <userinput>randint(4)</userinput>
+= 3
+<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
+=
+[0      1]
+<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
+=
+[2      2       1
+ 0      0       3]
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-round"/>round</term>
+         <listitem>
+          <synopsis>round (x)</synopsis>
+          <para>Alias: <function>Round</function></para>
+          <para>Avrunda ett tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sqrt"/>sqrt</term>
+         <listitem>
+          <synopsis>sqrt (x)</synopsis>
+          <para>Alias: <function>SquareRoot</function></para>
+          <para>Kvadratroten. Vid operation modulo något heltal kommer den returnera antingen 
<constant>null</constant> eller en vektor av kvadratrötterna. Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>sqrt(2)</userinput>
+= 1.41421356237
+<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
+= 1i
+<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
+=
+[2      5]
+<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
+= 4
+</screen></para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Square_root";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/SquareRoot";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-trunc"/>trunc</term>
+         <listitem>
+          <synopsis>trunc (x)</synopsis>
+          <para>Alias: <function>Truncate</function><function>IntegerPart</function></para>
+          <para>Trunkera talet till ett heltal (returnera heltalsdelen).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-trigonometry">
+      <title>Trigonometri</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-acos"/>acos</term>
+         <listitem>
+          <synopsis>acos (x)</synopsis>
+          <para>Alias: <function>arccos</function></para>
+          <para>arccos-funktionen (invers cos).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acosh"/>acosh</term>
+         <listitem>
+          <synopsis>acosh (x)</synopsis>
+          <para>Alias: <function>arccosh</function></para>
+          <para>arccosh-funktionen (invers cosh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acot"/>acot</term>
+         <listitem>
+          <synopsis>acot (x)</synopsis>
+          <para>Alias: <function>arccot</function></para>
+          <para>arccot-funktionen (invers cot).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acoth"/>acoth</term>
+         <listitem>
+          <synopsis>acoth (x)</synopsis>
+          <para>Alias: <function>arccoth</function></para>
+          <para>arccoth-funktionen (invers coth).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsc"/>acsc</term>
+         <listitem>
+          <synopsis>acsc (x)</synopsis>
+          <para>Alias: <function>arccsc</function></para>
+          <para>Inversa cosekantfunktionen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-acsch"/>acsch</term>
+         <listitem>
+          <synopsis>acsch (x)</synopsis>
+          <para>Alias: <function>arccsch</function></para>
+          <para>Inversa hyperboliska cosekantfunktionen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asec"/>asec</term>
+         <listitem>
+          <synopsis>asec (x)</synopsis>
+          <para>Alias: <function>arcsec</function></para>
+          <para>Inversa sekantfunktionen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asech"/>asech</term>
+         <listitem>
+          <synopsis>asech (x)</synopsis>
+          <para>Alias: <function>arcsech</function></para>
+          <para>Inversa hyperboliska sekantfunktionen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asin"/>asin</term>
+         <listitem>
+          <synopsis>asin (x)</synopsis>
+          <para>Alias: <function>arcsin</function></para>
+          <para>arcsin-funktionen (invers sin).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-asinh"/>asinh</term>
+         <listitem>
+          <synopsis>asinh (x)</synopsis>
+          <para>Alias: <function>arcsinh</function></para>
+          <para>arcsinh-funktionen (invers sinh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan"/>atan</term>
+         <listitem>
+          <synopsis>atan (x)</synopsis>
+          <para>Alias: <function>arctan</function></para>
+          <para>Beräknar arcustangensfunktionen (invers tangens).</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Arctangent";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atanh"/>atanh</term>
+         <listitem>
+          <synopsis>atanh (x)</synopsis>
+          <para>Alias: <function>arctanh</function></para>
+          <para>arctanh-funktionen (invers tanh).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-atan2"/>atan2</term>
+         <listitem>
+          <synopsis>atan2 (y, x)</synopsis>
+          <para>Alias: <function>arctan2</function></para>
+          <para>Beräknar arctan2-funktionen. Om <userinput>x&gt;0</userinput> returnerar den 
<userinput>atan(y/x)</userinput>. If <userinput>x&lt;0</userinput> returnerar den <userinput>sign(y) * (pi - 
atan(|y/x|)</userinput>. Då <userinput>x=0</userinput> returnerar den <userinput>sign(y) *
+         pi/2</userinput>. <userinput>atan2(0,0)</userinput> returnerar 0 snarare än att misslyckas.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Atan2";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/InverseTangent.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cos"/>cos</term>
+         <listitem>
+          <synopsis>cos (x)</synopsis>
+          <para>Beräknar cosinusfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cosh"/>cosh</term>
+         <listitem>
+          <synopsis>cosh (x)</synopsis>
+          <para>Beräknar funktionen för hyperbolisk cosinus.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cot"/>cot</term>
+         <listitem>
+          <synopsis>cot (x)</synopsis>
+          <para>Cotangensfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-coth"/>coth</term>
+         <listitem>
+          <synopsis>coth (x)</synopsis>
+          <para>Hyperboliska cotangensfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csc"/>csc</term>
+         <listitem>
+          <synopsis>csc (x)</synopsis>
+          <para>Cosekantfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-csch"/>csch</term>
+         <listitem>
+          <synopsis>csch (x)</synopsis>
+          <para>Hyperboliska cosekantfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sec"/>sec</term>
+         <listitem>
+          <synopsis>sec (x)</synopsis>
+          <para>Sekantfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sech"/>sech</term>
+         <listitem>
+          <synopsis>sech (x)</synopsis>
+          <para>Hyperboliska sekantfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sin"/>sin</term>
+         <listitem>
+          <synopsis>sin (x)</synopsis>
+          <para>Beräknar sinusfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinh"/>sinh</term>
+         <listitem>
+          <synopsis>sinh (x)</synopsis>
+          <para>Beräknar funktionen för hyperbolisk sinus.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tan"/>tan</term>
+         <listitem>
+          <synopsis>tan (x)</synopsis>
+          <para>Beräknar tangensfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Trigonometric_functions";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/DefinitionsInTrigonometry";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-tanh"/>tanh</term>
+         <listitem>
+          <synopsis>tanh (x)</synopsis>
+          <para>Hyperboliska tangensfunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hyperbolic_function";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/HyperbolicFunctions";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-number-theory">
+      <title>Talteori</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
+         <listitem>
+          <synopsis>AreRelativelyPrime (a,b)</synopsis>
+          <para>Är de reella heltalen <varname>a</varname> och <varname>b</varname> relativt prima? 
Returnerar <constant>true</constant> eller <constant>false</constant>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Coprime_integers";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/RelativelyPrime";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/RelativelyPrime.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
+         <listitem>
+          <synopsis>BernoulliNumber (n)</synopsis>
+          <para>Returnerar det <varname>n</varname>:e Bernoullitalet.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Bernoulli_number";>Wikipedia</ulink> eller 
<ulink url="http://mathworld.wolfram.com/BernoulliNumber.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
+         <listitem>
+          <synopsis>ChineseRemainder (a,m)</synopsis>
+          <para>Alias: <function>CRT</function></para>
+         <para>Hitta det <varname>x</varname> som löser systemet givet av vektorn <varname>a</varname> 
modulo elementen i <varname>m</varname> med den kinesiska restsatsen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Chinese_remainder_theorem";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/ChineseRemainderTheorem";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
+         <listitem>
+          <synopsis>CombineFactorizations (a,b)</synopsis>
+         <para>Givet två faktoriseringar, ange faktoriseringen av produkten.</para>
+         <para>Se <link linkend="gel-function-Factorize">Factorize</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
+         <listitem>
+          <synopsis>ConvertFromBase (v,b)</synopsis>
+          <para>Konvertera en vektor av värden som indikerar potenser av b till ett tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
+         <listitem>
+          <synopsis>ConvertToBase (n,b)</synopsis>
+          <para>Konvertera ett tal till en vektor av potenser för element i bas <varname>b</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
+         <listitem>
+          <synopsis>DiscreteLog (n,b,q)</synopsis>
+          <para>Hitta diskret logaritm av <varname>n</varname> bas <varname>b</varname> i 
F<subscript>q</subscript>, den ändliga kroppen av ordning <varname>q</varname>, där <varname>q</varname> är 
ett primtal, med Silver-Pohlig-Hellman-algoritmen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Discrete_logarithm";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/DiscreteLogarithm";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/DiscreteLogarithm.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Divides"/>Divides</term>
+         <listitem>
+          <synopsis>Divides (m,n)</synopsis>
+          <para>Kontrollerar delbarhet (om <varname>m</varname> delar <varname>n</varname>).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
+         <listitem>
+          <synopsis>EulerPhi (n)</synopsis>
+          <para>Beräkna Eulers φ-funktion för <varname>n</varname>, det vill säga antalet heltal mellan 1 
och <varname>n</varname> som är relativt prima till <varname>n</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Euler_phi";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/EulerPhifunction";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/TotientFunction.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
+         <listitem>
+          <synopsis>ExactDivision (n,d)</synopsis>
+          <para>Returnera <userinput>n/d</userinput> men endast om <varname>d</varname> delar 
<varname>n</varname>. Om <varname>d</varname> inte delar <varname>n</varname> kommer denna funktion returnera 
skräpvärden. Detta är mycket snabbare för väldigt stora tal än operationen <userinput>n/d</userinput>, men 
självklart bara användbart om du vet att divisionen är exakt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorize"/>Factorize</term>
+         <listitem>
+          <synopsis>Factorize (n)</synopsis>
+          <para>Returnera faktoriseringen av ett tal som en matris. Den första raden är primtalen i 
faktoriseringen (inklusive 1) och den andra raden är exponenterna. Till exempel: 
<screen><prompt>genius&gt;</prompt> <userinput>Factorize(11*11*13)</userinput>
+=
+[1      11      13
+ 1      2       1]</screen></para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Factorization";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factors"/>Factors</term>
+         <listitem>
+          <synopsis>Factors (n)</synopsis>
+          <para>Returnera alla faktorer av <varname>n</varname> i en vektor. Detta inkluderar även alla 
icke-primtalsfaktorer. Det inkluderar 1 och talet självt. Så för att till exempel skriva ut alla perfekta tal 
(de som är summan av sina faktorer) upp till talet 1000 kan du göra följande (detta är förstås väldigt 
ineffektivt) <programlisting>for n=1 to 1000 do (
+    if MatrixSum (Factors(n)) == 2*n then
+        print(n)
+)
+</programlisting></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
+         <listitem>
+          <synopsis>FermatFactorization (n,försök)</synopsis>
+          <para>Försök med Fermatfaktorisering av <varname>n</varname> till 
<userinput>(t-s)*(t+s)</userinput>, returnerar <varname>t</varname> och <varname>s</varname> som en vektor om 
möjligt, annars <constant>null</constant>. <varname>försök</varname> anger antalet försök innan vi ger 
upp.</para>
+          <para>Detta är en rätt bra faktorisering om ditt tal är produkten av två faktorer som ligger 
väldigt nära varandra.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fermat_factorization";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindPrimitiveElementMod (q)</synopsis>
+          <para>Hitta det första primitiva elementet i F<subscript>q</subscript>, den finita gruppen av 
ordning <varname>q</varname>. Givetvis måste <varname>q</varname> vara ett primtal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
+         <listitem>
+          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
+          <para>Hitta ett slumpmässigt primitivt element i F<subscript>q</subscript>, den ändliga gruppen av 
ordning <varname>q</varname> (q måste vara ett primtal).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
+         <listitem>
+          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
+          <para>Beräkna diskret logaritm av n bas <varname>b</varname> i F<subscript>q</subscript>, den 
ändliga gruppen av ordning <varname>q</varname> (<varname>q</varname> ett primtal) med faktorbas 
<varname>S</varname>. <varname>S</varname> ska vara en kolumn av primtal, möjligen med en andra kolumn 
förberäknad av <link 
linkend="gel-function-IndexCalculusPrecalculation"><function>IndexCalculusPrecalculation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
+         <listitem>
+          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
+         <para>Kör förberäkningssteget av <link 
linkend="gel-function-IndexCalculus"><function>IndexCalculus</function></link> för logaritmer bas 
<varname>b</varname> i F<subscript>q</subscript>, den ändliga gruppen av ordning <varname>q</varname> 
(<varname>q</varname> ett primtal) för faktorbasen <varname>S</varname> (där <varname>S</varname> är en 
kolumnvektor av primtal). Logaritmerna kommer vara förberäknade och returneras i den andra kolumnen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsEven"/>IsEven</term>
+         <listitem>
+          <synopsis>IsEven (n)</synopsis>
+          <para>Testar om ett heltal är jämnt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
+         <listitem>
+          <synopsis>IsMersennePrimeExponent (p)</synopsis>
+          <para>Testar om ett positivt heltal <varname>p</varname> är en Mersenneprimtalsexponent. Det vill 
säga om 2<superscript>p</superscript>-1 är ett primtal. Det gör detta genom att slå upp det i en tabell med 
kända värden, vilken är relativt kort. Se även <link 
linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> och <link 
linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>, <ulink 
url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> eller <ulink 
url="http://www.mersenne.org/";>GIMPS</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
+         <listitem>
+          <synopsis>IsNthPower (m,n)</synopsis>
+          <para>Testar om ett rationellt tal <varname>m</varname> är lika med något heltal upphöjt till 
<varname>n</varname>. Se även <link linkend="gel-function-IsPerfectPower">IsPerfectPower</link> och <link 
linkend="gel-function-IsPerfectSquare">IsPerfectSquare</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
+         <listitem>
+          <synopsis>IsOdd (n)</synopsis>
+          <para>Testar om ett heltal är udda.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
+         <listitem>
+          <synopsis>IsPerfectPower (n)</synopsis>
+          <para>Kontrollera om ett heltal är en perfekt potens, a<superscript>b</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
+         <listitem>
+          <synopsis>IsPerfectSquare (n)</synopsis>
+          <para>Kontrollera om ett heltal är en perfekt kvadrat av ett heltal. Talet måste vara ett heltal. 
Negativa heltal kan givetvis aldrig vara perfekta kvadrater av heltal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
+         <listitem>
+          <synopsis>IsPrime (n)</synopsis>
+          <para>Testar om heltal är primtal. För tal mindre än 2.5e10 är svaret deterministiskt (om 
Riemann-hypotesen är sann). För större tal beror sannolikheten för ett falskt positivt svar på <link 
linkend="gel-function-IsPrimeMillerRabinReps"><function>IsPrimeMillerRabinReps</function></link>. Det vill 
säga sannolikheten för ett falskt positivt värde är 1/4 upphöjt till 
<function>IsPrimeMillerRabinReps</function>. Standardvärdet 22 ger en sannolikhet på ungefär 5.7e-14.</para>
+          <para>Om <constant>false</constant> returneras kan du vara säker på att talet är sammansatt. Om du 
vill vara fullständigt säker på att du har ett primtal kan du använda <link 
linkend="gel-function-MillerRabinTestSure"><function>MillerRabinTestSure</function></link> men det kan ta 
mycket längre tid.</para>
+          <para>Se <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
+         <listitem>
+          <synopsis>IsPrimitiveMod (g,q)</synopsis>
+          <para>Kontrollera om <varname>g</varname> är primitiv i F<subscript>q</subscript>, den finita 
gruppen av ordning <varname>q</varname>, där <varname>q</varname> är ett primtal. Om <varname>q</varname> 
inte är ett primtal kommer resultat vara felaktiga.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
+         <listitem>
+          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
+          <para>Kontrollera om <varname>g</varname> är primitiv i F<subscript>q</subscript>, den finita 
gruppen av ordning <varname>q</varname>, där <varname>q</varname> är ett primtal och <varname>f</varname> är 
en vektor av primtalsfaktorer av <varname>q</varname>-1. Om <varname>q</varname> inte är ett primtal kommer 
resultat vara felaktiga.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
+         <listitem>
+          <synopsis>IsPseudoprime (n,b)</synopsis>
+          <para>Om <varname>n</varname> är ett pseudoprimtal för basen <varname>b</varname> men inte ett 
primtal, det vill säga om <userinput>b^(n-1) == 1 mod n</userinput>. Detta anropar <link 
linkend="gel-function-PseudoprimeTest"><function>PseudoprimeTest</function></link></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
+         <listitem>
+          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
+          <para>Testa om <varname>n</varname> är ett starkt pseudoprimtal för basen <varname>b</varname> men 
inte ett primtal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
+         <listitem>
+          <synopsis>Jacobi (a,b)</synopsis>
+          <para>Alias: <function>JacobiSymbol</function></para>
+          <para>Beräkna Jacobi-symbolen (a/b) (b måste vara udda).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
+         <listitem>
+          <synopsis>JacobiKronecker (a,b)</synopsis>
+          <para>Alias: <function>JacobiKroneckerSymbol</function></para>
+          <para>Beräkna Jacobi-symbolen (a/b) med Kronecker-tillägget (a/2)=(2/a) när a är udda, eller 
(a/2)=0 när a är jämnt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
+         <listitem>
+          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
+          <para>Returnera residualen av <varname>a</varname> mod <varname>n</varname> med det minsta 
absolutbeloppet (i intervallet -n/2 till n/2).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Legendre"/>Legendre</term>
+         <listitem>
+          <synopsis>Legendre (a,p)</synopsis>
+          <para>Alias: <function>LegendreSymbol</function></para>
+          <para>Beräkna Legendre-symbolen (a/p).</para>
+          <para>Se <ulink url="http://planetmath.org/LegendreSymbol";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/LegendreSymbol.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
+         <listitem>
+          <synopsis>LucasLehmer (p)</synopsis>
+          <para>Testa om 2<superscript>p</superscript>-1 är ett Mersenne-primtal med Lucas-Lehmer-testet. Se 
även <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> och <link 
linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>.</para>
+          <para>Se <ulink 
url="https://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/LucasLhemer";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Lucas-LehmerTest.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
+         <listitem>
+          <synopsis>LucasNumber (n)</synopsis>
+          <para>Returnerar det <varname>n</varname>:e Lucas-talet.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Lucas_number";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/LucasNumbers";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/LucasNumber.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
+         <listitem>
+          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
+          <para>Returnera alla maximala potenser av primtalsfaktorer för ett tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
+         <listitem>
+          <synopsis>MersennePrimeExponents</synopsis>
+          <para>En vektor av kända Mersenne-primtalsexponenter, det vill säga en lista över positiva heltal 
<varname>p</varname> så att 2<superscript>p</superscript>-1 är ett primtal. Se även <link 
linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link> och <link 
linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Mersenne_prime";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/MersenneNumbers";>Planetmath</ulink>, <ulink 
url="http://mathworld.wolfram.com/MersennePrime.html";>Mathworld</ulink> eller <ulink 
url="http://www.mersenne.org/";>GIMPS</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
+         <listitem>
+          <synopsis>MillerRabinTest (n,reps)</synopsis>
+          <para>Använd Miller-Rabin-primalitetstestet på <varname>n</varname>, <varname>reps</varname> 
gånger. Sannolikheten för falska positiva är <userinput>(1/4)^reps</userinput>. Det är troligen vanligen 
bättre att använda <link linkend="gel-function-IsPrime"><function>IsPrime</function></link> eftersom det är 
snabbare och bättre för mindre heltal.</para>
+          <para>Se <ulink 
url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
+         <listitem>
+          <synopsis>MillerRabinTestSure (n)</synopsis>
+          <para>Använd Miller-Rabin-primalitetstestet på <varname>n</varname> med tillräckliga baser för 
att, givet den allmänna Riemann-hypotesen, resultatet ska vara deterministiskt.</para>
+          <para>Se <ulink 
url="https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/MillerRabinPrimeTest";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
+         <listitem>
+          <synopsis>ModInvert (n,m)</synopsis>
+          <para>Returnerar inversen av n mod m.</para>
+          <para>Se <ulink url="http://mathworld.wolfram.com/ModularInverse.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
+         <listitem>
+          <synopsis>MoebiusMu (n)</synopsis>
+          <para>Returnera Möbiusfunktionen µ(n) beräknad i <varname>n</varname>. Det vill säga, returnerar 0 
om <varname>n</varname> inte är en produkt av distinkta primtal och <userinput>(-1)^k</userinput> om det är 
en produkt av <varname>k</varname> distinkta primtal.</para>
+          <para>Se <ulink url="http://planetmath.org/MoebiusFunction";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/MoebiusFunction.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
+         <listitem>
+          <synopsis>NextPrime (n)</synopsis>
+          <para>Returnerar det minsta primtalet större än <varname>n</varname>. Negativer av primtal anses 
vara primtal så för att få det föregående primtalet kan du använda 
<userinput>-NextPrime(-n)</userinput>.</para>
+          <para>Denna funktion använder GMP:s <function>mpz_nextprime</function>, som i sin tur använder det 
probabilistiska Miller-Rabin-testet (Se även <link 
linkend="gel-function-MillerRabinTest"><function>MillerRabinTest</function></link>). Sannolikheten för att få 
falska positiva går inte att ställa in, men är låg nog för alla praktiska användningsområden.</para>
+          <para>Se <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
+         <listitem>
+          <synopsis>PadicValuation (n,p)</synopsis>
+          <para>Returnera den p-adiska beräkningen (antal efterföljande nollor i bas 
<varname>p</varname>).</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/P-adic_order";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/PAdicValuation";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
+         <listitem>
+          <synopsis>PowerMod (a,b,m)</synopsis>
+          <para>Beräkna <userinput>a^b mod m</userinput>. <varname>b</varname>-potensen av 
<varname>a</varname> modulo <varname>m</varname>. Det är inte nödvändigt att använda denna funktion eftersom 
den används automatiskt i moduloläge. Därför går <userinput>a^b mod m</userinput> precis lika snabbt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Prime"/>Prime</term>
+         <listitem>
+          <synopsis>Prime (n)</synopsis>
+          <para>Alias: <function>prime</function></para>
+          <para>Returnera det <varname>n</varname>:e primtalet (upp till en gräns).</para>
+          <para>Se <ulink url="http://planetmath.org/PrimeNumber";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/PrimeNumber.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
+         <listitem>
+          <synopsis>PrimeFactors (n)</synopsis>
+          <para>Returnera alla primtalsfaktorer för ett tal som en vektor.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Prime_factor";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/PrimeFactor.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
+         <listitem>
+          <synopsis>PseudoprimeTest (n,b)</synopsis>
+         <para>Pseudoprimtalstest, returnerar <constant>true</constant> om och endast om <userinput>b^(n-1) 
== 1  mod n</userinput></para>
+          <para>Se <ulink url="http://planetmath.org/Pseudoprime";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Pseudoprime.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
+         <listitem>
+          <synopsis>RemoveFactor (n,m)</synopsis>
+          <para>Tar bort alla förekomster av faktorn <varname>m</varname> från talet <varname>n</varname>. 
Det vill säga dividerar med den största potensen av <varname>m</varname> som delar 
<varname>n</varname>.</para>
+          <para>Se <ulink url="http://planetmath.org/Divisibility";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Factor.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
+         <listitem>
+          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
+          <para>Hitta diskret logaritm av <varname>n</varname> bas <varname>b</varname> i 
F<subscript>q</subscript>, den finita gruppen av ordning <varname>q</varname>, där <varname>q</varname> är 
ett primtal med Silver-Pohlig-Hellman-algoritmen, givet att <varname>f</varname> är faktoriseringen av 
<varname>q</varname>-1.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
+         <listitem>
+          <synopsis>SqrtModPrime (n,p)</synopsis>
+          <para>Hitta kvadratrot av <varname>n</varname> mod <varname>p</varname> (där <varname>p</varname> 
är ett primtal). Null returneras om inte en kvadratisk rest.</para>
+          <para>Se <ulink url="http://planetmath.org/QuadraticResidue";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/QuadraticResidue.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
+         <listitem>
+          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
+          <para>Kör det starka pseudoprimtalstestet bas <varname>b</varname> på <varname>n</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Strong_pseudoprime";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/StrongPseudoprime";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/StrongPseudoprime.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-gcd"/>gcd</term>
+         <listitem>
+          <synopsis>gcd (a,arg...)</synopsis>
+          <para>Alias: <function>GCD</function></para>
+          <para>Största gemensamma delare av heltal. Du kan mata in så många heltal som du vill i 
argumentlistan, eller så kan du ange en vektor eller en matris av heltal. Om du anger mer än en matris av 
samma storlek kommer SGD att utföras elementvis.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Greatest_common_divisor";>Wikipedia</ulink>, 
<ulink url="http://planetmath.org/GreatestCommonDivisor";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/GreatestCommonDivisor.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-lcm"/>lcm</term>
+         <listitem>
+          <synopsis>lcm (a,arg...)</synopsis>
+          <para>Alias: <function>LCM</function></para>
+          <para>Minsta gemensamma multipel av heltal. Du kan mata in så många heltal som du vill i 
argumentlistan, eller så kan du ange en vektor eller en matris av heltal. Om du anger mer än en matris av 
samma storlek kommer MGM att utföras elementvis.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Least_common_multiple";>Wikipedia</ulink>, 
<ulink url="http://planetmath.org/LeastCommonMultiple";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/LeastCommonMultiple.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-matrix">
+      <title>Matrismanipulation</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix (a,funk)</synopsis>
+          <para>Tillämpa en funktion över alla poster av en matris och returnera en matris av 
resultaten.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
+         <listitem>
+          <synopsis>ApplyOverMatrix2 (a,b,funk)</synopsis>
+          <para>Tillämpa en funktion över alla poster av två matriser (eller ett värde och en matris) och 
returnera en matris av resultaten.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
+         <listitem>
+          <synopsis>ColumnsOf (M)</synopsis>
+          <para>Hämtar kolumnerna i en matris som en horisontell vektor.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
+         <listitem>
+          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
+          <para>Ta bort kolumn(er) och rad(er) från en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
+         <listitem>
+          <synopsis>CompoundMatrix (k,A)</synopsis>
+          <para>Beräkna den k:e compound-matrisen av A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
+         <listitem>
+          <synopsis>CountZeroColumns (M)</synopsis>
+          <para>Räkna antalet nollkolumner i en matris. Till exempel då du kolumnreducerat en matris kan du 
använda detta för att hitta nulliteten. Se <link linkend="gel-function-cref"><function>cref</function></link> 
och <link linkend="gel-function-Nullity"><function>Nullity</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
+         <listitem>
+          <synopsis>DeleteColumn (M,kol)</synopsis>
+          <para>Ta bort en kolumn i en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
+         <listitem>
+          <synopsis>DeleteRow (M,rad)</synopsis>
+          <para>Ta bort en rad i en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
+         <listitem>
+          <synopsis>DiagonalOf (M)</synopsis>
+          <para>Hämtar diagonalposterna i en matris som en kolumnvektor.</para>
+          <para>Se <ulink 
url="https://en.wikipedia.org/wiki/Diagonal_of_a_matrix#Matrices";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
+         <listitem>
+          <synopsis>DotProduct (u,v)</synopsis>
+         <para>Hämta skalärprodukten av två vektorer. Vektorerna måste vara av samma storlek. Inga konjugat 
tas så detta är en bilinjär form även om vi arbetar över de komplexa talen; detta är den bilinjära 
skalärprodukten, inte den seskvilinjära skalärprodukten. Se <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link> för den vanliga seskvilinjära inre 
produkten.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Dot_product";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/DotProduct";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
+         <listitem>
+          <synopsis>ExpandMatrix (M)</synopsis>
+          <para>Expanderar en matris precis som vi gör med ociterade matrisindata. Det vill säga vi 
expanderar alla interna matriser som block. Detta är ett sätt att konstruera matriser från mindre matriser 
och detta görs vanligen automatiskt vid inmatning om inte matrisen är citerad.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
+         <listitem>
+          <synopsis>HermitianProduct (u,v)</synopsis>
+          <para>Alias: <function>InnerProduct</function></para>
+          <para>Hämta den hermiteska produkten av två vektorer. Vektorerna måste vara av samma storlek. 
Detta är en seskvilinjär form som använder identitetsmatrisen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Sesquilinear_form";>Wikipedia</ulink> eller 
<ulink url="http://mathworld.wolfram.com/HermitianInnerProduct.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-I"/>I</term>
+         <listitem>
+          <synopsis>I (n)</synopsis>
+          <para>Alias: <function>eye</function></para>
+         <para>Returnera identitetsmatris av given storlek, det vill säga 
<varname>n</varname>×<varname>n</varname>. Om <varname>n</varname> är noll returneras 
<constant>null</constant>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Identity_matrix";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/IdentityMatrix";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
+         <listitem>
+          <synopsis>IndexComplement (vek,mstorl)</synopsis>
+          <para>Returnera indexkomplementet av en vektor med index. Allt är i basen ett. Till exempel för 
vektorn <userinput>[2,3]</userinput> och storlek <userinput>5</userinput> returnerar vi 
<userinput>[1,4,5]</userinput>. Om <varname>mstorl</varname> är 0, returnerar vi alltid 
<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
+         <listitem>
+          <synopsis>IsDiagonal (M)</synopsis>
+          <para>Är en matris diagonal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
+         <listitem>
+          <synopsis>IsIdentity (x)</synopsis>
+          <para>Kontrollera om en matris är identitetsmatrisen. Returnerar automatiskt 
<constant>false</constant> om matrisen inte är kvadratisk. Fungerar också på tal, i vilket fall den är 
ekvivalent med <userinput>x==1</userinput>. Då <varname>x</varname> är <constant>null</constant> (vi kan 
tänka oss detta som en 0×0-matris), genereras inget fel och <constant>false</constant> returneras.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
+         <listitem>
+          <synopsis>IsLowerTriangular (M)</synopsis>
+          <para>Är en matris nedåt triangulär. Det vill säga, är alla poster ovanför diagonalen noll.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
+         <listitem>
+          <synopsis>IsMatrixInteger (M)</synopsis>
+          <para>Kontrollera om en matris är en matris med heltal (icke-komplex).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
+         <listitem>
+          <synopsis>IsMatrixNonnegative (M)</synopsis>
+          <para>Kontrollera om en matris är icke-negativ, det vill säga om varje element är icke-negativt. 
Förväxla inte positiva matriser med positivt semidefinita matriser.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
+         <listitem>
+          <synopsis>IsMatrixPositive (M)</synopsis>
+         <para>Kontrollera om en matris är positiv, det vill säga om varje element är positivt (och därmed 
reellt). Specifikt är inget element 0. Förväxla inte positiva matriser med positivt definita matriser.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Positive_matrix";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
+         <listitem>
+          <synopsis>IsMatrixRational (M)</synopsis>
+          <para>Kontrollera om en matris är en matris med rationella (icke-komplexa) tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
+         <listitem>
+          <synopsis>IsMatrixReal (M)</synopsis>
+          <para>Kontrollera om en matris är en matris med reella (icke-komplexa) tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
+         <listitem>
+          <synopsis>IsMatrixSquare (M)</synopsis>
+          <para>Kontrollera om en matris är kvadratisk, det vill säga att dess bredd är samma som dess 
höjd.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
+         <listitem>
+          <synopsis>IsUpperTriangular (M)</synopsis>
+          <para>Är en matris uppåt triangulär? Det vill säga, en matris är uppåt triangulär om alla poster 
nedanför diagonalen är noll.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
+         <listitem>
+          <synopsis>IsValueOnly (M)</synopsis>
+          <para>Kontrollera om en matris är en matris med endast tal. Många interna funktioner utför denna 
kontroll. Värden kan vara godtyckliga tal, inklusive komplexa tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsVector"/>IsVector</term>
+         <listitem>
+          <synopsis>IsVector (v)</synopsis>
+          <para>Är argument en horisontell eller vertikal vektor. Genius skiljer inte mellan en matris och 
en vektor, och en vektor är bara en 1×<varname>n</varname>- eller <varname>n</varname>×1-matrix.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsZero"/>IsZero</term>
+         <listitem>
+          <synopsis>IsZero (x)</synopsis>
+          <para>Kontrollera om en matris består av endast nollor. Fungerar också på tal, i vilket fall det 
är ekvivalent med <userinput>x==0</userinput>. Då <varname>x</varname> är <constant>null</constant> (vi kan 
tänka oss det som en 0×0-matris), genereras inget fel och <constant>true</constant> returneras eftersom 
villkoret är tomt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
+         <listitem>
+          <synopsis>LowerTriangular (M)</synopsis>
+          <para>Returnerar en kopia av matrisen <varname>M</varname> där alla poster ovanför diagonalen 
satts till noll.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
+         <listitem>
+          <synopsis>MakeDiagonal (v,arg...)</synopsis>
+          <para>Alias: <function>diag</function></para>
+         <para>Skapa diagonalmatris från en vektor. Alternativt kan du skicka med värdena att placera i 
diagonalen som argument. Därmed är <userinput>MakeDiagonal([1,2,3])</userinput> samma som 
<userinput>MakeDiagonal(1,2,3)</userinput>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Diagonal_matrix";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/DiagonalMatrix";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
+         <listitem>
+          <synopsis>MakeVector (A)</synopsis>
+          <para>Skapa en kolumnvektor från matris genom att lägga kolumner ovanpå varandra. Returnerar 
<constant>null</constant> då den får <constant>null</constant> som indata.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
+         <listitem>
+          <synopsis>MatrixProduct (A)</synopsis>
+          <para>Beräkna produkten av alla element i en matris eller vektor. Det vill säga vi multiplicerar 
alla element och returnerar ett tal som är produkten av alla element.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
+         <listitem>
+          <synopsis>MatrixSum (A)</synopsis>
+          <para>Beräkna summan av alla element i en matris eller vektor. Det vill säga vi adderar alla 
element och returnerar ett tal som är summan av alla element.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
+         <listitem>
+          <synopsis>MatrixSumSquares (A)</synopsis>
+          <para>Beräkna summan av kvadraterna av alla element i en matris eller vektor.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroColumns"/>NonzeroColumns</term>
+         <listitem>
+          <synopsis>NonzeroColumns (M)</synopsis>
+          <para>Returnerar en radvektor av indexen för nollskilda kolumner i matrisen 
<varname>M</varname>.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonzeroElements"/>NonzeroElements</term>
+         <listitem>
+          <synopsis>NonzeroElements (v)</synopsis>
+          <para>Returnerar en radvektor av indexen för nollskilda element i vektorn 
<varname>v</varname>.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
+         <listitem>
+          <synopsis>OuterProduct (u,v)</synopsis>
+          <para>Hämta den yttre produkten av två vektorer. Det vill säga anta att <varname>u</varname> och 
<varname>v</varname> är vertikala vektorer, då är den yttre produkten <userinput>v * u.'</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
+         <listitem>
+          <synopsis>ReverseVector (v)</synopsis>
+         <para>Vänd på elementen i en vektor. Returnera <constant>null</constant> om 
<constant>null</constant> ges</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSum"/>RowSum</term>
+         <listitem>
+          <synopsis>RowSum (m)</synopsis>
+          <para>Beräkna summan av varje rad i en matris och returnera en vertikal vektor med 
resultatet.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
+         <listitem>
+          <synopsis>RowSumSquares (m)</synopsis>
+          <para>Beräkna summan av kvadraterna för varje rad i en matris och returnera en vertikal vektor med 
resultaten.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
+         <listitem>
+          <synopsis>RowsOf (M)</synopsis>
+         <para>Hämtar raderna i en matris som en vertikal vektor. Varje element i vektorn är en horisontell 
vektor som är motsvarande rad i <varname>M</varname>. Denna funktion är användbar om du vill köra en slinga 
över raderna i en matris. Till exempel som i <userinput>for r in RowsOf(M) do
+radfunktion(r)</userinput>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
+         <listitem>
+          <synopsis>SetMatrixSize (M,rader,kolumner)</synopsis>
+          <para>Skapa ny matris av given storlek från en gammal. Det vill säga en ny matris kommer 
returneras till vilken den gamla kopieras. Poster som inte ryms tas bort och extra utrymme fylls med nollor. 
Om <varname>rader</varname> eller <varname>kolumner</varname> är noll returneras 
<constant>null</constant>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
+         <listitem>
+          <synopsis>ShuffleVector (v)</synopsis>
+         <para>Flytta runt element i en vektor. Returnera <constant>null</constant> om 
<constant>null</constant> ges.</para>
+         <para>Version 1.0.13 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SortVector"/>SortVector</term>
+         <listitem>
+          <synopsis>SortVector (v)</synopsis>
+          <para>Sortera vektorelement i stigande ordning.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
+         <listitem>
+          <synopsis>StripZeroColumns (M)</synopsis>
+          <para>Ta bort alla kolumner med endast nollor i <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
+         <listitem>
+          <synopsis>StripZeroRows (M)</synopsis>
+          <para>Ta bort alla rader med endast nollor i <varname>M</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
+         <listitem>
+          <synopsis>Submatrix (m,r,c)</synopsis>
+          <para>Returnera kolumn(er) och rad(er) från en matris. Detta är ekvivalent med 
<userinput>m@(r,c)</userinput>. <varname>r</varname> och <varname>c</varname> ska vara vektorer av rader och 
kolumner (eller enskilda tal om endast en rad eller kolumn behövs).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
+         <listitem>
+          <synopsis>SwapRows (m,rad1,rad2)</synopsis>
+          <para>Byt plats på två rader i en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
+         <listitem>
+          <synopsis>UpperTriangular (M)</synopsis>
+          <para>Returnerar en kopia av matrisen <varname>M</varname> där alla poster under diagonalen satts 
till noll.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-columns"/>columns</term>
+         <listitem>
+          <synopsis>columns (M)</synopsis>
+          <para>Hämta antalet kolumner i en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-elements"/>elements</term>
+         <listitem>
+          <synopsis>elements (M)</synopsis>
+          <para>Hämta det totala antalet element i en matris. Detta är antalet kolumner gånger antalet 
rader.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ones"/>ones</term>
+         <listitem>
+          <synopsis>ones (rader,kolumner...)</synopsis>
+         <para>Skapa en matris med ettor överallt (eller en radvektor om endast ett argument ges). 
Returnerar <constant>null</constant> om antingen rader eller kolumner är noll.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rows"/>rows</term>
+         <listitem>
+          <synopsis>rows (M)</synopsis>
+          <para>Hämta antalet rader i en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-zeros"/>zeros</term>
+         <listitem>
+          <synopsis>zeros (rader,kolumner...)</synopsis>
+         <para>Skapa en matris med nollor överallt (eller en radvektor om endast ett argument ges). 
Returnerar <constant>null</constant> om antingen rader eller kolumner är noll.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-linear-algebra">
+      <title>Linjär algebra</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
+         <listitem>
+          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
+          <para>Hämta hjälpenhetsmatrisen av storlek <varname>n</varname>. Detta är en kvadratisk matris med 
bara nollor, förutom element i överdiagonalen (i,i+1) som har värdet 1. Det är Jordanblockmatrisen med ett 
egenvärde som är noll.</para>
+          <para>Se <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> eller 
<ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> för mer information om Jordans 
normalform.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
+         <listitem>
+          <synopsis>BilinearForm (v,A,w)</synopsis>
+          <para>Beräkna (v,w) med avseende på den bilinjära formen given av matrisen A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
+         <listitem>
+          <synopsis>BilinearFormFunction (A)</synopsis>
+          <para>Returnera en funktion som beräknar två vektorer med avseende på den bilinjära formen given 
av A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomial (M)</synopsis>
+          <para>Alias: <function>CharPoly</function></para>
+         <para>Hämta det karakteristiska polynomet som en vektor. Det vill säga returnera koefficienterna 
för polynomet med den konstanta termen först. Detta är polynomet som definieras av 
<userinput>det(M-xI)</userinput>. Rötterna för detta polynom är egenvärdena för <varname>M</varname>. Se även 
<link linkend="gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
+         <listitem>
+          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
+         <para>Hämta det karakteristiska polynomet som en funktion. Detta är polynomet som definieras av 
<userinput>det(M-xI)</userinput>. Rötterna för detta polynom är egenvärdena för <varname>M</varname>. Se även 
<link linkend="gel-function-CharacteristicPolynomial">CharacteristicPolynomial</link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Characteristic_polynomial";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/CharacteristicEquation";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
+         <listitem>
+          <synopsis>ColumnSpace (M)</synopsis>
+         <para>Hämta en basmatris för kolumnrummet för en matris. Det vill säga returnera en matris vars 
kolumner är basen för kolumnrummet av <varname>M</varname>. Det vill säga rummet som spänns upp av kolumnerna 
i <varname>M</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> för 
mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
+         <listitem>
+          <synopsis>CommutationMatrix (m, n)</synopsis>
+         <para>Returnera kommutationsmatrisen <userinput>K(m,n)</userinput> som är den unika 
<userinput>m*n</userinput>×<userinput>m*n</userinput>-matrisen så att <userinput>K(m,n) * MakeVector(A) = 
MakeVector(A.')</userinput> för alla <varname>m</varname>×<varname>n</varname>-matriser 
<varname>A</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
+         <listitem>
+          <synopsis>CompanionMatrix (p)</synopsis>
+          <para>Följeslagarmatris av ett polynom (som en vektor).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
+         <listitem>
+          <synopsis>ConjugateTranspose (M)</synopsis>
+          <para>Konjugattransponatet av en matris (adjungerad matris). Detta är det samma som 
<userinput>.'</userinput>-operatorn.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Conjugate_transpose";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/ConjugateTranspose";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Convolution"/>Convolution</term>
+         <listitem>
+          <synopsis>Convolution (a,b)</synopsis>
+          <para>Alias: <function>convol</function></para>
+          <para>Beräkna faltningen av två horisontella vektorer.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
+         <listitem>
+          <synopsis>ConvolutionVector (a,b)</synopsis>
+          <para>Beräkna faltning av två horisontella vektorer. Returnera resultatet som en vektor och inte 
adderade.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
+         <listitem>
+          <synopsis>CrossProduct (v,w)</synopsis>
+         <para>CrossProduct (kryssprodukt) av två vektorer i R<superscript>3</superscript> som en 
kolumnvektor.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Cross_product";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
+         <listitem>
+          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
+          <para>Hämta determinantdelarna av en heltalsmatris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
+         <listitem>
+          <synopsis>DirectSum (M,N...)</synopsis>
+          <para>Direkt summa av matriser.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> 
för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
+         <listitem>
+          <synopsis>DirectSumMatrixVector (v)</synopsis>
+          <para>Direkt summa av en vektor av matriser.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Matrix_addition#directsum";>Wikipedia</ulink> 
för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
+         <listitem>
+          <synopsis>Eigenvalues (M)</synopsis>
+          <para>Alias: <function>eig</function></para>
+          <para>Hämta egenvärdena för en kvadratisk matris. Fungerar för närvarande endast för upp till 
matriser av storlek upp till 4×4-matriser eller triangulära matriser (för vilka egenvärdena är på 
diagonalen).</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Eigenvalue";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/Eigenvalue";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Eigenvalue.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
+         <listitem>
+          <synopsis>Eigenvectors (M)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues)</synopsis>
+          <synopsis>Eigenvectors (M, &amp;eigenvalues, &amp;multipliciteter)</synopsis>
+         <para>Hämta egenvektorerna för en kvadratisk matris. Hämta valfritt även egenvärdena och deras 
algebraiska multipliciteter. Fungerar för närvarande endast för matriser med storlek upp till 2×2.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Eigenvector";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/Eigenvector";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/Eigenvector.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
+         <listitem>
+          <synopsis>GramSchmidt (v,B...)</synopsis>
+         <para>Tillämpa Gram-Schmidt-processen (till kolumnerna) med avseende på inre produkten given av 
<varname>B</varname>. Om <varname>B</varname> inte angiven används den hermiteska produkten. 
<varname>B</varname> kan antingen vara en seskvilinjär funktion av två argument eller så kan det vara en som 
ger en seskvilinjär form. Vektorerna kommer att göras ortonormala med avseende på <varname>B</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/GramSchmidtOrthogonalization";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
+         <listitem>
+          <synopsis>HankelMatrix (k,r)</synopsis>
+         <para>Hankelmatris, en matris vars antidiagonaler är konstanta. <varname>k</varname> är den första 
raden och <varname>r</varname> är den sista kolumnen. Det antas att båda argumenten är vektorer och att det 
sista elementet i <varname>c</varname> är detsamma som det första elementet i <varname>r</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hankel_matrix";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
+         <listitem>
+          <synopsis>HilbertMatrix (n)</synopsis>
+          <para>Hilbertmatris av ordning <varname>n</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Image"/>Image</term>
+         <listitem>
+          <synopsis>Image (T)</synopsis>
+          <para>Hämta bilden (kolumnrummet) av en linjär avbildning.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Row_and_column_spaces";>Wikipedia</ulink> för 
mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
+         <listitem>
+          <synopsis>InfNorm (v)</synopsis>
+          <para>Hämta supremumnormen av en vektor, även kallad maximinormen eller oändlighetsnormen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
+         <listitem>
+          <synopsis>InvariantFactorsInteger (M)</synopsis>
+          <para>Hämta de invarianta faktorerna för en kvadratisk heltalsmatris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
+         <listitem>
+          <synopsis>InverseHilbertMatrix (n)</synopsis>
+          <para>Invers Hilbertmatris av ordning <varname>n</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hilbert_matrix";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/HilbertMatrix";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
+         <listitem>
+          <synopsis>IsHermitian (M)</synopsis>
+          <para>Är en matris hermitesk. Det vill säga lika med sitt konjugattransponat.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hermitian_matrix";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/HermitianMatrix";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
+         <listitem>
+          <synopsis>IsInSubspace (v,W)</synopsis>
+          <para>Testa om en vektor är i ett underrum.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
+         <listitem>
+          <synopsis>IsInvertible (n)</synopsis>
+          <para>Är en matris (eller tal) inverterbar (En heltalsmatris är inverterbar om och endast om den 
är inverterbar över heltalen).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
+         <listitem>
+          <synopsis>IsInvertibleField (n)</synopsis>
+          <para>Är en matris (eller ett tal) inverterbar över en kropp.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
+         <listitem>
+          <synopsis>IsNormal (M)</synopsis>
+          <para>Är <varname>M</varname> en normal matris. Det vill säga är <userinput>M*M' == 
M'*M</userinput>.</para>
+          <para>Se <ulink url="http://planetmath.org/NormalMatrix";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/NormalMatrix.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
+         <listitem>
+          <synopsis>IsPositiveDefinite (M)</synopsis>
+          <para>Är <varname>M</varname> en hermitesk positivt definit matris. Det vill säga om 
<userinput>HermitianProduct(M*v,v)</userinput> alltid är strikt positiv för varje vektor 
<varname>v</varname>. <varname>M</varname> måste vara kvadratisk och hermitesk för att vara positivt definit. 
Kontrollen som utförs är att varje principal-undermatris har en icke-negativ determinant. (Se <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>Observera att vissa författare (till exempel Mathworld) inte kräver att <varname>M</varname> 
är hermitesk, och då är villkoret på realdelen av den inre produkten, men vi delar inte denna åskådning. Om 
du vill utföra denna kontroll, se bara på den hermiteska delen av matrisen <varname>M</varname> enligt 
följande: <userinput>IsPositiveSemidefinite(M+M')</userinput>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Positive-definite_matrix";>Wikipedia</ulink>, 
<ulink url="http://planetmath.org/PositiveDefinite";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
+         <listitem>
+          <synopsis>IsPositiveSemidefinite (M)</synopsis>
+          <para>Är <varname>M</varname> en hermitesk positivt semidefinit matris. Det vill säga om 
<userinput>HermitianProduct(M*v,v)</userinput> alltid är icke-negativ för varje vektor <varname>v</varname>. 
<varname>M</varname> måste vara kvadratisk och hermitesk för att vara positivt semidefinit. Kontrollen som 
utförs är att varje principal-undermatris har en icke-negativ determinant. (Se <link 
linkend="gel-function-HermitianProduct">HermitianProduct</link>)</para>
+         <para>Observera att vissa författare inte kräver att <varname>M</varname> är hermitesk, och då är 
villkoret på realdelen av den inre produkten, men vi delar inte denna åskådning. Om du vill utföra denna 
kontroll, se bara på den hermiteska delen av matrisen <varname>M</varname> enligt följande: 
<userinput>IsPositiveSemidefinite(M+M')</userinput>.</para>
+          <para>Se <ulink url="http://planetmath.org/PositiveSemidefinite";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
+         <listitem>
+          <synopsis>IsSkewHermitian (M)</synopsis>
+          <para>Är en matris skevhermitesk. Det vill säga är konjugattransponatet lika med den negativa 
matrisen.</para>
+          <para>Se <ulink url="http://planetmath.org/SkewHermitianMatrix";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
+         <listitem>
+          <synopsis>IsUnitary (M)</synopsis>
+          <para>Är en matris unitär? Det vill säga, är <userinput>M'*M</userinput> och 
<userinput>M*M'</userinput> lika med identiteten.</para>
+          <para>Se <ulink url="http://planetmath.org/UnitaryTransformation";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/UnitaryMatrix.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
+         <listitem>
+          <synopsis>JordanBlock (n,lambda)</synopsis>
+          <para>Alias: <function>J</function></para>
+          <para>Hämta Jordanblocket som motsvarar egenvärdet <varname>lambda</varname> med multiplicitet 
<varname>n</varname>.</para>
+          <para>Se <ulink url="http://planetmath.org/JordanCanonicalFormTheorem";>Planetmath</ulink> eller 
<ulink url="http://mathworld.wolfram.com/JordanBlock.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Kernel"/>Kernel</term>
+         <listitem>
+          <synopsis>Kernel (T)</synopsis>
+          <para>Hämta kärnan (nollrummet) av en linjär avbildning.</para>
+         <para>(Se <link linkend="gel-function-NullSpace">NullSpace</link>)</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerProduct"/>KroneckerProduct</term>
+         <listitem>
+          <synopsis>KroneckerProduct (M, N)</synopsis>
+          <para>Alias: <function>TensorProduct</function></para>
+         <para>Beräkna Kroneckerprodukten (tensorprodukt i standardbas) av två matriser.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Kronecker_product";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/KroneckerProduct";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/KroneckerProduct.html";>Mathworld</ulink> för mer information.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
+         <listitem>
+          <synopsis>LUDecomposition (A, L, U)</synopsis>
+          <para>Hämta LU-faktoriseringen av <varname>A</varname>, det vill säga hitta en nedåt triangulär 
matris och uppåt triangulär matris vilkas produkt är <varname>A</varname>. Lagra resultatet i 
<varname>L</varname> och <varname>U</varname> som ska vara referenser. Det returnerar 
<constant>true</constant> om det lyckas. Anta till exempel att A är en kvadratisk matris, då kommer du efter 
att köra: <screen><prompt>genius&gt;</prompt> <userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
+</screen> ha den nedre matrisen lagrad i en variabel som kallas <varname>L</varname> och den övre matrisen i 
en variabel som kallas <varname>U</varname>.</para>
+         <para>Detta är LU-faktoriseringen av en matris, även känd som Crout- och/eller 
Cholesky-faktorisering. (ISBN 0-201-11577-8 pp.99-103) Den uppåt triangulära matrisen har värdet 1 (ett) på 
diagonalen. Detta är inte Doolittles metod som har ettorna diagonalt på nedermatrisen.</para>
+         <para>Alla matriser har inte LU-faktoriseringar, till exempel har <userinput>[0,1;1,0]</userinput> 
inte det och denna funktion returnerar <constant>false</constant> i det fallet och ställer in 
<varname>L</varname> och <varname>U</varname> till <constant>null</constant>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/LU_decomposition";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/LUDecomposition";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/LUDecomposition.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Minor"/>Minor</term>
+         <listitem>
+          <synopsis>Minor (M,i,j)</synopsis>
+          <para>Hämta <varname>i</varname>-<varname>j</varname>-underdeterminanten (minoren) av en 
matris.</para>
+          <para>Se <ulink url="http://planetmath.org/Minor";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
+         <listitem>
+          <synopsis>NonPivotColumns (M)</synopsis>
+          <para>Returnera kolumnerna som inte är pivotkolumnerna av en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Norm"/>Norm</term>
+         <listitem>
+          <synopsis>Norm (v,p...)</synopsis>
+          <para>Alias: <function>norm</function></para>
+          <para>Hämta p-normen (eller 2-normen om inget p är angivet) för en vektor.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
+         <listitem>
+          <synopsis>NullSpace (T)</synopsis>
+          <para>Hämta nollrummet för en matris. Det vill säga kärnan för den linjära avbildningen som 
matrisen representerar. Detta returneras som en matris vars kolumnrum är nollrummet av 
<varname>T</varname>.</para>
+          <para>Se <ulink url="http://planetmath.org/Nullspace";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Nullity"/>Nullity</term>
+         <listitem>
+          <synopsis>Nullity (M)</synopsis>
+          <para>Alias: <function>nullity</function></para>
+          <para>Hämta nulliteten av en matris. Det vill säga returnera nollrummets dimension; dimensionen på 
kärnan av <varname>M</varname>.</para>
+          <para>Se <ulink url="http://planetmath.org/Nullity";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
+         <listitem>
+          <synopsis>OrthogonalComplement (M)</synopsis>
+          <para>Hämta det ortogonala komplementet till kolumnrummet.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
+         <listitem>
+          <synopsis>PivotColumns (M)</synopsis>
+          <para>Returnera pivotkolumner för en matris, det vill säga kolumner som börjar med 1 i 
radreducerad trappstegsform, returnerar också raden där de förekommer.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Projection"/>Projection</term>
+         <listitem>
+          <synopsis>Projection (v,W,B...)</synopsis>
+         <para>Projicering av vektor <varname>v</varname> till underrum <varname>W</varname> med avseende på 
inre produkt given av <varname>B</varname>. Om <varname>B</varname> ej angiven används den vanliga hermiteska 
produkten. <varname>B</varname> kan antingen vara en seskvilinjär funktion av två argument eller så kan det 
vara en matris som ger en seskvilinjär form.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
+         <listitem>
+          <synopsis>QRDecomposition (A, Q)</synopsis>
+          <para>Hämta QR-faktoriseringen av en kvadratisk matris <varname>A</varname>, returnerar den uppåt 
triangulära matrisen <varname>R</varname> och ställer in <varname>Q</varname> till den ortogonala (unitära) 
matrisen. <varname>Q</varname> bör vara en referens eller <constant>null</constant> om de inte vill att något 
ska returneras. Till exempel: <screen><prompt>genius&gt;</prompt> <userinput>R = 
QRDecomposition(A,&amp;Q)</userinput>
+</screen> Du kommer att ha den uppåt triangulära matrisen lagrad i en variabel kallad <varname>R</varname> 
och den ortogonala (unitära) matrisen lagrad i <varname>Q</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/QR_decomposition";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/QRDecomposition";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/QRDecomposition.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
+         <listitem>
+          <synopsis>RayleighQuotient (A,x)</synopsis>
+          <para>Returnera Rayleighkvoten (även kallad Rayleigh-Ritz-kvoten eller förhållandet) av en matris 
och en vektor.</para>
+          <para>Se <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
+         <listitem>
+          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vekref)</synopsis>
+          <para>Hitta egenvärdena av <varname>A</varname> med Rayleighkvot-iterationsmetoden. 
<varname>x</varname> är en gissning av en egenvektor och kan vara slumpmässig. Den ska ha nollskild 
imaginärdel om den ska ha någon chans att hitta komplexa egenvärden. Koden kommer köras som mest 
<varname>maxiter</varname> iterationer och returnera <constant>null</constant> om vi inte kan få ett mindre 
fel än <varname>epsilon</varname>. <varname>vekref</varname> ska antingen vara <constant>null</constant> 
eller en referens till en variabel där egenvektorn ska lagras.</para>
+          <para>Se <ulink url="http://planetmath.org/RayleighQuotient";>Planetmath</ulink> för mer 
information om Rayleighkvot.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rank"/>Rank</term>
+         <listitem>
+          <synopsis>Rank (M)</synopsis>
+          <para>Alias: <function>rank</function></para>
+          <para>Hämta rangen av en matris.</para>
+          <para>Se <ulink url="http://planetmath.org/SylvestersLaw";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
+         <listitem>
+          <synopsis>RosserMatrix ()</synopsis>
+          <para>Returnerar Rossermatrisen som är ett klassiskt testproblem för symmetriska egenvärden.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
+         <listitem>
+          <synopsis>Rotation2D (vinkel)</synopsis>
+          <para>Alias: <function>RotationMatrix</function></para>
+          <para>Returnera matrisen som motsvarar rotation runt origo i R<superscript>2</superscript>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
+         <listitem>
+          <synopsis>Rotation3DX (vinkel)</synopsis>
+          <para>Returnera matrisen som motsvarar rotation runt origo i R<superscript>3</superscript> kring 
x-axeln.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
+         <listitem>
+          <synopsis>Rotation3DY (vinkel)</synopsis>
+          <para>Returnera matrisen som motsvarar rotation runt origo i R<superscript>3</superscript> kring 
y-axeln.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
+         <listitem>
+          <synopsis>Rotation3DZ (vinkel)</synopsis>
+          <para>Returnera matrisen som motsvarar rotation runt origo i R<superscript>3</superscript> kring 
z-axeln.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
+         <listitem>
+          <synopsis>RowSpace (M)</synopsis>
+          <para>Hämta en basmatris för radrummet av en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
+         <listitem>
+          <synopsis>SesquilinearForm (v,A,w)</synopsis>
+          <para>Beräkna (v,w) med avseende på den seskvilinjära formen given av matrisen A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
+         <listitem>
+          <synopsis>SesquilinearFormFunction (A)</synopsis>
+          <para>Returnera en funktion som beräknar två vektorer med avseende på den seskvilinjära formen 
given av A.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
+         <listitem>
+          <synopsis>SmithNormalFormField (A)</synopsis>
+          <para>Returnerar Smiths normalform för en matris över kroppar (kommer i slutet ha 1:or på 
diagonalen).</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
+         <listitem>
+          <synopsis>SmithNormalFormInteger (M)</synopsis>
+          <para>Returnerar Smiths normalform för kvadratiska heltalsmatriser över heltal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Smith_normal_form";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
+         <listitem>
+          <synopsis>SolveLinearSystem (M,V,arg...)</synopsis>
+         <para>Lös det linjära systemet Mx=V, returnera lösningen V om det finns en unik lösning, returnera 
<constant>null</constant> annars. Två extra referensparametrar kan valfritt användas för att få tag i de 
reducerade M och V.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
+         <listitem>
+          <synopsis>ToeplitzMatrix (k, r...)</synopsis>
+         <para>Returnera Toeplitzmatrisen skapad med den första kolumnen k och (valfritt) den första raden 
r. Om endast kolumnen k anges så konjugeras den och den icke-konjugerade versionen används som den första 
raden för att ge en hermitesk matris (givetvis om det första elementet är reellt).</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Toeplitz_matrix";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/ToeplitzMatrix";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Trace"/>Trace</term>
+         <listitem>
+          <synopsis>Trace (M)</synopsis>
+          <para>Alias: <function>trace</function></para>
+          <para>Beräkna spåret av en matris. Det vill säga summan av de diagonala elementen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Trace_(linear_algebra)">Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/Trace";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Transpose"/>Transpose</term>
+         <listitem>
+          <synopsis>Transpose (M)</synopsis>
+          <para>Transponatet av en matris. Detta är det samma som <userinput>.'</userinput>-operatorn.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Transpose";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/Transpose";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
+         <listitem>
+          <synopsis>VandermondeMatrix (v)</synopsis>
+          <para>Alias: <function>vander</function></para>
+          <para>Returnera Vandermondematrisen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Vandermonde_matrix";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
+         <listitem>
+          <synopsis>VectorAngle (v,w,B...)</synopsis>
+          <para>Vinkeln av två vektorer med avseende på en inre produkt given av <varname>B</varname>. Om 
<varname>B</varname> inte är angiven används den vanliga hermiteska produkten. <varname>B</varname> kan 
antingen vara en seskvilinjär funktion av två argument eller så kan det vara en matris som ger en 
seskvilinjär form.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
+         <listitem>
+          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
+          <para>Den direkta summan av vektorrummen M och N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
+         <listitem>
+          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
+          <para>Snitt av underrummen angivna av M och N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
+         <listitem>
+          <synopsis>VectorSubspaceSum (M,N)</synopsis>
+          <para>Summan av vektorrummen M och N, det vill säga {w | w=m+n, m i M, n i N}.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-adj"/>adj</term>
+         <listitem>
+          <synopsis>adj (m)</synopsis>
+          <para>Alias: <function>Adjugate</function></para>
+          <para>Hämta den klassiska adjunkten (transponatet av kofaktormatrisen) av en matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cref"/>cref</term>
+         <listitem>
+          <synopsis>cref (M)</synopsis>
+          <para>Alias: <function>CREF</function><function>ColumnReducedEchelonForm</function></para>
+          <para>Beräkna den kolumnreducerade trappstegsformen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-det"/>det</term>
+         <listitem>
+          <synopsis>det (M)</synopsis>
+          <para>Alias: <function>Determinant</function></para>
+          <para>Hämta determinanten av en matris.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Determinant";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/Determinant2";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ref"/>ref</term>
+         <listitem>
+          <synopsis>ref (M)</synopsis>
+          <para>Alias: <function>REF</function><function>RowEchelonForm</function></para>
+         <para>Hämta trappstegsformen av en matris. Det vill säga tillämpa gausselimination men inte 
bakåtaddition till <varname>M</varname>. Pivotraderna divideras så att alla pivoter blir 1.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Row_echelon_form";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/RowEchelonForm";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rref"/>rref</term>
+         <listitem>
+          <synopsis>rref (M)</synopsis>
+          <para>Alias: <function>RREF</function><function>ReducedRowEchelonForm</function></para>
+          <para>Hämta den radreducerade trappstegsformen av en matris. Det vill säga tillämpa 
gausselimination tillsammans med bakåtaddition till <varname>M</varname>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Reduced_row_echelon_form";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/ReducedRowEchelonForm";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-combinatorics">
+      <title>Kombinatorik</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Catalan"/>Catalan</term>
+         <listitem>
+          <synopsis>Catalan (n)</synopsis>
+          <para>Hämta det <varname>n</varname>:e Catalantalet.</para>
+          <para>Se <ulink url="http://planetmath.org/CatalanNumbers";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Combinations"/>Combinations</term>
+         <listitem>
+          <synopsis>Combinations (k,n)</synopsis>
+          <para>Hämta alla kombinationer av k tal från 1 till n som en vektor av vektorer. (Se även <link 
linkend="gel-function-NextCombination">NextCombination</link>)</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
+         <listitem>
+          <synopsis>DoubleFactorial (n)</synopsis>
+          <para>Semifakultet: <userinput>n(n-2)(n-4)...</userinput></para>
+          <para>Se <ulink url="http://planetmath.org/DoubleFactorial";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Factorial"/>Factorial</term>
+         <listitem>
+          <synopsis>Factorial (n)</synopsis>
+          <para>Fakultet: <userinput>n(n-1)(n-2)...</userinput></para>
+          <para>Se <ulink url="http://planetmath.org/Factorial";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
+         <listitem>
+          <synopsis>FallingFactorial (n,k)</synopsis>
+          <para>Fallande fakultet: <userinput>(n)_k = n(n-1)...(n-(k-1))</userinput></para>
+          <para>Se <ulink url="http://planetmath.org/FallingFactorial";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
+         <listitem>
+          <synopsis>Fibonacci (x)</synopsis>
+          <para>Alias: <function>fib</function></para>
+          <para>Beräkna det <varname>n</varname>:e Fibonaccitalet. Det vill säga numret som definieras 
rekursivt av <userinput>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</userinput> och 
<userinput>Fibonacci(1) = Fibonacci(2) = 1</userinput>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fibonacci_number";>Wikipedia</ulink> eller 
<ulink url="http://planetmath.org/FibonacciSequence";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FibonacciNumber.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
+         <listitem>
+          <synopsis>FrobeniusNumber (v,arg...)</synopsis>
+          <para>Beräkna Frobeniustalet. Det vill säga beräkna det största tal som inte kan anges som en 
icke-negativ linjär heltalskombination av en given vektor av icke-negativa tal. Vektorn kan ges som separata 
tal eller en ensam vektor. Alla angivna tal ska ha SGD 1.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Coin_problem";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FrobeniusNumber.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
+         <listitem>
+          <synopsis>GaloisMatrix (kombineringsregel)</synopsis>
+          <para>Galois-matris givet en linjär kombineringsregel (a_1*x_1+...+a_n*x_n=x_(n+1)).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
+         <listitem>
+          <synopsis>GreedyAlgorithm (n,v)</synopsis>
+          <para>Hitta vektorn <varname>c</varname> av icke-negativa heltal så att skalärprodukten med 
<varname>v</varname> är lika med n. Om inte möjligt returneras <constant>null</constant>. 
<varname>v</varname> bör anges sorterad i ökande ordning och bestå av icke-negativa heltal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Greedy_algorithm";>Wikipedia</ulink> eller 
<ulink url="http://mathworld.wolfram.com/GreedyAlgorithm.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
+         <listitem>
+          <synopsis>HarmonicNumber (n,r)</synopsis>
+          <para>Alias: <function>HarmonicH</function></para>
+         <para>Harmoniskt tal, det <varname>n</varname>:e harmoniska talet av ordning <varname>r</varname>. 
Det vill säga summan av <userinput>1/k^r</userinput> för <varname>k</varname> från 1 till n. Ekvivalent med 
<userinput>sum k = 1 to n do 1/k^r</userinput>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Harmonic_number";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
+         <listitem>
+          <synopsis>Hofstadter (n)</synopsis>
+          <para>Hofstadters funktion q(n) definierad av q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2)).</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Hofstadter_sequence";>Wikipedia</ulink> för mer 
information. Sekvensen är <ulink url="https://oeis.org/A005185";>A005185 i OEIS</ulink>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
+         <listitem>
+          <synopsis>LinearRecursiveSequence (frövärden,kombineringsregel,n)</synopsis>
+          <para>Beräkna linjär rekursiv sekvens med Galois-stegning.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
+         <listitem>
+          <synopsis>Multinomial (v,arg...)</synopsis>
+          <para>Beräkna multinomialkoefficienter. Tar en vektor av <varname>k</varname> icke-negativa heltal 
och beräknar multinomialkoefficienten. Denna motsvarar koefficienten i det homogena polynomet i 
<varname>k</varname> variabler med motsvarande potenser.</para>
+         <para>Formeln för <userinput>Multinomial(a,b,c)</userinput> kan skrivas som: 
<programlisting>(a+b+c)! / (a!b!c!)
+</programlisting> Med andra ord, om vi bara skulle ha två element så är 
<userinput>Multinomial(a,b)</userinput> samma sak som <userinput>Binomial(a+b,a)</userinput> eller 
<userinput>Binomial(a+b,b)</userinput>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Multinomial_theorem";>Wikipedia</ulink>, <ulink 
url="http://planetmath.org/MultinomialTheorem";>Planetmath</ulink> eller <ulink 
url="http://mathworld.wolfram.com/MultinomialCoefficient.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
+         <listitem>
+          <synopsis>NextCombination (v,n)</synopsis>
+         <para>Hämta kombination som skulle komma efter v i anrop till kombinationer, första kombination 
skulle vara <userinput>[1:k]</userinput>. Denna funktion är användbar om du har många kombinationer att gå 
igenom och du inte vill slösa minne med att lagra dem alla.</para>
+         <para>Till exempel med Combinations skulle du vanligen skriva en slinga som: <screen><userinput>for 
n in Combinations (4,6) do (
+  EnFunktion (n)
+);</userinput>
+</screen> Men med NextCombination skulle du skriva något som: <screen><userinput>n:=[1:4];
+do (
+  EnFunktion (n)
+) while not IsNull(n:=NextCombination(n,6));</userinput>
+</screen> Se även <link linkend="gel-function-Combinations">Combinations</link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Combination";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Pascal"/>Pascal</term>
+         <listitem>
+          <synopsis>Pascal (i)</synopsis>
+          <para>Hämta Pascals triangel som en matris. Detta kommer att returnera en 
(<varname>i</varname>+1)×(<varname>i</varname>+1) nedåt diagonal matris som är Pascals triangel efter 
<varname>i</varname> iterationer.</para>
+          <para>Se <ulink url="http://planetmath.org/PascalsTriangle";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Permutations"/>Permutations</term>
+         <listitem>
+          <synopsis>Permutations (k,n)</synopsis>
+          <para>Hämta alla permutationer av <varname>k</varname> tal från 1 till <varname>n</varname> som en 
vektor av vektorer.</para>
+          <para>Se <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> eller <ulink 
url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
+         <listitem>
+          <synopsis>RisingFactorial (n,k)</synopsis>
+          <para>Alias: <function>Pochhammer</function></para>
+          <para>(Pochhammer) Stigande fakultet: (n)_k = n(n+1)…(n+(k-1)).</para>
+          <para>Se <ulink url="http://planetmath.org/RisingFactorial";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
+         <listitem>
+          <synopsis>StirlingNumberFirst (n,m)</synopsis>
+          <para>Alias: <function>StirlingS1</function></para>
+          <para>Stirlingtal av första slaget.</para>
+          <para>Se <ulink url="http://planetmath.org/StirlingNumbersOfTheFirstKind";>Planetmath</ulink> eller 
<ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
+         <listitem>
+          <synopsis>StirlingNumberSecond (n,m)</synopsis>
+          <para>Alias: <function>StirlingS2</function></para>
+          <para>Stirlingtal av andra slaget.</para>
+          <para>Se <ulink url="http://planetmath.org/StirlingNumbersSecondKind";>Planetmath</ulink> eller 
<ulink url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
+         <listitem>
+          <synopsis>Subfactorial (n)</synopsis>
+          <para>Derangemang: n! gånger sum_{k=0}^n (-1)^k/k!.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Triangular"/>Triangular</term>
+         <listitem>
+          <synopsis>Triangular (n)</synopsis>
+          <para>Beräkna det <varname>n</varname>:e triangeltalet.</para>
+          <para>Se <ulink url="http://planetmath.org/TriangularNumbers";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nCr"/>nCr</term>
+         <listitem>
+          <synopsis>nCr (n,r)</synopsis>
+          <para>Alias: <function>Binomial</function></para>
+          <para>Beräkna kombinationer, det vill säga binomialkoefficienten. <varname>n</varname> kan vara 
ett godtyckligt reellt tal.</para>
+          <para>Se <ulink url="http://planetmath.org/Choose";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-nPr"/>nPr</term>
+         <listitem>
+          <synopsis>nPr (n,r)</synopsis>
+          <para>Beräkna antalet permutationer av storlek <varname>r</varname> av tal från 1 till 
<varname>n</varname>.</para>
+          <para>Se <ulink url="http://mathworld.wolfram.com/Permutation.html";>Mathworld</ulink> eller <ulink 
url="https://en.wikipedia.org/wiki/Permutation";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-calculus">
+      <title>Kalkyl</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
+          <para>Integration av f med sammansatt Simpsons regel på intervallet [a,b] med n underintervall med 
fel högst max(f'''')*h^4*(b-a)/180, observera att n ska vara jämn.</para>
+          <para>Se <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
+         <listitem>
+          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,FjärdederivataBegränsning,Tolerans)</synopsis>
+          <para>Integration av f med sammansatt Simpsons regel på intervallet [a,b] med antalet steg 
beräknat av fjärdederivatans begränsning och den önskade toleransen.</para>
+          <para>Se <ulink url="http://planetmath.org/SimpsonsRule";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Derivative"/>Derivative</term>
+         <listitem>
+          <synopsis>Derivative (f,x0)</synopsis>
+          <para>Försök att beräkna derivata genom att först försöka symboliskt och sedan numeriskt.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
+         <listitem>
+          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
+         <para>Returnera en funktion som är den jämna periodiska utvidgningen av <function>f</function> med 
halvperiod <varname>L</varname>. Det vill säga en funktion definierad på intervallet 
<userinput>[0,L]</userinput> utvidgad att vara jämn på <userinput>[-L,L]</userinput> och sedan utvidgad för 
att vara periodisk med perioden <userinput>2*L</userinput>.</para>
+         <para>Se även <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> och 
<link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
+         <listitem>
+          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
+         <para>Returnera en funktion som är en Fourierserie med koefficienterna angivna av vektorerna 
<varname>a</varname> (sinus) och <varname>b</varname> (cosinus). Observera att <userinput>a@(1)</userinput> 
är den konstanta koefficienten! Det vill säga, <userinput>a@(n)</userinput> avser termen 
<userinput>cos(x*(n-1)*pi/L)</userinput>, medan <userinput>b@(n)</userinput> avser termen 
<userinput>sin(x*n*pi/L)</userinput>. Antingen <varname>a</varname> eller <varname>b</varname> kan vara 
<constant>null</constant>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
+         <listitem>
+          <synopsis>InfiniteProduct (funk,start,ökn)</synopsis>
+          <para>Försök beräkna en oändlig produkt för en funktion med en parameter.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
+         <listitem>
+          <synopsis>InfiniteProduct2 (func,arg,start,ökn)</synopsis>
+          <para>Försök beräkna en oändlig produkt för en funktion med dubbel parameter med 
func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
+         <listitem>
+          <synopsis>InfiniteSum (funk,start,ökn)</synopsis>
+          <para>Försök beräkna en oändlig summa för en funktion med en parameter.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
+         <listitem>
+          <synopsis>InfiniteSum2 (func,arg,start,ökn)</synopsis>
+          <para>Försök beräkna en oändlig summa för en funktion med dubbel parameter med func(arg,n).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
+         <listitem>
+          <synopsis>IsContinuous (f,x0)</synopsis>
+          <para>Testa och se om en reellvärd funktion är kontinuerlig vid x0 genom att beräkna gränsvärdet 
där.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
+         <listitem>
+          <synopsis>IsDifferentiable (f,x0)</synopsis>
+          <para>Testa för differentierbarhet genom att approximera vänster- och högergränsvärden och 
jämföra.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
+         <listitem>
+          <synopsis>LeftLimit (f,x0)</synopsis>
+          <para>Beräkna vänstergränsvärdet för en reellvärd funktion vid x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Limit"/>Limit</term>
+         <listitem>
+          <synopsis>Limit (f,x0)</synopsis>
+          <para>Beräkna gränsvärdet för en reellvärd funktion vid x0. Försöker beräkna både vänster- och 
högergränsvärden.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
+         <listitem>
+          <synopsis>MidpointRule (f,a,b,n)</synopsis>
+          <para>Integration med mittpunktsregeln.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
+         <listitem>
+          <synopsis>NumericalDerivative (f,x0)</synopsis>
+          <para>Alias: <function>NDerivative</function></para>
+          <para>Försök beräkna numerisk derivata.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
+         <para>Returnera en vektor av vektorer <userinput>[a,b]</userinput> där <varname>a</varname> är 
cosinuskoefficienterna och <varname>b</varname> är sinuskoefficienterna för Fourierserien av 
<function>f</function> med halvperiod <varname>L</varname> (det vill säga definierad på 
<userinput>[-L,L]</userinput> och utvidgad periodiskt) med koefficienter upp till <varname>N</varname>:e 
deltonen beräknade numeriskt. Koefficienterna beräknas med numerisk integration med <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> för mer information.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
+         <para>Returnera en funktion som är Fourierserien av <function>f</function> med halvperiod 
<varname>L</varname> (det vill säga definierad på <userinput>[-L,L]</userinput> och utvidgad periodiskt) med 
koefficienter upp till <varname>N</varname>:e deltonen beräknade numeriskt. Detta är den trigonometriska 
reella serien som byggs upp av sinus och cosinus. Koefficienterna beräknas med numerisk integration med <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FourierSeries.html";>Mathworld</ulink> för mer information.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Returnera en vektor av koefficienter för cosinus-Fourierserien av <function>f</function> med 
halvperiod <varname>L</varname>. Det vill säga vi tar <function>f</function> definierad på 
<userinput>[0,L]</userinput> och tar den jämna periodiska utvidgningen och beräknar Fourierserien, som endast 
har cosinustermer. Serien beräknas upp till <varname>N</varname>:e deltonen. Koefficienterna beräknas med 
numerisk integration med <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>. Observera att 
<userinput>a@(1)</userinput> är den konstanta koefficienten! Det vill säga, <userinput>a@(n)</userinput> 
avser termen <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> för mer information.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
+         <para>Returnera en funktion som är cosinus-Fourierserien av <function>f</function> med halvperiod 
<varname>L</varname>. Det vill säga vi tar <function>f</function> definierad på <userinput>[0,L]</userinput> 
och tar den jämna periodiska utvidgningen och beräknar Fourierserien, som endast har cosinustermer. Serien 
beräknas upp till <varname>N</varname>:e deltonen. Koefficienterna beräknas med numerisk integration med 
<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FourierCosineSeries.html";>Mathworld</ulink> för mer information.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
+         <para>Returnera en vektor av koefficienter för sinus-Fourierserien av <function>f</function> med 
halvperiod <varname>L</varname>. Det vill säga vi tar <function>f</function> definierad på 
<userinput>[0,L]</userinput> och tar den udda periodiska utvidgningen och beräknar Fourierserien, som endast 
har sinustermer. Serien beräknas upp till <varname>N</varname>:e deltonen. Koefficienterna beräknas med 
numerisk integration med <link 
linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> för mer information.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
+         <listitem>
+          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
+         <para>Returnera en funktion som är sinus-Fourierserien av <function>f</function> med halvperiod 
<varname>L</varname>. Det vill säga vi tar <function>f</function> definierad på <userinput>[0,L]</userinput> 
och tar den udda periodiska utvidgningen och beräknar Fourierserien, som endast har sinustermer. Serien 
beräknas upp till <varname>N</varname>:e deltonen. Koefficienterna beräknas med numerisk integration med 
<link linkend="gel-function-NumericalIntegral"><function>NumericalIntegral</function></link>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Fourier_series";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/FourierSineSeries.html";>Mathworld</ulink> för mer information.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
+         <listitem>
+          <synopsis>NumericalIntegral (f,a,b)</synopsis>
+          <para>Integration efter regel inställd i NumericalIntegralFunction av f från a till b med 
NumericalIntegralSteps steg.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
+         <listitem>
+          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
+          <para>Försök beräkna numerisk vänsterderivata.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
+         <listitem>
+          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerans,upprepade_som_ger_lyckat,N)</synopsis>
+          <para>Försök beräkna gränsvärdet av f(step_fun(i)) medan i går från 1 till N.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
+         <listitem>
+          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
+          <para>Försök beräkna numerisk högerderivata.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
+         <listitem>
+          <synopsis>OddPeriodicExtension (f,L)</synopsis>
+         <para>Returnera en funktion som är den udda periodiska utvidgningen av <function>f</function> med 
halvperiod <varname>L</varname>. Det vill säga en funktion definierad på intervallet 
<userinput>[0,L]</userinput> utvidgad att vara udda på <userinput>[-L,L]</userinput> och sedan utvidgad för 
att vara periodisk med perioden <userinput>2*L</userinput>.</para>
+         <para>Se även <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link> och 
<link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Beräkna ensidig derivata med fempunktsformel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Beräkna ensidig derivata med trepunktsformel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
+         <listitem>
+          <synopsis>PeriodicExtension (f,a,b)</synopsis>
+         <para>Returnera en funktion som är den periodiska utvidgningen av <function>f</function> definierad 
på intervallet <userinput>[a,b]</userinput> och har perioden <userinput>b-a</userinput>.</para>
+         <para>Se även <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> och 
<link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.</para>
+         <para>Version 1.0.7 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
+         <listitem>
+          <synopsis>RightLimit (f,x0)</synopsis>
+          <para>Beräkna högergränsvärdet för en reellvärd funktion vid x0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
+          <para>Beräkna tvåsidig derivata med fempunktsformel.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
+         <listitem>
+          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
+          <para>Beräkna tvåsidig derivata med trepunktsformel.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-functions">
+      <title>Funktioner</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Argument"/>Argument</term>
+         <listitem>
+          <synopsis>Argument (z)</synopsis>
+          <para>Alias: <function>Arg</function><function>arg</function></para>
+          <para>argument (vinkel) för komplext tal.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
+         <listitem>
+          <synopsis>BesselJ0 (x)</synopsis>
+          <para>Besselfunktion av första slaget av ordning 0. Endast implementerad för reella tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
+         <listitem>
+          <synopsis>BesselJ1 (x)</synopsis>
+          <para>Besselfunktion av första slaget av ordning 1. Endast implementerad för reella tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
+         <listitem>
+          <synopsis>BesselJn (n,x)</synopsis>
+         <para>Besselfunktion av första slaget av ordning <varname>n</varname>. Endast implementerad för 
reella tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
+         <listitem>
+          <synopsis>BesselY0 (x)</synopsis>
+          <para>Besselfunktion av andra slaget av ordning 0. Endast implementerad för reella tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
+         <listitem>
+          <synopsis>BesselY1 (x)</synopsis>
+          <para>Besselfunktion av andra slaget av ordning 1. Endast implementerad för reella tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
+         <listitem>
+          <synopsis>BesselYn (n,x)</synopsis>
+         <para>Besselfunktion av andra slaget av ordning <varname>n</varname>. Endast implementerad för 
reella tal.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Bessel_functions";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
+         <listitem>
+          <synopsis>DirichletKernel (n,t)</synopsis>
+         <para>Dirichletkärna av ordning <varname>n</varname>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
+         <listitem>
+          <synopsis>DiscreteDelta (v)</synopsis>
+          <para>Returnerar 1 om och endast om alla element är noll.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
+         <listitem>
+          <synopsis>ErrorFunction (x)</synopsis>
+          <para>Alias: <function>erf</function></para>
+          <para>Felfunktionen, 2/sqrt(2) * int_0^x e^(-t^2) dt.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Error_function";>Wikipedia</ulink> eller <ulink 
url="http://planetmath.org/ErrorFunction";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
+         <listitem>
+          <synopsis>FejerKernel (n,t)</synopsis>
+          <para>Fejerkärna av ordning <varname>n</varname> beräknad vid <varname>t</varname></para>
+          <para>Se <ulink url="http://planetmath.org/FejerKernel";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
+         <listitem>
+          <synopsis>GammaFunction (x)</synopsis>
+          <para>Alias: <function>Gamma</function></para>
+          <para>Gammafunktionen. För närvarande bara implementerad för reella värden.</para>
+          <para>Se <ulink url="http://planetmath.org/GammaFunction";>Planetmath</ulink> eller <ulink 
url="https://en.wikipedia.org/wiki/Gamma_function";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
+         <listitem>
+          <synopsis>KroneckerDelta (v)</synopsis>
+          <para>Returnerar 1 om och endast om alla element är lika.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertW"/>LambertW</term>
+         <listitem>
+          <synopsis>LambertW (x)</synopsis>
+         <para>Huvudgrenen av Lamberts W-funktion beräknad endast för reella värden större än eller lika med 
<userinput>-1/e</userinput>. Det vill säga <function>LambertW</function> är inversen av 
<userinput>x*e^x</userinput>. Även för reella värden på <varname>x</varname> är detta uttryck inte 1 till 1 
och har därför två grenar över <userinput>[-1/e,0)</userinput>. Se <link 
linkend="gel-function-LambertWm1"><function>LambertWm1</function></link> för den andra reella grenen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LambertWm1"/>LambertWm1</term>
+         <listitem>
+          <synopsis>LambertWm1 (x)</synopsis>
+         <para>Minus-ett-grenen av Lamberts W-funktion beräknad endast för reella värden större än eller 
lika med <userinput>-1/e</userinput> och mindre än 0. Det vill säga <function>LambertWm1</function> är den 
andra grenen av inversen av <userinput>x*e^x</userinput>. Se <link 
linkend="gel-function-LambertW"><function>LambertW</function></link> för huvudgrenen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
+         <listitem>
+          <synopsis>MinimizeFunction (funk,x,ökn)</synopsis>
+          <para>Hitta det första värdet där f(x)=0.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
+         <listitem>
+          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
+          <para>Möbiusavbildning av skivan till sig själv som avbildar a till 0.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
+         <listitem>
+          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
+          <para>Möbiusavbildning som använder dubbelförhållandet som tar z2,z3,z4 till 1, 0 respektive 
oändligheten.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
+          <para>Möbiusavbildning som använder dubbelförhållandet som tar oändligheten till oändligheten och 
z2,z3 till 1 respektive 0.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
+          <para>Möbiusavbildning som använder dubbelförhållandet som tar oändligheten till 1 och z3,z4 till 
0 respektive oändligheten.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
+         <listitem>
+          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
+          <para>Möbiusavbildning som använder dubbelförhållandet som tar oändligheten till 0 och z2,z4 till 
1 respektive oändligheten.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/M%C3%B6bius_transformation";>Wikipedia</ulink> 
eller <ulink url="http://planetmath.org/MobiusTransformation";>Planetmath</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
+         <listitem>
+          <synopsis>PoissonKernel (r,sigma)</synopsis>
+          <para>Poissonkärna på D(0,1) (inte normaliserad till 1, det vill säga integral av detta är 
2pi).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
+         <listitem>
+          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
+          <para>Poissonkärna på D(0,R) (inte normaliserad till 1).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
+         <listitem>
+          <synopsis>RiemannZeta (x)</synopsis>
+          <para>Alias: <function>zeta</function></para>
+          <para>Riemanns zetafunktion. För närvarande bara implementerad för reella värden.</para>
+          <para>Se <ulink url="http://planetmath.org/RiemannZetaFunction";>Planetmath</ulink> eller <ulink 
url="https://en.wikipedia.org/wiki/Riemann_zeta_function";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
+         <listitem>
+          <synopsis>UnitStep (x)</synopsis>
+          <para>Enhetsstegfunktionen är 0 för x&lt;0, 1 annars. Detta är integralen för Diracs 
delta-funktion. Också kallad Heavisidefunktionen.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Unit_step";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-cis"/>cis</term>
+         <listitem>
+          <synopsis>cis (x)</synopsis>
+          <para><function>cis</function>-funktionen, detta är samma sak som 
<userinput>cos(x)+1i*sin(x)</userinput></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
+         <listitem>
+          <synopsis>deg2rad (x)</synopsis>
+          <para>Konvertera grader till radianer.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
+         <listitem>
+          <synopsis>rad2deg (x)</synopsis>
+          <para>Konvertera radianer till grader.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-sinc"/>sinc</term>
+         <listitem>
+          <synopsis>sinc (x)</synopsis>
+         <para>Beräknar den onormaliserade sinc-funktionen, det vill säga <userinput>sin(x)/x</userinput>. 
Om du vill ha den normaliserade funktionen, anropa <userinput>sinc(pi*x)</userinput>.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Sinc";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-equation-solving">
+      <title>Ekvationslösning</title>
+      <variablelist>
+
+        <varlistentry>
+         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
+         <listitem>
+          <synopsis>CubicFormula (p)</synopsis>
+          <para>Beräkna rötter för ett tredjegradspolynom med formel. Polynomet ska anges som en vektor av 
koefficienter. Det vill säga <userinput>4*x^3 + 2*x + 1</userinput> motsvarar vektorn 
<userinput>[1,2,0,4]</userinput>. Returnerar en kolumnvektor av de tre lösningarna. Den första lösningen är 
alltid den reella eftersom ett tredjegradspolynom alltid har en reell lösning.</para>
+          <para>Se <ulink url="http://planetmath.org/CubicFormula";>Planetmath</ulink>, <ulink 
url="http://mathworld.wolfram.com/CubicFormula.html";>Mathworld</ulink> eller <ulink 
url="https://en.wikipedia.org/wiki/Cubic_equation";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
+         <listitem>
+          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
+          <para>Använd Eulers klassiska metod för att numeriskt lösa y'=f(x,y) för initialt 
<varname>x0</varname>, <varname>y0</varname> som går till <varname>x1</varname> med <varname>n</varname> 
inkrement, returnerar <varname>y</varname> vid <varname>x1</varname>. Om du inte explicit vill använda Eulers 
metod bör du verkligen överväga att använda <link linkend="gel-function-RungeKutta">RungeKutta</link> för 
lösning av ODE.</para>
+         <para>System kan lösas genom att helt enkelt låta <varname>y</varname> vara en (kolumn)vektor 
överallt. Det vill säga, <varname>y0</varname> kan vara en vektor i vilket fall <varname>f</varname> bör ta 
ett tal <varname>x</varname> och en vektor av samma storlek som det andra argumentet och bör returnera en 
vektor av samma storlek.</para>
+          <para>Se <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> eller 
<ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
+         <listitem>
+          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
+          <para>Använd Eulers klassiska metod för att numeriskt lösa y'=f(x,y) för initialt 
<varname>x0</varname>, <varname>y0</varname> som går till <varname>x1</varname> med <varname>n</varname> 
inkrement, returnerar en (<userinput>n+1</userinput>)×2-matris med <varname>x</varname>- och 
<varname>y</varname>-värdena. Om du inte explicit vill använda Eulers metod bör du verkligen överväga att 
använda <link linkend="gel-function-RungeKuttaFull">RungeKuttaFull</link> för lösning av ODE. Lämplig för att 
koppla ihop med <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> eller <link 
linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.</para>
+         <para>Exempel: <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponentiell tillväxt");</userinput>
+</screen></para>
+         <para>System kan lösas genom att helt enkelt låta <varname>y</varname> vara en (kolumn)vektor 
överallt. Det vill säga, <varname>y0</varname> kan vara en vektor i vilket fall <varname>f</varname> bör ta 
ett tal <varname>x</varname> och en vektor av samma storlek som det andra argumentet och bör returnera en 
vektor av samma storlek.</para>
+         <para>Utdata för ett system är fortfarande en n×2-matris där den andra posten är en vektor. Om du 
vill rita linjen, se till att använda radvektorer och platta sedan till matrisen med <link 
linkend="gel-function-ExpandMatrix">ExpandMatrix</link> och välj de rätta kolumnerna. Exempel: 
<screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","Första");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Andra");</userinput>
+</screen></para>
+          <para>Se <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html";>Mathworld</ulink> eller 
<ulink url="https://en.wikipedia.org/wiki/Eulers_method";>Wikipedia</ulink> för mer information.</para>
+         <para>Version 1.0.10 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
+         <listitem>
+          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
+          <para>Hitta rot för en funktion med bisektionsmetoden. <varname>a</varname> och 
<varname>b</varname> är det ursprungliga gissningsintervallet, <userinput>f(a)</userinput> och 
<userinput>f(b)</userinput> måste ha olika tecken. <varname>TOL</varname> är den önskade toleransen och 
<varname>N</varname> är gränsen för hur många iterationer att köra, 0 betyder ingen gräns. Funktionen 
returnerar en vektor <userinput>[lyckad,värde,iteration]</userinput>, där <varname>lyckad</varname> är ett 
booleskt värde som indikerar om den lyckats, <varname>värde</varname> är det sista beräknade värdet, och 
<varname>iteration</varname> är antalet utförda iterationer.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
+         <listitem>
+          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
+          <para>Hitta rot för en funktion med regula falsi-metoden. <varname>a</varname> och 
<varname>b</varname> är det ursprungliga gissningsintervallet, <userinput>f(a)</userinput> och 
<userinput>f(b)</userinput> måste ha olika tecken. <varname>TOL</varname> är den önskade toleransen och 
<varname>N</varname> är gränsen för hur många iterationer att köra, 0 betyder ingen gräns. Funktionen 
returnerar en vektor <userinput>[lyckad,värde,iteration]</userinput>, där <varname>lyckad</varname> är ett 
booleskt värde som indikerar om den lyckats, <varname>värde</varname> är det sista beräknade värdet, och 
<varname>iteration</varname> är antalet utförda iterationer.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
+         <listitem>
+          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
+          <para>Hitta rot för en funktion med Mullers metod. <varname>TOL</varname> är den önskade 
toleransen och <varname>N</varname> är gränsen för antal iterationer att köra, 0 betyder ingen gräns. 
Funktionen returnerar en vektor <userinput>[lyckad,värde,iteration]</userinput>, där 
<varname>lyckad</varname> är ett booleskt värde som indikerar om den lyckats, <varname>värde</varname> är det 
sista beräknade värdet, och <varname>iteration</varname> är antalet utförda iterationer.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
+         <listitem>
+          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
+          <para>Hitta rot för en funktion med sekantmetoden. <varname>a</varname> och <varname>b</varname> 
är det ursprungliga gissningsintervallet, <userinput>f(a)</userinput> och <userinput>f(b)</userinput> måste 
ha olika tecken. <varname>TOL</varname> är den önskade toleransen och <varname>N</varname> är gränsen för hur 
många iterationer att köra, 0 betyder ingen gräns. Funktionen returnerar en vektor 
<userinput>[lyckad,värde,iteration]</userinput>, där <varname>lyckad</varname> är ett booleskt värde som 
indikerar om den lyckats, <varname>värde</varname> är det sista beräknade värdet, och 
<varname>iteration</varname> är antalet utförda iterationer.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
+         <listitem>
+          <synopsis>HalleysMethod (f,df,ddf,gissning,epsilon,maxn)</synopsis>
+         <para>Hitta nollpunkter med Halleys metod. <varname>f</varname> är funktionen, 
<varname>df</varname> är derivatan av <varname>f</varname>, och <varname>ddf</varname> är andraderivatan av 
<varname>f</varname>. <varname>gissning</varname> är den ursprungliga gissningen. Funktionen returnerar efter 
att två på varandra följande värden är inom <varname>epsilon</varname> från varandra, eller efter 
<varname>maxn</varname> försök, i vilket fall funktionen returnerar sedan <constant>null</constant> vilket 
indikerar misslyckande.</para>
+         <para>Se även <link linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link> 
och <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.</para>
+         <para>Exempel för att hitta kvadratroten av 10: <screen><prompt>genius&gt;</prompt> 
<userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
+</screen></para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Halley%27s_method";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethod"/>NewtonsMethod</term>
+         <listitem>
+          <synopsis>NewtonsMethod (f,df,gissning,epsilon,maxn)</synopsis>
+         <para>Hitta nollor med Newtons metod. <varname>f</varname> är funktionen och <varname>df</varname> 
är derivatan av <varname>f</varname>. <varname>gissning</varname> är den ursprungliga gissningen. Funktionen 
returnerar efter två på varandra följande värden inom <varname>epsilon</varname> från varandra, eller efter 
<varname>maxn</varname> försök, i vilket fall funktionen returnerar <constant>null</constant> vilket 
indikerar misslyckande.</para>
+         <para>Se även <link 
linkend="gel-function-NewtonsMethodPoly"><function>NewtonsMethodPoly</function></link> och <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>.</para>
+         <para>Exempel för att hitta kvadratroten av 10: <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
+</screen></para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> för mer 
information.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
+         <listitem>
+          <synopsis>PolynomialRoots (p)</synopsis>
+          <para>Beräkna rötter för ett polynom (grad 1 till 4) med en av formlerna för sådana polynom. 
Polynomet ska anges som en vektor av koefficienter. Det vill säga <userinput>4*x^3 + 2*x + 1</userinput> 
motsvarar vektorn <userinput>[1,2,0,4]</userinput>. Returnerar en kolumnvektor av lösningarna.</para>
+         <para>Funktionsanropen <link linkend="gel-function-QuadraticFormula">QuadraticFormula</link>, <link 
linkend="gel-function-CubicFormula">CubicFormula</link> och <link 
linkend="gel-function-QuarticFormula">QuarticFormula</link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
+         <listitem>
+          <synopsis>QuadraticFormula (p)</synopsis>
+          <para>Beräkna rötter för ett andragradspolynom med formel. Polynomet ska anges som en vektor av 
koefficienter. Det vill säga <userinput>3*x^2 + 2*x + 1</userinput> motsvarar vektorn 
<userinput>[1,2,3]</userinput>. Returnerar en kolumnvektor av de två lösningarna.</para>
+          <para>Se <ulink url="http://planetmath.org/QuadraticFormula";>Planetmath</ulink>, <ulink 
url="http://mathworld.wolfram.com/QuadraticFormula.html";>Mathworld</ulink> eller <ulink 
url="https://en.wikipedia.org/wiki/Quadratic_formula";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
+         <listitem>
+          <synopsis>QuarticFormula (p)</synopsis>
+          <para>Beräkna rötter för ett fjärdegradspolynom med formel. Polynomet ska anges som en vektor av 
koefficienter. Det vill säga <userinput>5*x^4 + 2*x + 1</userinput> motsvarar vektorn 
<userinput>[1,2,0,0,5]</userinput>. Returnerar en kolumnvektor av de fyra lösningarna.</para>
+          <para>Se <ulink url="http://planetmath.org/QuarticFormula";>Planetmath</ulink>, <ulink 
url="http://mathworld.wolfram.com/QuarticEquation.html";>Mathworld</ulink> eller <ulink 
url="https://en.wikipedia.org/wiki/Quartic_equation";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
+         <listitem>
+          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
+          <para>Använd klassisk icke-adaptiv Runge-Kuttametod av fjärde ordningen för att numeriskt lösa 
y'=f(x,y) för initialt <varname>x0</varname>, <varname>y0</varname> som går till <varname>x1</varname> med 
<varname>n</varname> inkrement, returnerar <varname>y</varname> vid <varname>x1</varname>.</para>
+         <para>System kan lösas genom att helt enkelt låta <varname>y</varname> vara en (kolumn)vektor 
överallt. Det vill säga, <varname>y0</varname> kan vara en vektor i vilket fall <varname>f</varname> bör ta 
ett tal <varname>x</varname> och en vektor av samma storlek som det andra argumentet och bör returnera en 
vektor av samma storlek.</para>
+          <para>Se <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> eller 
<ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
+         <listitem>
+          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
+          <para>Använd klassisk icke-adaptiv Runge-Kuttametod av fjärde ordningen för att numeriskt lösa 
y'=f(x,y) för initialt <varname>x0</varname>, <varname>y0</varname> som går till <varname>x1</varname> med 
<varname>n</varname> inkrement, returnerar en (<userinput>n+1</userinput>)×2-matris med <varname>x</varname>- 
och <varname>y</varname>-värdena. Lämplig för att koppla ihop med <link 
linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link> eller <link 
linkend="gel-function-LinePlotDrawPoints">LinePlotDrawPoints</link>.</para>
+         <para>Exempel: <screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponentiell tillväxt");</userinput>
+</screen></para>
+         <para>System kan lösas genom att helt enkelt låta <varname>y</varname> vara en (kolumn)vektor 
överallt. Det vill säga, <varname>y0</varname> kan vara en vektor i vilket fall <varname>f</varname> bör ta 
ett tal <varname>x</varname> och en vektor av samma storlek som det andra argumentet och bör returnera en 
vektor av samma storlek.</para>
+         <para>Utdata för ett system är fortfarande en n×2-matris där den andra posten är en vektor. Om du 
vill rita linjen, se till att använda radvektorer och platta sedan till matrisen med <link 
linkend="gel-function-ExpandMatrix">ExpandMatrix</link> och välj de rätta kolumnerna. Exempel: 
<screen><prompt>genius&gt;</prompt> <userinput>LinePlotClear();</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = 
RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);</userinput>
+<prompt>genius&gt;</prompt> <userinput>lines = ExpandMatrix(lines);</userinput>
+<prompt>genius&gt;</prompt> <userinput>firstline = lines@(,[1,2]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>secondline = lines@(,[1,3]);</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotWindow = [0,10,-2,2];</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(firstline,"color","blue","legend","Första");</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Andra");</userinput>
+</screen></para>
+          <para>Se <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html";>Mathworld</ulink> eller 
<ulink url="https://en.wikipedia.org/wiki/Runge-Kutta_methods";>Wikipedia</ulink> för mer information.</para>
+         <para>Version 1.0.10 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-statistics">
+      <title>Statistik</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Average"/>Average</term>
+         <listitem>
+          <synopsis>Average (m)</synopsis>
+          <para>Alias: <function>average</function><function>Mean</function><function>mean</function></para>
+          <para>Beräkna medel (aritmetiskt medelvärde) för en hel matris.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
+         <listitem>
+          <synopsis>GaussDistribution (x,sigma)</synopsis>
+         <para>Integral av GaussFunction från 0 till <varname>x</varname> (area under normalkurvan).</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> eller 
<ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
+         <listitem>
+          <synopsis>GaussFunction (x,sigma)</synopsis>
+          <para>Gauss normaliserade distributionsfunktion (normalkurvan).</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Normal_distribution";>Wikipedia</ulink> eller 
<ulink url="http://mathworld.wolfram.com/NormalDistribution.html";>Mathworld</ulink> för mer 
information.</para>
+
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Median"/>Median</term>
+         <listitem>
+          <synopsis>Median (m)</synopsis>
+          <para>Alias: <function>median</function></para>
+          <para>Beräkna median för en hel matris.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>PopulationStandardDeviation (m)</synopsis>
+          <para>Alias: <function>stdevp</function></para>
+          <para>Beräkna populationsstandardavvikelsen för en hel matris.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
+         <listitem>
+          <synopsis>RowAverage (m)</synopsis>
+          <para>Alias: <function>RowMean</function></para>
+         <para>Beräkna medel för varje rad i en matris. Det vill säga beräkna aritmetiskt medelvärde.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Mean";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/ArithmeticMean.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
+         <listitem>
+          <synopsis>RowMedian (m)</synopsis>
+          <para>Beräkna median för varje rad i en matris och returnera en kolumnvektor över 
medianerna.</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Median";>Wikipedia</ulink> eller <ulink 
url="http://mathworld.wolfram.com/StatisticalMedian.html";>Mathworld</ulink> för mer information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
+         <listitem>
+          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
+          <para>Alias: <function>rowstdevp</function></para>
+          <para>Beräkna populationsstandardavvikelserna för rader i en matris och returnera en vertikal 
vektor.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
+         <listitem>
+          <synopsis>RowStandardDeviation (m)</synopsis>
+          <para>Alias: <function>rowstdev</function></para>
+          <para>Beräkna standardavvikelserna för rader av en matris och returnera en vertikal vektor.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+        <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
+         <listitem>
+          <synopsis>StandardDeviation (m)</synopsis>
+          <para>Alias: <function>stdev</function></para>
+          <para>Beräkna standardavvikelsen för en hel matris.</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-polynomials">
+      <title>Polynom</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
+         <listitem>
+          <synopsis>AddPoly (p1,p2)</synopsis>
+          <para>Addera två polynom (vektorer).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
+         <listitem>
+          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
+          <para>Dividera två polynom (som vektorer) med lång division. Returnerar kvoten av de två 
polynomen. Det valfria argumentet <varname>r</varname> används för att returnera resten. Rester kommer ha 
lägre grad än <varname>q</varname>.</para>
+          <para>Se <ulink url="http://planetmath.org/PolynomialLongDivision";>Planetmath</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
+         <listitem>
+          <synopsis>IsPoly (p)</synopsis>
+          <para>Kontrollera om en vektor är användbar som ett polynom.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
+         <listitem>
+          <synopsis>MultiplyPoly (p1,p2)</synopsis>
+          <para>Multiplicera två polynom (som vektorer).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
+         <listitem>
+          <synopsis>NewtonsMethodPoly (poly,gissning,epsilon,maxn)</synopsis>
+         <para>Hitta en rot av ett polynom med Newtons metod. <varname>poly</varname> är polynomet som en 
vektor och <varname>gissning</varname> är den ursprungliga gissningen. Funktionen returnerar efter två på 
varandra följande värden inom <varname>epsilon</varname> från varandra, eller efter <varname>maxn</varname> 
försök, i vilket fall funktionen returnerar <constant>null</constant> vilket indikerar misslyckande.</para>
+         <para>Se även <link 
linkend="gel-function-NewtonsMethod"><function>NewtonsMethod</function></link>.</para>
+         <para>Exempel för att hitta kvadratroten av 10: <screen><prompt>genius&gt;</prompt> 
<userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
+</screen></para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Newtons_method";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
+         <listitem>
+          <synopsis>Poly2ndDerivative (p)</synopsis>
+          <para>Ta andraderivata av polynom (som vektor).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
+         <listitem>
+          <synopsis>PolyDerivative (p)</synopsis>
+          <para>Ta derivata av polynom (som vektor).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
+         <listitem>
+          <synopsis>PolyToFunction (p)</synopsis>
+          <para>Skapa funktion av ett polynom (som en vektor).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
+         <listitem>
+          <synopsis>PolyToString (p,var...)</synopsis>
+          <para>Skapa sträng av ett polynom (som en vektor).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
+         <listitem>
+          <synopsis>SubtractPoly (p1,p2)</synopsis>
+          <para>Subtrahera två polynom (som vektorer).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
+         <listitem>
+          <synopsis>TrimPoly (p)</synopsis>
+          <para>Ta bort nollor från ett polynom (som vektor).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-set-theory">
+      <title>Mängdlära</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-Intersection"/>Intersection</term>
+         <listitem>
+          <synopsis>Intersection (X,Y)</synopsis>
+          <para>Returnerar det mängdteoretiska snittet av X och Y (X och Y är vektorer som föreställer att 
vara mängder).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsIn"/>IsIn</term>
+         <listitem>
+          <synopsis>IsIn (x,X)</synopsis>
+         <para>Returnerar <constant>true</constant> (sant) om elementet x är i mängden X (där X är en vektor 
som föreställer att vara en mängd).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
+         <listitem>
+          <synopsis>IsSubset (X, Y)</synopsis>
+         <para>Returnerar <constant>true</constant> (sant) om X är en delmängd av Y (X och Y är vektorer som 
föreställer att vara mängder).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
+         <listitem>
+          <synopsis>MakeSet (X)</synopsis>
+          <para>Returnerar en mängd där varje element i X förekommer endast en gång.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
+         <listitem>
+          <synopsis>SetMinus (X,Y)</synopsis>
+          <para>Returnerar den mängdteoretiska differensen X-Y (X och Y är vektorer som föreställer att vara 
mängder).</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-Union"/>Union</term>
+         <listitem>
+          <synopsis>Union (X,Y)</synopsis>
+          <para>Returnerar den mängdteoretiska unionen av X och Y (X och Y är vektorer som föreställer att 
vara mängder).</para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-commutative-algebra">
+      <title>Kommutativ algebra</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
+         <listitem>
+          <synopsis>MacaulayBound (c,d)</synopsis>
+          <para>För en Hilbertfunktion som är c för grad d, givet Macaulay-gränsen för Hilbertfunktionen av 
grad d+1 (c^&lt;d&gt;-operatorn från Greens bevis).</para>
+         <para>Version 1.0.15 och framåt.</para>
+         </listitem>
+        </varlistentry>
+       
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
+         <listitem>
+          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
+          <para>c_&lt;d&gt;-operatorn från Greens bevis för Macaulays sats.</para>
+         <para>Version 1.0.15 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
+         <listitem>
+          <synopsis>MacaulayRep (c,d)</synopsis>
+          <para>Returnera den d:e Macaulayrepresentationen av ett positivt heltal c.</para>
+         <para>Version 1.0.15 och framåt.</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-miscellaneous">
+      <title>Diverse</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
+         <listitem>
+          <synopsis>ASCIIToString (vek)</synopsis>
+          <para>Konvertera en vektor av ASCII-värden till en sträng. Se även <link 
linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
+= "abc"
+</screen></para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
+         <listitem>
+          <synopsis>AlphabetToString (vek,alfabet)</synopsis>
+         <para>Konvertera en vektor med alfabetsvärdena 0 och uppåt (positioner i alfabetssträngen) till en 
sträng. En <constant>null</constant>-vektor resulterar i en tom sträng. Se även <link 
linkend="gel-function-StringToAlphabet"><function>StringToAlphabet</function></link>.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>AlphabetToString([1,2,3,0,0],"abcd")</userinput>
+= "bcdaa"
+<prompt>genius&gt;</prompt> <userinput>AlphabetToString(null,"abcd")</userinput>
+= ""
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
+         <listitem>
+          <synopsis>StringToASCII (str)</synopsis>
+         <para>Konvertera en sträng till en (rad)vektor av ASCII-värden. Se även <link 
linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
+= [97, 98, 99]
+</screen></para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/ASCII";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
+         <listitem>
+          <synopsis>StringToAlphabet (str,alfabet)</synopsis>
+         <para>Konvertera en sträng till en (rad)vektor med alfabetsvärden 0 och uppåt (positioner i 
alfabetssträngen), -1 för okända bokstäver. En tom sträng resulterar i <constant>null</constant>. Se även 
<link linkend="gel-function-AlphabetToString"><function>AlphabetToString</function></link>.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>StringToAlphabet("cca","abcd")</userinput>
+= [2, 2, 0]
+<prompt>genius&gt;</prompt> <userinput>StringToAlphabet("ccag","abcd")</userinput>
+= [2, 2, 0, -1]
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-symbolic">
+      <title>Symboliska operationer</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
+         <listitem>
+          <synopsis>SymbolicDerivative (f)</synopsis>
+          <para>Försök att symboliskt differentiera funktionen f, där f är en funktion av en variabel.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(sin)</userinput>
+= (`(x)=cos(x))
+<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
+= (`(x)=(7*(2*x)))
+</screen></para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicDerivativeTry (f)</synopsis>
+         <para>Försök att symboliskt differentiera funktionen f, där f är en funktion av en variabel, 
returnerar <constant>null</constant> vid misslyckande men är tyst. (Se <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
+          <para>Försök att symboliskt differentiera en funktion n gånger. (Se <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
+         <listitem>
+          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
+         <para>Försök att symboliskt differentiera en funktion n gånger tyst, och returnera 
<constant>null</constant> vid misslyckande (Se <link 
linkend="gel-function-SymbolicNthDerivative"><function>SymbolicNthDerivative</function></link>)</para>
+          <para>Se <ulink url="https://en.wikipedia.org/wiki/Derivative";>Wikipedia</ulink> för mer 
information.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor 
id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
+         <listitem>
+          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
+         <para>Försök att konstruera Taylorapproximationsfunktionen kring x0 till n:e graden. (Se <link 
linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)</para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect1>
+
+    <sect1 id="genius-gel-function-list-plotting">
+      <title>Grafritning</title>
+      <variablelist>
+        <varlistentry>
+         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
+         <listitem>
+          <synopsis>ExportPlot (fil,typ)</synopsis>
+          <synopsis>ExportPlot (fil)</synopsis>
+          <para>Exportera innehållet för graffönstret till en fil. Typen är en sträng som anger filtypen att 
använda, "png", "eps" eller "ps". Om typen inte är angiven antas den vara ändelsen, i vilket fall ändelsen 
måste vara ".png", ".eps", eller ".ps".</para>
+         <para>Observera att filer skrivs över utan att du tillfrågas.</para>
+         <para>Vid lyckad export returneras true. I annat fall skrivs ett fel ut och ett undantag 
flaggas.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> <userinput>ExportPlot("fil.png")</userinput>
+<prompt>genius&gt;</prompt> <userinput>ExportPlot("/katalog/fil","eps")</userinput>
+</screen></para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
+         <listitem>
+          <synopsis>LinePlot (funk1,funk2,funk3,...)</synopsis>
+          <synopsis>LinePlot (funk1,funk2,funk3,x1,x2)</synopsis>
+          <synopsis>LinePlot (funk1,funk2,funk3,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlot (funk1,funk2,funk3,[x1,x2])</synopsis>
+          <synopsis>LinePlot (funk1,funk2,funk3,[x1,x2,y1,y2])</synopsis>
+          <para>Rita en funktion (eller flera) med en linjegraf. De första (upp till 10) argumenten är 
funktioner, sedan kan du valfritt ange gränserna för graffönstret som <varname>x1</varname>, 
<varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Om gränser inte anges kommer de aktuellt 
inställda gränserna att användas (Se <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>) Om y-gränserna inte anges 
beräknas funktionerna och sedan används max- och minvärdena.</para>
+          <para>Parametern <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> styr om 
förklaringen ritas ut.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
+         <listitem>
+          <synopsis>LinePlotClear ()</synopsis>
+          <para>Visa linjegrafsfönstret och rensa bort funktioner och alla andra linjer som ritades.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
+         <listitem>
+          <synopsis>LinePlotCParametric (funk,...)</synopsis>
+          <synopsis>LinePlotCParametric (funk,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotCParametric (funk,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <para>Rita en parametrisk komplexvärd funktion med en linjegraf. Först kommer funktionen som 
returnerar <computeroutput>x+iy</computeroutput> sedan valfritt <varname>t</varname>-gränserna som 
<userinput>t1,t2,tinc</userinput>, sedan valfritt gränserna som <userinput>x1,x2,y1,y2</userinput>.</para>
+         <para>Om gränser inte anges kommer de aktuellt inställda gränserna att användas (Se <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Om istället strängen "fit" 
anges för x- och y-gränserna kommer gränserna vara den största utsträckningen för grafen</para>
+          <para>Parametern <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> styr om 
förklaringen ritas ut.</para>
+         </listitem>
+        </varlistentry>
+
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
+         <listitem>
+          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
+          <synopsis>LinePlotDrawLine (v,...)</synopsis>
+          <para>Rita en linje från <varname>x1</varname>,<varname>y1</varname> till 
<varname>x2</varname>,<varname>y2</varname>. <varname>x1</varname>,<varname>y1</varname>, 
<varname>x2</varname>,<varname>y2</varname> kan ersättas med en <varname>n</varname>×2-matris för ett längre 
polygontåg. Alternativt kan vektorn <varname>v</varname> vara en kolumnvektor med komplexa tal, det vill säga 
en <varname>n</varname>×1-matris och varje komplext tal anses då vara en punkt i planet.</para>
+          <para>Extra parametrar kan läggas till för att ange linjefärg, tjocklek, pilar, graffönstret eller 
förklaring. Du kan göra detta genom att lägga till en argumentsträng <userinput>"color"</userinput>, 
<userinput>"thickness"</userinput>, <userinput>"window"</userinput>, <userinput>"arrow"</userinput> eller 
<userinput>"legend"</userinput>, och efter detta ange färgen, tjockleken, fönstret som en 4-vektor, piltyp 
eller förklaringen. (Pil och fönster är från version 1.0.6 och framåt.)</para>
+         <para>Om linjen ska behandlas som en fylld polygon som är fylld med den angivna färgen kan du ange 
argumentet <userinput>"filled"</userinput>. Sedan version 1.0.22 och framåt.</para>
+         <para>Färgen ska vara antingen en sträng som indikerar det vanliga engelska ordet för färgen som 
GTK kommer känna igen, som <userinput>"red"</userinput>, <userinput>"blue"</userinput>, 
<userinput>"yellow"</userinput>, o.s.v... Alternativt kan färgen anges i RGB-format som 
<userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput> eller <userinput>"#rrrrggggbbbb"</userinput>, 
där r, g och b är hexadecimala tal för de röda, gröna och blåa komponenterna av färgen. Slutligen kan sedan 
version 1.0.18 färgen också anges som en reell vektor som anger de röda gröna och blåa komponenterna där 
komponenterna är mellan 0 och 1, t.ex. <userinput>[1.0,0.5,0.1]</userinput>.</para>
+         <para>Fönstret ska som vanligt anges som <userinput>[x1,x2,y1,y2]</userinput>, eller kan 
alternativt anges som en sträng <userinput>"fit"</userinput> i vilket fall x-intervallet kommer ställas in 
precis och y-intervallet med fem procents gränser kring linjen.</para>
+         <para>Pilspecifikation ska vara <userinput>"origin"</userinput>, <userinput>"end"</userinput>, 
<userinput>"both"</userinput> eller <userinput>"none"</userinput>.</para>
+         <para>Slutligen ska förklaring vara en sträng som kan användas som förklaring i grafen. Det vill 
säga om förklaringar skrivs ut.</para>
+         <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","Lösningen")</userinput>
+<prompt>genius&gt;</prompt> <userinput>for r=0.0 to 1.0 by 0.1 do 
LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")</userinput>
+</screen></para>
+         <para>Till skillnad från många andra funktioner som inte bryr sig om de tar en kolumn- eller 
radvektor så måste på grund av möjliga tvetydigheter punkter som anges som en vektor av komplexa tal alltid 
anges som en kolumnvektor.</para>
+         <para>Att ange <varname>v</varname> som en kolumnvektor med komplexa tal är implementerat från 
version 1.0.22 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
+         <listitem>
+          <synopsis>LinePlotDrawPoints (x,y,...)</synopsis>
+          <synopsis>LinePlotDrawPoints (v,...)</synopsis>
+          <para>Rita en punkt vid <varname>x</varname>,<varname>y</varname>. Indata kan vara en 
<varname>n</varname>×2-matris för <varname>n</varname> olika punkter. Denna funktion har i stort sett samma 
indata som <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>. Alternativt kan vektorn 
<varname>v</varname> vara en kolumnvektor med komplexa tal, det vill säga en <varname>n</varname>×1-matris 
och varje komplext tal anses då vara en punkt i planet.</para>
+          <para>Extra parametrar kan läggas till för att ange färg, tjocklek, graffönstret eller förklaring. 
Du kan göra detta genom att lägga till en argumentsträng <userinput>"color"</userinput>, 
<userinput>"thickness"</userinput>, <userinput>"window"</userinput> eller <userinput>"legend"</userinput>, 
och efter detta ange färgen, tjockleken, fönstret som en 4-vektor eller förklaringen.</para>
+         <para>Färgen ska vara antingen en sträng som indikerar det vanliga engelska ordet för färgen som 
GTK kommer känna igen, som <userinput>"red"</userinput>, <userinput>"blue"</userinput>, 
<userinput>"yellow"</userinput>, o.s.v... Alternativt kan färgen anges i RGB-format som 
<userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput> eller <userinput>"#rrrrggggbbbb"</userinput>, 
där r, g och b är hexadecimala tal för de röda, gröna och blåa komponenterna av färgen. Slutligen kan färgen 
också anges som en reell vektor som anger de röda gröna och blåa komponenterna där komponenterna är mellan 0 
och 1.</para>
+         <para>Fönstret ska som vanligt anges som <userinput>[x1,x2,y1,y2]</userinput>, eller kan 
alternativt anges som en sträng <userinput>"fit"</userinput> i vilket fall x-intervallet kommer ställas in 
precis och y-intervallet med fem procents gränser kring linjen.</para>
+         <para>Slutligen ska förklaring vara en sträng som kan användas som förklaring i grafen. Det vill 
säga om förklaringar skrivs ut.</para>
+         <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([0,0;1,-1;-1,-1])</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","Lösningen")</userinput>
+<prompt>genius&gt;</prompt> <userinput>LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)</userinput>
+<prompt>genius&gt;</prompt> 
<userinput>LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","7:e 
enhetsrötterna")</userinput>
+</screen></para>
+         <para>Till skillnad från många andra funktioner som inte bryr sig om de tar en kolumn- eller 
radvektor så måste på grund av möjliga tvetydigheter punkter som anges som en vektor av komplexa tal alltid 
anges som en kolumnvektor. Notera därför i sista exemplet transponatet av vektorn <userinput>0:6</userinput> 
för att göra den till en kolumvektor.</para>
+         <para>Tillgängligt från version 1.0.18 och framåt. Att ange <varname>v</varname> som en 
kolumnvektor med komplexa tal är implementerat från version 1.0.22 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
+         <listitem>
+          <synopsis>LinePlotMouseLocation ()</synopsis>
+          <para>Returnerar en radvektor för en punkt på linjegrafen som motsvarar den aktuella positionen 
för musen. Om linjegrafen inte är synlig skrivs ett fel ut och <constant>null</constant> returneras. I detta 
fall bör du köra <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> eller <link 
linkend="gel-function-LinePlotClear"><function>LinePlotClear</function></link> för att ställa graffönstret i 
linjegrafsläget. Se även <link 
linkend="gel-function-LinePlotWaitForClick"><function>LinePlotWaitForClick</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
+         <listitem>
+          <synopsis>LinePlotParametric (xfunk,yfunk,...)</synopsis>
+          <synopsis>LinePlotParametric (xfunk,yfunk,t1,t2,tinc)</synopsis>
+          <synopsis>LinePlotParametric (xfunk,yfunk,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
+          <synopsis>LinePlotParametric (xfunk,yfunk,t1,t2,tinc,[x1,x2,y1,y2])</synopsis>
+          <synopsis>LinePlotParametric (xfunk,yfunk,t1,t2,tinc,"fit")</synopsis>
+          <para>Rita en parametrisk funktion med en linjegraf. Först kommer funktionerna för 
<varname>x</varname> och <varname>y</varname>, sedan valfritt <varname>t</varname>-gränserna som 
<userinput>t1,t2,tinc</userinput>, sedan valfritt gränserna som <userinput>x1,x2,y1,y2</userinput>.</para>
+         <para>Om x- och y-gränser inte anges kommer de aktuellt inställda gränserna att användas (Se <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Om istället strängen "fit" 
anges för x- och y-gränserna kommer gränserna vara den största utsträckningen för grafen</para>
+          <para>Parametern <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> styr om 
förklaringen ritas ut.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
+         <listitem>
+          <synopsis>LinePlotWaitForClick ()</synopsis>
+          <para>Om i linjegrafsläge så inväntas ett klick på linjegrafsfönstret och platsen för klicket 
returneras som en radvektor. Om fönstret är stängt returnerar funktionen omedelbart 
<constant>null</constant>. Om fönstret inte är i linjegrafsläge ställs det i det läget och visas om det inte 
visats. Se även <link 
linkend="gel-function-LinePlotMouseLocation"><function>LinePlotMouseLocation</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasFreeze"/>PlotCanvasFreeze</term>
+         <listitem>
+          <synopsis>PlotCanvasFreeze ()</synopsis>
+          <para>Frys tillfälligt ritande av grafens rityta. Användbart om du behöver rita ett gäng element 
och vill fördröja ritande av allt för att undvika flimmer i en animering. Efter att allt har ritats bör du 
anropa <link linkend="gel-function-PlotCanvasThaw"><function>PlotCanvasThaw</function></link>.</para>
+          <para>Ritytan töas alltid upp efter att en exekvering avslutas. så den kommer aldrig att förbli 
frusen. Till exempel töas ritytan automatiskt ögonblicket då en ny kommandorad visas. Observera också att 
anrop för att frysa och töa upp kan nästas på ett säkert sätt.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
+         <listitem>
+          <synopsis>PlotCanvasThaw ()</synopsis>
+          <para>Töa upp ritytan för graf som frystes av <link 
linkend="gel-function-PlotCanvasFreeze"><function>PlotCanvasFreeze</function></link> och rita om ritytan 
omedelbart. Ritytan töas också alltid upp efter att ett program slutat exekvera.</para>
+         <para>Version 1.0.18 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
+         <listitem>
+          <synopsis>PlotWindowPresent ()</synopsis>
+          <para>Visa och höj graffönstret, skapa det om nödvändigt. Normalt skapas fönstret då en av 
graffunktionerna anropas, men det höjs inte alltid om det råkar vara under andra fönster. Denna funktion är 
därför bra att anropa i skript där graffönstret kan ha skapats tidigare, och nu är dolt bakom konsolen eller 
andra fönster.</para>
+         <para>Version 1.0.19 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
+         <listitem>
+          <synopsis>SlopefieldClearSolutions ()</synopsis>
+          <para>Rensar bort lösningarna som ritats av funktionen <link 
linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
+         <listitem>
+          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
+          <para>Då en riktningsfältsgraf är aktiv, rita en lösning med de angivna startvillkoren. Den 
vanliga Runge-Kutta-metoden används med ökning <varname>dx</varname>. Lösningarna stannar i grafen tills en 
annan graf visas eller tills du anropar <link 
linkend="gel-function-SlopefieldClearSolutions"><function>SlopefieldClearSolutions</function></link>. Du kan 
också använda det grafiska gränssnittet för att rita lösningar och ange startvillkor med musen.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
+         <listitem>
+          <synopsis>SlopefieldPlot (funk)</synopsis>
+          <synopsis>SlopefieldPlot (funk,x1,x2,y1,y2)</synopsis>
+          <para>Rita ett riktningsfält. Funktionen <varname>funk</varname> ska ta två reella tal 
<varname>x</varname> och <varname>y</varname> eller ett ensamt komplext tal. Valfritt kan du ange gränserna 
för graffönstret som <varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, 
<varname>y2</varname>. Om gränser inte anges kommer de aktuellt inställda gränserna att användas (Se <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
+          <para>Parametern <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> styr om 
förklaringen ritas ut.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+       <varlistentry>
+        <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
+         <listitem>
+          <synopsis>SurfacePlot (funk)</synopsis>
+          <synopsis>SurfacePlot (funk,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlot (funk,x1,x2,y1,y2)</synopsis>
+          <synopsis>SurfacePlot (funk,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlot (funk,[x1,x2,y1,y2])</synopsis>
+          <para>Rita en ytfunktion som antingen tar två argument eller ett komplext tal. Först kommer 
funktionen sedan valfritt gränser som <varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, 
<varname>y2</varname>, <varname>z1</varname>, <varname>z2</varname>. Om gränser inte anges kommer de aktuellt 
inställda gränserna att användas (Se <link 
linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>). Genius kan för 
närvarande endast rita ut en ensam ytgraf.</para>
+          <para>Om z-gränserna inte är angivna kommer maximum- och minimumvärdena för funktionen att 
användas.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
+         <listitem>
+          <synopsis>SurfacePlotClear ()</synopsis>
+          <para>Visa ytgrafsfönstret och rensa ut funktioner och alla andra linjer som ritats.</para>
+          <para>Tillgängligt i version 1.0.19 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
+         <listitem>
+          <synopsis>SurfacePlotData (data)</synopsis>
+          <synopsis>SurfacePlotData (data,etikett)</synopsis>
+          <synopsis>SurfacePlotData (data,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,etikett,x1,x2,y1,y2,z1,z2)</synopsis>
+          <synopsis>SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotData (data,etikett,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <para>Rita en yta från data. Data är en n×3-matris vars rader är x-, y- och z-koordinaterna. Data 
kan också helt enkelt vara en vektor vars längd är en multipel av 3 och därmed innehåller tripplarna av x, y, 
z. Data ska innehålla minst 3 punkter.</para>
+          <para>Valfritt kan vi ange etiketten och valfritt även gränserna. Om gränserna inte anges beräknas 
de från data, <link linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link> 
används inte, om du vill använda det, skicka med det explicit. Om ingen etikett anges används en tom 
etikett.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,"Mina data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,-1,1,-1,1,0,10)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,SurfacePlotWindow)</userinput>
+</screen></para>
+         <para>Här är ett exempel på hur vi kan rita med polära koordinater, i synnerhet hur funktionen 
<userinput>-r^2 * theta</userinput> ritas: <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>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
+</screen></para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
+         <listitem>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2],etikett)</synopsis>
+          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],etikett)</synopsis>
+          <para>Rita en yta från vanliga rektangulära data. Data ges i en n×m-matris där raderna är 
x-koordinaten och kolumnerna är y-koordinaten. x-koordinaten delas in i n-1 lika stora delintervall och 
y-koordinaten delas in i m-1 lika stora delintervall. Gränserna <varname>x1</varname> och 
<varname>x2</varname> ger intervallet på x-axeln som vi använder, och gränserna <varname>y1</varname> och 
<varname>y2</varname> ger intervallet på y-axeln som vi använder. Om gränserna <varname>z1</varname> och 
<varname>z2</varname> inte anges beräknas de från data (till att vara extremvärdena från data).</para>
+          <para>Valfritt kan vi ange etiketten, om etikett inte anges används en tom etikett.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"Mina data")</userinput>
+<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = 
(0.1*i-1)^2-(0.1*j)^2;</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"halv sadel")</userinput>
+</screen></para>
+         <para>Version 1.0.16 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
+          <synopsis>SurfacePlotDrawLine (v,...)</synopsis>
+          <para>Rita en linje från <varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname> till 
<varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname>. 
<varname>x1</varname>,<varname>y1</varname>,<varname>z1</varname>, 
<varname>x2</varname>,<varname>y2</varname>,<varname>z2</varname> kan ersättas med en 
<varname>n</varname>×3-matris för ett längre polygontåg.</para>
+          <para>Extra parametrar kan läggas till för att ange linjefärg, tjocklek, graffönster eller 
förklaring. Du kan göra detta genom att lägga till en argumentsträng <userinput>"color"</userinput>, 
<userinput>"thickness"</userinput>, <userinput>"window"</userinput> eller <userinput>"legend"</userinput>, 
och efter detta ange färgen, tjockleken, fönstret som en 6-vektor eller förklaringen.</para>
+         <para>Färgen ska vara antingen en sträng som indikerar det vanliga engelska ordet för färgen som 
GTK kommer känna igen, som <userinput>"red"</userinput>, <userinput>"blue"</userinput>, 
<userinput>"yellow"</userinput>, o.s.v... Alternativt kan färgen anges i RGB-format som 
<userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput> eller <userinput>"#rrrrggggbbbb"</userinput>, 
där r, g och b är hexadecimala tal för de röda, gröna och blåa komponenterna av färgen. Slutligen kan sedan 
version 1.0.18 färgen också anges som en reell vektor som anger de röda gröna och blåa komponenterna där 
komponenterna är mellan 0 och 1, t.ex. <userinput>[1.0,0.5,0.1]</userinput>.</para>
+         <para>Fönstret ska som vanligt anges som <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, eller kan 
alternativt anges som en sträng <userinput>"fit"</userinput> i vilket fall x-intervallet kommer ställas in 
precis och y-intervallet med fem procents gränser kring linjen.</para>
+         <para>Slutligen ska förklaring vara en sträng som kan användas som förklaring i grafen. Det vill 
säga om förklaringar skrivs ut.</para>
+         <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])</userinput>
+</screen></para>
+         <para>Tillgängligt i version 1.0.19 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
+         <listitem>
+          <synopsis>SurfacePlotDrawPoints (x,y,z,...)</synopsis>
+          <synopsis>SurfacePlotDrawPoints (v,...)</synopsis>
+          <para>Rita en punkt vid <varname>x</varname>,<varname>y</varname>,<varname>z</varname>. Indata kan 
vara en <varname>n</varname>×3-matris för <varname>n</varname> olika punkter. Denna funktion har i huvudsak 
samma indata som <link linkend="gel-function-SurfacePlotDrawLine">SurfacePlotDrawLine</link>.</para>
+          <para>Extra parametrar kan läggas till för att ange linjefärg, tjocklek, graffönster eller 
förklaring. Du kan göra detta genom att lägga till en argumentsträng <userinput>"color"</userinput>, 
<userinput>"thickness"</userinput>, <userinput>"window"</userinput> eller <userinput>"legend"</userinput>, 
och efter detta ange färgen, tjockleken, fönstret som en 6-vektor eller förklaringen.</para>
+         <para>Färgen ska vara antingen en sträng som indikerar det vanliga engelska ordet för färgen som 
GTK kommer känna igen, som <userinput>"red"</userinput>, <userinput>"blue"</userinput>, 
<userinput>"yellow"</userinput>, o.s.v... Alternativt kan färgen anges i RGB-format som 
<userinput>"#rgb"</userinput>, <userinput>"#rrggbb"</userinput> eller <userinput>"#rrrrggggbbbb"</userinput>, 
där r, g och b är hexadecimala tal för de röda, gröna och blåa komponenterna av färgen. Slutligen kan färgen 
också anges som en reell vektor som anger de röda gröna och blåa komponenterna där komponenterna är mellan 0 
och 1.</para>
+         <para>Fönstret ska som vanligt anges som <userinput>[x1,x2,y1,y2,z1,z2]</userinput>, eller kan 
alternativt anges som en sträng <userinput>"fit"</userinput> i vilket fall x-intervallet kommer ställas in 
precis och y-intervallet med fem procents gränser kring linjen.</para>
+         <para>Slutligen ska förklaring vara en sträng som kan användas som förklaring i grafen. Det vill 
säga om förklaringar skrivs ut.</para>
+         <para>Exempel: <screen><prompt>genius&gt;</prompt> 
<userinput>SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)</userinput>
+<prompt>genius&gt;</prompt> <userinput>SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])</userinput>
+</screen></para>
+         <para>Tillgängligt i version 1.0.19 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
+         <listitem>
+          <synopsis>VectorfieldClearSolutions ()</synopsis>
+          <para>Rensar bort lösningarna som ritats av funktionen <link 
linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>.</para>
+         <para>Version 1.0.6 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
+         <listitem>
+          <synopsis>VectorfieldDrawSolution (x, y, dt, tlen)</synopsis>
+          <para>Då en verktorfältsgraf är aktiv, rita en lösning med de angivna startvillkoren. Den vanliga 
Runge-Kutta-metoden används med ökning <varname>dt</varname> under ett intervall med längden 
<varname>tlen</varname>. Lösningarna stannar i grafen tills en annan graf visas eller tills du anropar <link 
linkend="gel-function-VectorfieldClearSolutions"><function>VectorfieldClearSolutions</function></link>. Du 
kan också använda det grafiska gränssnittet för att rita lösningar och ange startvillkor med musen.</para>
+         <para>Version 1.0.6 och framåt.</para>
+         </listitem>
+        </varlistentry>
+
+        <varlistentry>
+         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
+         <listitem>
+          <synopsis>VectorfieldPlot (funkx, funky)</synopsis>
+          <synopsis>VectorfieldPlot (funkx, funky, x1, x2, y1, y2)</synopsis>
+          <para>Rita ett tvådimensionellt vektorfält. Funktionen <varname>funkx</varname> ska vara dx/dt för 
vektorfältet och funktionen <varname>funky</varname> ska vara dy/dt för vektorfältet. Funktionerna ska ta två 
reella tal <varname>x</varname> och <varname>y</varname>, eller ett ensamt komplext tal. Då parametern <link 
linkend="gel-function-VectorfieldNormalized"><function>VectorfieldNormalized</function></link> är 
<constant>true</constant> normaliseras magnituden för vektorerna. Det vill säga endast riktningen visas, inte 
magnituden.</para>
+         <para>Valfritt kan du ange gränserna för graffönstret som <varname>x1</varname>, 
<varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Om gränser inte anges kommer de aktuellt 
inställda gränserna att användas (Se <link 
linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
+          <para>Parametern <link 
linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> styr om 
förklaringen ritas ut.</para>
+          <para>Exempel: <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, 
`(x,y)=y^2-x, -1, 1, -1, 1)</userinput>
+</screen></para>
+         </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </sect1>
+
+  </chapter>
+
+  <!-- ============= GEL examples ============================= -->
+  <chapter id="genius-gel-example-programs">
+    <title>Exempelprogram i GEL</title>
+
+    <para>Här är en funktion som beräknar fakultet: <programlisting><![CDATA[function f(x) = if x <= 1 then 
1 else (f(x-1)*x)
+]]></programlisting></para>
+    <para>Med indentering blir det: <programlisting><![CDATA[function f(x) = (
+  if x <= 1 then
+    1
+  else
+    (f(x-1)*x)
+)
+]]></programlisting></para>
+    <para>Detta är en direkt portering av fakultetsfunktionen från manualsidan från 
<application>bc</application>. Syntaxen verkar liknande som i <application>bc</application>, men skiljer sig 
åt i att i GEL är det sista uttrycket det som returneras. Om funktionen <literal>return</literal> används 
istället blir det: <programlisting><![CDATA[function f(x) = (
+  if (x <= 1) then return (1);
+  return (f(x-1) * x)
+)
+]]></programlisting></para>
+
+    <para>Det absolut enklaste sättet att definiera en fakultetsfunktion är att använda produktloopen enligt 
följande. Detta är inte bara kortast och snabbast, utan också troligen den mest läsbara versionen. 
<programlisting>function f(x) = prod k=1 to x do k
+</programlisting></para>
+
+    <para>Här är ett större exempel som i stort omdefinierar den inbyggda funktionen <link 
linkend="gel-function-ref"><function>ref</function></link> för att beräkna trappstegsformen för en matris. 
Funktionen <function>ref</function> är inbyggd och mycket snabbare, men detta exempel demonstrerar några av 
de mer komplexa funktionerna i GEL. <programlisting><![CDATA[# Calculate the row-echelon form of a matrix
+function MyOwnREF(m) = (
+  if not IsMatrix(m) or not IsValueOnly(m) then
+    (error("MyOwnREF: argument not a value only matrix");bailout);
+  s := min(rows(m), columns(m));
+  i := 1;
+  d := 1;
+  while d <= s and i <= columns(m) do (
+
+    # This just makes the anchor element non-zero if at
+    # all possible
+    if m@(d,i) == 0 then (
+      j := d+1;
+      while j <= rows(m) do (
+        if m@(j,i) == 0 then
+          (j=j+1;continue);
+        a := m@(j,);
+        m@(j,) := m@(d,);
+        m@(d,) := a;
+        j := j+1;
+        break
+      )
+    );
+    if m@(d,i) == 0 then
+      (i:=i+1;continue);
+    
+    # Here comes the actual zeroing of all but the anchor
+    # element rows
+    j := d+1;
+    while j <= rows(m)) do (
+      if m@(j,i) != 0 then (
+        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
+      );
+      j := j+1
+    );
+    m@(d,) := m@(d,) * (1/m@(d,i));
+    d := d+1;
+    i := i+1
+  );
+  m
+)
+]]></programlisting></para>
+
+  </chapter>
+
+  <!-- ============= Customization ============================ -->
+  <chapter id="genius-prefs"> 
+    <title>Inställningar</title> 
+
+    <para>För att konfigurera <application>Genius matematikverktyg</application>, välj 
<menuchoice><guimenu>Inställningar</guimenu><guimenuitem>Inställningar</guimenuitem></menuchoice>. Det finns 
flera grundläggande parametrar som tillhandahålls av miniräknaren utöver de som tillhandahålls av 
standardbiblioteket. Dessa kontrollerar hur miniräknaren beter sig.</para>
+
+    <note>
+      <title>Ändra inställningar med GEL</title>
+      <para>Många av inställningarna i Genius är helt enkelt globala variabler, och kan evalueras och 
tilldelas till på samma sätt som vanliga variabler. Se <xref linkend="genius-gel-variables"/> om evaluering 
och tilldelning till variabler, och <xref linkend="genius-gel-function-parameters"/> för en lista över 
inställningar som kan ändras på detta sätt.</para>
+      <para>Som ett exempel kan du ställa in det maximala antalet siffror i ett resultat till 12 genom att 
skriva: <programlisting>MaxDigits = 12
+</programlisting></para>
+    </note>
+
+    <sect1 id="genius-prefs-output"> 
+      <title>Utdata</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximalt antal siffror att skriva ut</guilabel>
+      </term> 
+         <listitem>
+                 <para>Maximalt antal siffror i ett resultat (<link 
linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Resultat som flyttal</guilabel>
+      </term> 
+         <listitem>
+                 <para>Om resultaten alltid ska skrivas ut som flyttal (<link 
linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Flyttal i vetenskaplig notation</guilabel>
+      </term> 
+         <listitem>
+                 <para>Om flyttal ska vara i vetenskaplig notation (<link 
linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Skriv alltid ut fullständiga uttryck</guilabel>
+      </term> 
+         <listitem>
+                 <para>Ska vi skriva ut fullständiga uttryck för icke-numeriska returvärden (längre än en 
rad) (<link linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Använd blandade bråk</guilabel>
+      </term> 
+         <listitem>
+                 <para>Om bråk ska skrivas ut som blandade bråk som exempelvis ”1 1/3” snarare än ”4/3”. 
(<link linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Visa 0.0 när flyttal är mindre än 10^-x (0=klipp aldrig)</guilabel>
+      </term> 
+         <listitem>
+         <para>Hur utmatning klipps. Men bara när andra tal i närheten är stora. Se dokumentationen för 
parametern <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+            <guilabel>Klipp endast tal när ett annat tal är större än 10^-x</guilabel>
+      </term> 
+         <listitem>
+                 <para>När utmatning ska klippas. Detta ställs in av parametern <link 
linkend="gel-function-OutputChopWhenExponent"><function>OutputChopWhenExponent</function></link>. Se 
dokumentationen för parametern <link 
linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Kom ihåg utdatainställningar mellan sessioner</guilabel>
+      </term> 
+         <listitem>
+        <para>Ska utdatainställningar i ramen <guilabel>Utdatainställningar för tal/uttryck</guilabel> 
kommas ihåg till nästa session. Gäller inte för ramen <guilabel>Utdatainställningar för 
fel/information</guilabel>.</para>
+             <para>Om ej ikryssad kommer antingen standardinställningen eller tidigare sparade inställningar 
användas varje gång Genius startas. Observera att inställningar sparas i slutet på sessionen, så om du vill 
ändra standardinställningen kryssa i denna ruta, starta om <application>Genius matematikverktyg</application> 
och kryssa sedan ur den igen.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Visa felmeddelanden i en dialog</guilabel>
+      </term> 
+         <listitem>
+        <para>Om inställd kommer fel att visas i en separat dialog, om ej inställd kommer felen att skrivas 
ut i konsolen.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Visa informationsmeddelanden i en dialog</guilabel>
+      </term> 
+         <listitem>
+       <para>Om inställd kommer informationsmeddelandena att visas i en separat dialog, om ej inställd 
kommer informationsmeddelandena att skrivas ut i konsolen.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Maximalt antal fel att visa</guilabel>
+      </term> 
+         <listitem>
+        <para>Det maximala antalet fel att returnera vid en evaluering (<link 
linkend="gel-function-MaxErrors"><function>MaxErrors</function></link>). Om du ställer in detta till 0 kommer 
alla fel alltid att returneras. Om en slinga orsakar många fel så är det vanligen osannolikt att du kommer 
att kunna tolka mer än några få av dessa, så att se en lång lista av fel är vanligen inte till någon större 
hjälp.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+
+      <para>Utöver dessa inställningar finns det några inställningar som endast kan ändras genom att ställa 
in dem i arbetsytans konsol. För andra som kan påverka utmatningen se <xref 
linkend="genius-gel-function-parameters"/>.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <function>IntegerOutputBase</function>
+      </term> 
+         <listitem>
+        <para>Basen som kommer användas för utskrift av heltal</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <function>OutputStyle</function>
+      </term> 
+         <listitem>
+       <para>En sträng, kan vara <literal>"normal"</literal>, <literal>"latex"</literal>, 
<literal>"mathml"</literal> eller <literal>"troff"</literal> och den kommer påverka hur matriser (och kanske 
andra saker) skrivs ut, användbart då du vill klistra in i dokument. Normal stil är den av människor läsbara 
utskriftsstilen som är standard för <application>Genius matematikverktyg</application>. De andra stilarna är 
för textsättning i LaTeX, MathML (XML) eller i Troff.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+   </sect1> 
+
+    <sect1 id="genius-prefs-precision"> 
+      <title>Precision</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Flyttalsprecision</guilabel>
+      </term> 
+         <listitem>
+        <para>Flyttalsprecisionen i bitar (<link 
linkend="gel-function-FloatPrecision"><function>FloatPrecision</function></link>). Observera att ändra denna 
endast påverkar nya beräknade kvantiteter. Gamla värden som är lagrade i variabler är uppenbarligen 
fortfarande i den gamla precisionen och om du vill ha dem mer exakta måste du räkna ut dem på nytt. Undantag 
till detta är systemkonstanterna som <link linkend="gel-function-pi"><function>pi</function></link> eller 
<link linkend="gel-function-e"><function>e</function></link>.</para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term> 
+           <guilabel>Kom ihåg precisionsinställning mellan sessioner</guilabel>
+      </term> 
+         <listitem>
+        <para>Ska precisionsinställningen kommas ihåg för nästa session. Om ej ikryssad används antingen 
standardinställningen eller någon tidigare sparad inställning varje gång Genius startar. Observera att 
inställningar sparas i slutet på varje session, så om du vill ändra standardinställningen kryssa i denna 
ruta, starta om genius och kryssa sedan ur den igen.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-terminal"> 
+      <title>Terminal</title> 
+
+      <para>Terminalen avser konsolen i arbetsytan.</para>
+
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Tidigare rader sparade</guilabel>
+      </term> 
+         <listitem>
+        <para>Rader historik i terminalen.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Typsnitt</guilabel>
+      </term> 
+         <listitem>
+        <para>Typsnittet att använda i terminalen.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Svart på vitt</guilabel>
+      </term> 
+         <listitem>
+        <para>Om svart text på vit bakgrund ska användas i terminalen.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term> 
+           <guilabel>Blinkande markör</guilabel>
+      </term> 
+         <listitem>
+        <para>Om markören i terminalen ska blinka då terminalen är fokuserad. Detta kan ibland vara 
irriterande och det genererar meningslös trafik om du fjärranvänder Genius.</para>
+         </listitem>
+       </varlistentry>
+      </variablelist> 
+    </sect1> 
+
+    <sect1 id="genius-prefs-memory"> 
+      <title>Minne</title> 
+      <variablelist> 
+       <varlistentry>
+         <term> 
+           <guilabel>Maximalt antal noder att allokera</guilabel>
+      </term> 
+         <listitem>
+        <para>Internt stoppas alla data i små noder i minnet. Detta ger en gräns för det största antalet 
noder som kan allokeras för beräkningar. Denna gräns förhindrar problemet med att få slut minne om du av 
misstag gör något som använder för mycket minne, som en rekursion utan slut. Detta skulle kunna sakta ner din 
dator och göra det svårt att ens avbryta programmet.</para>
+        <para>Då gränsen har nåtts frågar <application>Genius matematikverktyg</application> om du vill 
avbryta beräkningen eller om du vill fortsätta. Om du fortsätter kommer ingen gräns att tillämpas och det 
kommer vara möjligt att köra tills din dator få slut minne. Gränsen kommer att tillämpas igen nästa gång du 
kör ett program eller uttryck på konsolen oavsett hur du besvarade frågan.</para>
+        <para>Att ställa in gränsen till noll innebär att det inte finns någon gräns för mängden minne som 
genius använder.</para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist> 
+    </sect1> 
+
+  </chapter>
+
+<!-- ============= About ====================================== -->
+  <chapter id="genius-about"> 
+    <title>Om <application>Genius matematikverktyg</application></title> 
+
+    <para><application>Genius matematikverktyg</application> skrevs av Jiří (George) Lebl (<email>jirka 5z 
com</email>). Historien för <application>Genius matematikverktyg</application> går tillbaka till sent i 1997. 
Det var det första miniräknarprogrammet för GNOME, men sedan växte det bortom att bara vara en miniräknare 
för skrivbordet. För att hitta mer information om <application>Genius matematikverktyg</application>, besök 
<ulink url="http://www.jirka.org/genius.html"; type="http">Genius webbsida</ulink>.</para>
+    <para>För att rapportera ett fel eller lämna ett förslag för detta program eller denna handbok, skicka 
ett e-postmeddelande till mig (upphovsmannen) eller skicka ett meddelande till sändlistan (se 
webbsidan).</para>
+
+    <para>Detta program distribueras under villkoren i GNU General Public License, publicerad av Free 
Software Foundation, antingen version 3 eller (om du så vill) någon senare version. En kopia av denna licens 
kan hittas på denna <ulink url="http://www.gnu.org/copyleft/gpl.html"; type="http">länk</ulink> eller i filen 
COPYING inkluderad med källkoden i detta program.</para>
+
+    <para>Jiří Lebl fick under diverse delar av utvecklingen stöd för arbetet av NSF-stipendierna DMS 
0900885, DMS 1362337, the University of Illinois at Urbana-Champaign, the University of California at San 
Diego, the University of Wisconsin-Madison och Oklahoma State University. Programvaran har använts både för 
undervisning och forskning.</para>
+
+  </chapter>
+
+</book>
diff --git a/help/sv/html/index.html b/help/sv/html/index.html
index 84a2e7f..a1e3689 100644
--- a/help/sv/html/index.html
+++ b/help/sv/html/index.html
@@ -57,6 +57,6 @@
                        EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
                        THE POSSIBILITY OF SUCH DAMAGES.
                  </p></li></ol></div><p>
-       </p></div></div><div><div class="legalnotice"><a name="idm45627246786624"></a><p 
class="legalnotice-title"><b>Återkoppling</b></p><p>För att rapportera ett fel eller komma med ett förslag 
för programmet <span class="application">Genius matematikverktyg</span> eller denna handbok, besök <a 
class="ulink" href="http://www.jirka.org/genius.html"; target="_top">webbsidan för Genius</a> eller skicka mig 
ett e-postmeddelande på <code class="email">&lt;<a class="email" href="mailto:jirka 5z com">jirka 5z 
com</a>&gt;</code>.</p></div></div><div><div class="revhistory"><table style="border-style:solid; 
width:100%;" summary="Revisionshistorik"><tr><th align="left" valign="top" 
colspan="2"><b>Revisionshistorik</b></th></tr><tr><td align="left">Revision 0.2</td><td 
align="left">September 2016</td></tr><tr><td align="left" colspan="2"> 
+       </p></div></div><div><div class="legalnotice"><a name="idm51"></a><p 
class="legalnotice-title"><b>Återkoppling</b></p><p>För att rapportera ett fel eller komma med ett förslag 
för programmet <span class="application">Genius matematikverktyg</span> eller denna handbok, besök <a 
class="ulink" href="http://www.jirka.org/genius.html"; target="_top">webbsidan för Genius</a> eller skicka mig 
ett e-postmeddelande på <code class="email">&lt;<a class="email" href="mailto:jirka 5z com">jirka 5z 
com</a>&gt;</code>.</p></div></div><div><div class="revhistory"><table style="border-style:solid; 
width:100%;" summary="Revisionshistorik"><tr><th align="left" valign="top" 
colspan="2"><b>Revisionshistorik</b></th></tr><tr><td align="left">Revision 0.2</td><td 
align="left">September 2016</td></tr><tr><td align="left" colspan="2"> 
                        <p class="author">Jiri (George) Lebl <code class="email">&lt;<a class="email" 
href="mailto:jirka 5z com">jirka 5z com</a>&gt;</code></p>
                </td></tr></table></div></div><div><div class="abstract"><p 
class="title"><b>Sammanfattning</b></p><p>Handbok för Genius 
matteverktyg.</p></div></div></div><hr></div><div class="toc"><p><b>Innehållsförteckning</b></p><dl 
class="toc"><dt><span class="chapter"><a href="ch01.html">1. Introduktion</a></span></dt><dt><span 
class="chapter"><a href="ch02.html">2. Komma igång</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch02.html#genius-to-start">För att starta <span class="application">Genius 
matematikverktyg</span></a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Då du startar 
Genius</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Grundläggande 
användning</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#genius-usage-workarea">Använda 
arbetsytan</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">För att skapa ett nytt 
program</a></span></dt><dt><span class="sect1"><a href="ch03s03.html">Att ö
 ppna eller köra ett program</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. 
Grafritning</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch04.html#genius-line-plots">Linjegrafer</a></span></dt><dt><span class="sect1"><a 
href="ch04s02.html">Parametriska grafer</a></span></dt><dt><span class="sect1"><a 
href="ch04s03.html">Riktningsfältsgrafer</a></span></dt><dt><span class="sect1"><a 
href="ch04s04.html">Vektorfältsgrafer</a></span></dt><dt><span class="sect1"><a 
href="ch04s05.html">Ytgrafer</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. 
Grunderna i GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch05.html#genius-gel-values">Värden</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-numbers">Tal</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-booleans">Booleska värden</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-
 strings">Strängar</a></span></dt><dt><span class="sect2"><a 
href="ch05.html#genius-gel-values-null">Null</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="ch05s02.html">Använda variabler</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05s02.html#genius-gel-variables-setting">Ställa in variabler</a></span></dt><dt><span 
class="sect2"><a href="ch05s02.html#genius-gel-variables-built-in">Inbyggda 
variabler</a></span></dt><dt><span class="sect2"><a href="ch05s02.html#genius-gel-previous-result">Variabel 
för föregående resultat</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch05s03.html">Använda 
funktioner</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-defining">Definiera funktioner</a></span></dt><dt><span 
class="sect2"><a href="ch05s03.html#genius-gel-functions-variable-argument-lists">Variabla 
argumentlistor</a></span></dt><dt><span class="sect2"><a href="ch05s03.html#genius-gel-functions-passing-fu
 nctions">Skicka funktioner till funktioner</a></span></dt><dt><span class="sect2"><a 
href="ch05s03.html#genius-gel-functions-operations">Operationer på 
funktioner</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="ch05s04.html">Avskiljare</a></span></dt><dt><span class="sect1"><a 
href="ch05s05.html">Kommentarer</a></span></dt><dt><span class="sect1"><a 
href="ch05s06.html">Moduloberäkning</a></span></dt><dt><span class="sect1"><a href="ch05s07.html">Lista över 
GEL-operatorer</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch06.html">6. Programmering med 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch06.html#genius-gel-conditionals">Villkor</a></span></dt><dt><span class="sect1"><a 
href="ch06s02.html">Slingor</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loops-while">While-slingor</a></span></dt><dt><span class="sect2"><a 
href="ch06s02.html#genius-gel-loops-for">For-slingor</a></span></dt><dt><span class="s
 ect2"><a href="ch06s02.html#genius-gel-loops-foreach">Foreach-slingor</a></span></dt><dt><span 
class="sect2"><a href="ch06s02.html#genius-gel-loops-break-continue">Break och 
Continue</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch06s03.html">Summor och 
produkter</a></span></dt><dt><span class="sect1"><a 
href="ch06s04.html">Jämförelseoperatorer</a></span></dt><dt><span class="sect1"><a 
href="ch06s05.html">Globala variabler och räckvidd för variabler</a></span></dt><dt><span class="sect1"><a 
href="ch06s06.html">Parametervariabler</a></span></dt><dt><span class="sect1"><a 
href="ch06s07.html">Returnera</a></span></dt><dt><span class="sect1"><a 
href="ch06s08.html">Referenser</a></span></dt><dt><span class="sect1"><a 
href="ch06s09.html">Vvärden</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch07.html">7. 
Avancerad programmering med GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch07.html#genius-gel-error-handling">Felhantering</a></span>
 </dt><dt><span class="sect1"><a href="ch07s02.html">Toppnivåsyntax</a></span></dt><dt><span class="sect1"><a 
href="ch07s03.html">Returnera funktioner</a></span></dt><dt><span class="sect1"><a 
href="ch07s04.html">Verkligt lokala variabler</a></span></dt><dt><span class="sect1"><a 
href="ch07s05.html">Uppstartsprocedur för GEL</a></span></dt><dt><span class="sect1"><a 
href="ch07s06.html">Läsa in program</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch08.html">8. 
Matriser i GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch08.html#genius-gel-matrix-support">Mata in matriser</a></span></dt><dt><span class="sect1"><a 
href="ch08s02.html">Konjugattransponat och transponatoperator</a></span></dt><dt><span class="sect1"><a 
href="ch08s03.html">Linjär algebra</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch09.html">9. 
Polynom i GEL</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch09.html#genius-gel-polynomials-using">Använda polynom<
 /a></span></dt></dl></dd><dt><span class="chapter"><a href="ch10.html">10. Mängdlära i 
GEL</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch10.html#genius-gel-sets-using">Använda 
mängder</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch11.html">11. Lista över 
GEL-funktioner</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch11.html#genius-gel-function-list-commands">Kommandon</a></span></dt><dt><span class="sect1"><a 
href="ch11s02.html">Grundläggande</a></span></dt><dt><span class="sect1"><a 
href="ch11s03.html">Parametrar</a></span></dt><dt><span class="sect1"><a 
href="ch11s04.html">Konstanter</a></span></dt><dt><span class="sect1"><a href="ch11s05.html">Numeriska 
funktioner</a></span></dt><dt><span class="sect1"><a 
href="ch11s06.html">Trigonometri</a></span></dt><dt><span class="sect1"><a 
href="ch11s07.html">Talteori</a></span></dt><dt><span class="sect1"><a 
href="ch11s08.html">Matrismanipulation</a></span></dt><dt><span class="sect1"><a h
 ref="ch11s09.html">Linjär algebra</a></span></dt><dt><span class="sect1"><a 
href="ch11s10.html">Kombinatorik</a></span></dt><dt><span class="sect1"><a 
href="ch11s11.html">Kalkyl</a></span></dt><dt><span class="sect1"><a 
href="ch11s12.html">Funktioner</a></span></dt><dt><span class="sect1"><a 
href="ch11s13.html">Ekvationslösning</a></span></dt><dt><span class="sect1"><a 
href="ch11s14.html">Statistik</a></span></dt><dt><span class="sect1"><a 
href="ch11s15.html">Polynom</a></span></dt><dt><span class="sect1"><a 
href="ch11s16.html">Mängdlära</a></span></dt><dt><span class="sect1"><a href="ch11s17.html">Kommutativ 
algebra</a></span></dt><dt><span class="sect1"><a href="ch11s18.html">Diverse</a></span></dt><dt><span 
class="sect1"><a href="ch11s19.html">Symboliska operationer</a></span></dt><dt><span class="sect1"><a 
href="ch11s20.html">Grafritning</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch12.html">12. 
Exempelprogram i GEL</a></span></dt><dt><span class="cha
 pter"><a href="ch13.html">13. Inställningar</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="ch13.html#genius-prefs-output">Utdata</a></span></dt><dt><span class="sect1"><a 
href="ch13s02.html">Precision</a></span></dt><dt><span class="sect1"><a 
href="ch13s03.html">Terminal</a></span></dt><dt><span class="sect1"><a 
href="ch13s04.html">Minne</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch14.html">14. Om <span 
class="application">Genius matematikverktyg</span></a></span></dt></dl></div><div 
class="list-of-figures"><p><b>Figurförteckning</b></p><dl><dt>2.1. <a 
href="ch02s02.html#mainwindow-fig"><span class="application">Genius 
matematikverktyg</span>-fönstret</a></dt><dt>4.1. <a href="ch04.html#lineplot-fig">Skapa 
graf-fönster</a></dt><dt>4.2. <a href="ch04.html#lineplot2-fig">Graffönster</a></dt><dt>4.3. <a 
href="ch04s02.html#paramplot-fig">Flik för parametriska grafer</a></dt><dt>4.4. <a 
href="ch04s02.html#paramplot2-fig">Parametrisk graf</a></dt><d
 t>4.5. <a href="ch04s05.html#surfaceplot-fig">Ytgraf</a></dt></dl></div></div><div 
class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> 
</td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" 
href="ch01.html">Nästa</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" 
align="center"> </td><td width="40%" align="right" valign="top"> Kapitel 1. 
Introduktion</td></tr></table></div></body></html>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]