<?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.27">
<!ENTITY date "October 2021">
<!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="messages">
<!-- please do not change the id; for translations, change lang to -->
<!-- appropriate code -->
  <bookinfo>
	  <abstract role="description"><para>Εγχειρίδιο για το εργαλείο μαθηματικών.</para></abstract>
    <title>Εγχειρίδιο Genius</title>       

    <copyright lang="en">
      <year>1997-2021</year>
      <holder>Jiří (George) Lebl</holder>
    </copyright>
    <copyright lang="en">
      <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>Χορηγείται άδεια αντιγραφής, διανομής και/ή τροποποίησης του παρόντος εγγράφου υπό τους όρους της έκδοσης 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 lang="en">
	  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 lang="en">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 lang="en">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" lang="en"> 
		<firstname>Jiří</firstname> 
		<surname>Lebl</surname> 
		<affiliation> 
	  		<orgname>Oklahoma State University</orgname> 
	  		<address> <email>jiri.lebl@gmail.com</email> </address> 
		</affiliation> 
      </author> 
      <author lang="en"> 
		<firstname>Kai</firstname> 
		<surname>Willadsen</surname> 
		<affiliation> 
	  		<orgname>University of 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>jiri.lebl@gmail.com</email>
	  		</para>
		</revdescription> 
      </revision> 
    </revhistory> 
-->

    <revhistory>
      <revision lang="en"> 
		<revnumber>0.2</revnumber> 
		<date>October 2021</date> 
		<revdescription> 
	  		<para role="author" lang="en">Jiri (George) Lebl
	    	<email>jiri.lebl@gmail.com</email>
	  		</para>
		</revdescription> 
      </revision> 
    </revhistory>
    <releaseinfo lang="en">This manual describes version 1.0.27 of Genius.
    </releaseinfo> 
    <legalnotice> 
      <title>Aνάδραση</title> 
      <para lang="en">
	      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>jiri.lebl@gmail.com</email>.
      </para>
<!-- Translators may also add here feedback address for translations -->
    </legalnotice> 
  </bookinfo> 

<!-- ============= Introduction =============================== -->
  <chapter id="genius-introduction"> 
    <title>Εισαγωγή</title> 
    <para lang="en">
	The <application>Genius Mathematics Tool</application> application is a general calculator for use as a desktop
        calculator, an educational tool in mathematics and other STEM fields,
	and has found use in 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
	parameters.
    </para> 

    <para lang="en">
	<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.  Parametric plots of curves
	are also supported.  It can plot slope fields,
	vector fields and draw their solutions.  The plots can be exported
	to several formats.
	The command line version does not require GNOME, but
	does not implement any feature that requires the graphical interface,
	such as plotting
    </para> 

    <para lang="en">
	    Parts of this manual describe the graphical version of the calculator.
	    The language that both versions use is the same, it is simply the
	    graphical features such as plotting that are unique to the GUI version.
    </para>

    <para lang="en">
	    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 lang="en">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 lang="en"> 
            <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>File</guilabel>,
<guilabel>Edit</guilabel>, <guilabel>Calculator</guilabel>,
<guilabel>Examples</guilabel>,
<guilabel>Programs</guilabel>,
<guilabel>Settings</guilabel>, and <guilabel>Help</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 lang="en">
		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 lang="en">
		   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 lang="en">
		   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 lang="en">
	    	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 lang="en">
	      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 lang="en"><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
</screen>
or
<screen lang="en"><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
</screen>
or
<screen lang="en"><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
</screen>
or
<screen lang="en"><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 lang="en">
To get a list of functions and commands, type:
<screen lang="en"><prompt>genius&gt; </prompt><userinput>help</userinput>
</screen>
If you wish to get more help on a specific function, type:
<screen lang="en"><prompt>genius&gt; </prompt><userinput>help FunctionName</userinput>
</screen>
To view this manual, type:
<screen lang="en"><prompt>genius&gt; </prompt><userinput>manual</userinput>
</screen>
</para>
<para lang="en">
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 lang="en"><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 lang="en">
	      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; really just a file with many commands.
      </para>
      <para lang="en">
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 lang="en">
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 lang="en">
	      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 lang="en">
	      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 lang="en">
	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).  And by the words line plot, we mean plots in the plane,
	as opposed to surface plots, which are in three dimensions.
      </para>
      <para>Μόλις πατήσετε το κουμπί <guilabel>Γραφική παράσταση</guilabel>, ανοίγει ένα παράθυρο με κάποια σημειωματάρια σε αυτό. Πρέπει να είσαστε στην καρτέλα σημειωματαρίου <guilabel>Συνάρτηση γραμμικής γραφικής παράστασης</guilabel> και μέσα σε αυτό να είσαστε στην καρτέλα σημειωματαρίου <guilabel>Συναρτήσεις / εκφράσεις</guilabel>. Δείτε <xref linkend="lineplot-fig"/>.</para>

      <figure id="lineplot-fig"> 
        <title>Δημιουργία παραθύρου γραφικής παράστασης</title> 
        <screenshot> 
          <mediaobject lang="en"> 
            <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 lang="en">
	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.  In the boxes for the ranges, simple expressions are allowed,
	such as <userinput>2*pi</userinput> or <userinput>10^3</userinput>.
	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 lang="en">
	      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 lang="en"> 
            <imageobject>
              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
            </imageobject>
            <textobject> 
              <phrase>The graph produced.</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 lang="en"> 
            <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>Ένα παράδειγμα των παραμετρικών γραφικών παραστάσεων δίνεται στο <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 lang="en"> 
            <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>Γραφικές παραστάσεις πεδίου κλίσεων</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 lang="en">
	      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 lang="en"> 
            <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 lang="en">
	      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 lang="en">
Integers are the first type of number in GEL. Integers are written in the normal way.
<programlisting lang="en">1234
</programlisting>
Hexadecimal and octal numbers can be written using C notation. For example:
<programlisting lang="en">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 lang="en">23\1234ABCD
</programlisting>
        </para>

        <para lang="en">
The second type of GEL number is rationals. Rationals are simply achieved by dividing two integers. So one could write:
<programlisting lang="en">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 lang="en">1 3/10
</programlisting>
        </para>

        <para lang="en">
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 lang="en">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 lang="en">
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 lang="en">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 lang="en">
In addition, you can do arithmetic with Boolean values. For example:
<programlisting lang="en">( (1 + true) - false ) * true
</programlisting>
is the same as:
<programlisting lang="en">( (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 lang="en">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>Συμβολοσειρές</title>
        <para lang="en">
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 lang="en">a=2+3;"The result is: "+a
</programlisting>
will create the string:
<programlisting lang="en">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 lang="en">"Slash: \\ Quotes: \" Tabs: \t1\t2\t3"
</programlisting>
will make a string:
<programlisting lang="en">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 lang="en">
		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 lang="en">string(22)
</programlisting>
will return
<programlisting lang="en">"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 lang="en">
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 lang="en">
Example:
<programlisting lang="en">x=5;.
x=5;
</programlisting>
        </para>
<para>Κάποιες συναρτήσεις επιστρέφουν <constant>null</constant>, όταν καμιά τιμή δεν μπορεί να επιστραφεί ή όταν συμβαίνει ένα σφάλμα. Επίσης η <constant>null</constant> χρησιμοποιείται ως ένα κενό διάνυσμα ή πίνακας, ή μια κενή αναφορά.</para>
      </sect2>

    </sect1>

    <sect1 id="genius-gel-variables">
      <title>Χρήση μεταβλητών</title>

      <para lang="en">
Syntax:
<programlisting lang="en">VariableName
</programlisting>
Example:
<screen lang="en"><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 lang="en">
Syntax:
<programlisting lang="en"><![CDATA[<identifier> = <value>
<identifier> := <value>]]>
</programlisting>
Example:
<programlisting lang="en">x = 3
x := 3
</programlisting>
        </para>

        <para lang="en">
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 lang="en">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>Για περισσότερες πληροφορίες σχετικά με την εμβέλεια των μεταβλητών, δηλαδή, πότε είναι ορατές οι μεταβλητές, δείτε <xref linkend="genius-gel-variables-global"/>.</para>
      </sect2>

      <sect2 id="genius-gel-variables-built-in">
        <title>Ενσωματωμένες μεταβλητές</title>
        <para lang="en">
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 lang="en">
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 lang="en">Ans+389
</programlisting>
        </para>
      </sect2>
    </sect1>

    <sect1 id="genius-gel-functions">
      <title>Χρησιμοποίηση συναρτήσεων</title>

      <para lang="en">
Syntax:
<programlisting lang="en">FunctionName(argument1, argument2, ...)
</programlisting>
Example:
<programlisting lang="en">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>Υπάρχουν πολλές ενσωματωμένες συναρτήσεις, όπως οι <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 lang="en">
Syntax:
<programlisting lang="en"><![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 lang="en">
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 lang="en">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>Κατάλογοι ορισμάτων μεταβλητής</title>
        <para lang="en">
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 lang="en">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>Πέρασμα συναρτήσεων σε συναρτήσεις</title>

        <para>Στο Genius, είναι δυνατό να περάσετε μια συνάρτηση ως ένα όρισμα σε μια άλλη συνάρτηση. Αυτό μπορεί να γίνει χρησιμοποιώντας είτε ‘κόμβους συνάρτησης’ ή ανώνυμες συναρτήσεις.</para>

        <para lang="en">
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 lang="en">function f(a,b) = a(b)+1;
function b(x) = x*x;
f(b,2)
</programlisting>
        </para>
        <para lang="en">
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 lang="en"><![CDATA[function(<comma separated arguments>) = <function body>
`(<comma separated arguments>) = <function body>
]]></programlisting>
Example:
<programlisting lang="en">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 lang="en">
	      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 lang="en">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 lang="en">`(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 lang="en">f = exp(sin*cos+4)
</programlisting>
It can also be used in plotting. For example, to plot sin squared you can enter:
<programlisting lang="en">LinePlot(sin^2)
</programlisting>
      </para>

      <warning>
        <para>Δεν μπορούν όλες οι συναρτήσεις να χρησιμοποιηθούν κατ' αυτόν τον τρόπο. Για παράδειγμα, όταν χρησιμοποιείτε μια δυαδική πράξη οι συναρτήσεις πρέπει να παίρνουν τον ίδιο αριθμό ορισμάτων.</para>
      </warning>
    </sect2>


    </sect1>

    <sect1 id="genius-gel-separator">
      <title>Διαχωριστικό</title>
      <para lang="en">
	      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 lang="en">3 ; 5
</programlisting>
This expression will yield 5.
      </para>
      <para lang="en">
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 a loop,
or if you handle the return differently.
      </para>
      <para lang="en">
	      If you are typing expressions in a program file you do not have to add a semicolon.  In this case
	      genius will simply print the return value whenever it executes the expression.  This is the same
	      as when typing on the command line.  However, do note that if you are defining a
	      function, the body of the function is a single expression.  Usually, therefore, if a function body is
	      long, you will need to enclose it in parentheses.
      </para>
    </sect1>

    <sect1 id="genius-gel-comments">
      <title>Σχόλια</title>
      <para lang="en">
	      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 lang="en"># 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 lang="en">
	      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 lang="en">
	      The inverses of numbers mod some integer are computed by writing them as
rational numbers (as long as the desired inverse exists, of course).
Examples:
<programlisting lang="en">10^-1 mod 101
1/10 mod 101</programlisting>
Modular evaluation also works with matrices including taking inverses,
powers, and dividing.
Example:
<programlisting lang="en">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 lang="en">
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 lang="en">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>Μην συνδέετε τελεστές mod, απλά τοποθετήστε τους στο τέλος του υπολογισμού, όλοι οι υπολογισμοί στην παράσταση στα αριστερά θα εκτελεστούν σε αριθμητική mod. Αν βάλετε μια mod μέσα σε μια mod, θα πάρετε απροσδόκητα αποτελέσματα. Αν θέλετε απλά να πάρετε υπόλοιπο ενός απλού αριθμού και να ελέγξετε ακριβώς πότε παίρνονται υπόλοιπα, καλύτερα να χρησιμοποιήσετε τον τελεστή <literal>%</literal>. Όταν χρειάζεται να συνδέσετε αρκετές παραστάσεις σε αριθμητική υπολοίπων με διαφορετικούς διαιρέτες, μπορεί να είναι καλύτερο να χωρίσετε απλά την παράσταση σε αρκετές και να χρησιμοποιήσετε προσωρινές μεταβλητές για να αποφύγετε ένα mod μέσα σε ένα mod.</para>
    </sect1>

    <sect1 id="genius-gel-operator-list">
      <title>Κατάλογος τελεστών GEL</title>

      <para lang="en">
	      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 lang="en"><userinput>a;b</userinput></term>
         <listitem>
           <para>Το διαχωριστικό, δίνει και την <varname>a</varname> και την <varname>b</varname>, αλλά επιστρέφει μόνο το αποτέλεσμα της <varname>b</varname>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><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 lang="en"><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 lang="en"><userinput>|a|</userinput></term>
         <listitem>
           <para lang="en">
		   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 lang="en"><userinput>a^b</userinput></term>
         <listitem>
           <para>Εκθετοποίηση, ανυψώνει μια <varname>a</varname> στη δύναμη <varname>b</varname>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><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 lang="en"><userinput>a+b</userinput></term>
         <listitem>
           <para>Πρόσθεση. Προσθέτει δύο αριθμούς, πίνακες, συναρτήσεις ή συμβολοσειρές. Αν προσθέτετε μια συμβολοσειρά σε ο,τιδήποτε το αποτέλεσμα θα είναι απλά μια συμβολοσειρά. Αν ο ένας είναι ένας τετραγωνικός πίνακας και ο άλλος ένας αριθμός, τότε ο αριθμός πολλαπλασιάζεται με τον ταυτοτικό πίνακα.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a-b</userinput></term>
         <listitem>
           <para>Αφαίρεση. Αφαιρεί δύο αριθμούς, πίνακες ή συναρτήσεις.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a*b</userinput></term>
         <listitem>
           <para>Πολλαπλασιασμός. Αυτός είναι ο κανονικός πίνακας πολλαπλασιασμού.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a.*b</userinput></term>
         <listitem>
           <para>Πολλαπλασιασμός στοιχείο με στοιχείο αν οι <varname>a</varname> και <varname>b</varname> είναι πίνακες.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a/b</userinput></term>
         <listitem>
           <para>Διαίρεση. Όταν οι <varname>a</varname> και <varname>b</varname> είναι μόνο αριθμοί, αυτή είναι η κανονική διαίρεση. Όταν είναι πίνακες, τότε αυτή είναι ισοδύναμη με <userinput>a*b^-1</userinput>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a./b</userinput></term>
         <listitem>
           <para lang="en">
		   Element by element division.  Same as <userinput>a/b</userinput> for
		   numbers, but operates element by element on matrices.
           </para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a\b</userinput></term>
         <listitem>
           <para>Οπίσθια διαίρεση. Είναι η ίδια με <userinput>b/a</userinput>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a.\b</userinput></term>
         <listitem>
           <para>Οπίσθια διαίρεση στοιχείου με στοιχείο.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a%b</userinput></term>
         <listitem>
           <para lang="en">
	     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 lang="en"><userinput>a.%b</userinput></term>
         <listitem>
           <para lang="en">
             Element by element mod operator.  Returns the remainder
	     after element by element integer division
	     <userinput>a./b</userinput>.
           </para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><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 lang="en"><userinput>a!</userinput></term>
         <listitem>
           <para>Παραγοντικός τελεστής. Αυτό είναι παρόμοιο με <userinput>1*...*(n-2)*(n-1)*n</userinput>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a!!</userinput></term>
         <listitem>
           <para>Διπλός παραγοντικός τελεστής. Αυτός είναι παρόμοιος με <userinput>1*...*(n-4)*(n-2)*n</userinput>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a==b</userinput></term>
         <listitem>
           <para>Τελεστής ισότητας. Επιστρέφει <constant>αληθές</constant> ή <constant>ψευδές</constant> ανάλογα με το αν οι <varname>a</varname> και <varname>b</varname> είναι ίσες ή όχι.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a!=b</userinput></term>
         <listitem>
           <para>Τελεστής ανισότητας, επιστρέφει <constant>αληθές</constant> αν η <varname>a</varname> δεν είναι ίση με την <varname>b</varname>, αλλιώς επιστρέφει <constant>ψευδές</constant>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a&lt;&gt;b</userinput></term>
         <listitem>
           <para>Εναλλακτικός τελεστής ανισότητας, επιστρέφει <constant>αληθές</constant> αν η <varname>a</varname> δεν είναι ίση με την <varname>b</varname>, αλλιώς επιστρέφει <constant>ψευδές</constant>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><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 lang="en"><userinput>a&gt;=b</userinput></term>
         <listitem>
           <para lang="en">
             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 lang="en"><userinput>a&lt;b</userinput></term>
         <listitem>
           <para lang="en">
             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 lang="en"><userinput>a&gt;b</userinput></term>
         <listitem>
           <para lang="en">
             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 lang="en"><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 lang="en"><userinput>a and b</userinput></term>
         <listitem>
           <para>Λογικό και. Επιστρέφει αληθές αν αμφότερα τα <varname>a</varname> και <varname>b</varname> είναι αληθή, αλλιώς επιστρέφει ψευδές. Αν είναι δοσμένοι οι αριθμοί, οι μη μηδενικοί αριθμοί αντιμετωπίζονται ως αληθείς.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a or b</userinput></term>
         <listitem>
           <para lang="en">
             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 lang="en"><userinput>a xor b</userinput></term>
         <listitem>
           <para lang="en">
             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 lang="en"><userinput>not a</userinput></term>
         <listitem>
           <para lang="en">
		   Logical not.  Returns the logical negation of <varname>a</varname>.
           </para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>-a</userinput></term>
         <listitem>
           <para lang="en">
             Negation operator.  Returns the negative of a number or a matrix (works element-wise on a matrix).
           </para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>&amp;a</userinput></term>
         <listitem>
           <para>Αναφορά μεταβλητής (για το πέρασμα μιας αναφοράς σε μια μεταβλητή). Δείτε <xref linkend="genius-gel-references"/>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>*a</userinput></term>
         <listitem>
           <para>Αποαναφορά μεταβλητής (για πρόσβαση σε μια αναφερθείσα μεταβλητή). Δείτε <xref linkend="genius-gel-references"/>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><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 lang="en"><userinput>a.'</userinput></term>
         <listitem>
           <para>Η αναστροφή πίνακα, δεν παίρνει τον συζυγή μιγαδικό των καταχωρίσεων. Δηλαδή, τα στοιχεία i,j της <varname>a</varname> γίνονται τα στοιχεία του <userinput>a.'</userinput>.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a@(b,c)</userinput></term>
         <listitem>
           <para lang="en">
	     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 lang="en"><userinput>a@(b,)</userinput></term>
         <listitem>
           <para>Λήψη γραμμής ενός πίνακα (ή πολλαπλών γραμμών αν το <varname>b</varname> είναι ένα διάνυσμα).</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a@(b,:)</userinput></term>
         <listitem>
           <para>Ίδιο με το παραπάνω.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a@(,c)</userinput></term>
         <listitem>
           <para>Λήψη στήλης ενός πίνακα (ή στηλών αν το <varname>c</varname> είναι ένα διάνυσμα).</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a@(:,c)</userinput></term>
         <listitem>
           <para>Ίδιο με το παραπάνω.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a@(b)</userinput></term>
         <listitem>
           <para>Λήψη ενός στοιχείου από έναν πίνακα αντιμετωπίζοντας τον ως διάνυσμα. Αυτό θα διατρέξει τον πίνακα κατά τη γραμμή.</para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a:b</userinput></term>
         <listitem>
           <para lang="en">
             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 lang="en">A@(2:4,)
	     </programlisting>
	     as <userinput>2:4</userinput> will return a vector
	     <userinput>[2,3,4]</userinput>.
           </para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>a:b:c</userinput></term>
         <listitem>
           <para lang="en">
	     Build a vector from <varname>a</varname> to <varname>c</varname>
	     with <varname>b</varname> as a step.  That is for example
	     <programlisting lang="en">genius&gt; 1:2:9
=
`[1, 3, 5, 7, 9]
</programlisting>
           </para>
	   <para lang="en">
	     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 lang="en"><userinput>(a)i</userinput></term>
         <listitem>
           <para lang="en">
	     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 lang="en">(a)*1i
	     </programlisting>
           </para>
         </listitem>
        </varlistentry>


        <varlistentry>
         <term lang="en"><userinput>`a</userinput></term>
         <listitem>
           <para>Βάλτε ` σε ένα αναγνωριστικό έτσι ώστε να μην υπολογιστεί. Ή βάλτε ` σε έναν πίνακα, έτσι ώστε να μην επεκταθεί.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term lang="en"><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 lang="en"><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 lang="en"><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 lang="en">
Syntax:
<programlisting lang="en"><![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 lang="en">
Examples:
<programlisting lang="en"><![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 lang="en">if a=5 then a=a-1
</programlisting>
will be interpreted as:
<programlisting lang="en">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 lang="en">
Syntax:
<programlisting lang="en"><![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 lang="en">
Syntax:
<programlisting lang="en"><![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 lang="en">for i = 1 to 20 by 2 do print(i)
</programlisting>
        </para>
        <para lang="en">
		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 lang="en">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 lang="en">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 lang="en">
Syntax:
<programlisting lang="en"><![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 lang="en">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 lang="en">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 lang="en">
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 lang="en"><![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 lang="en">
Syntax:
<programlisting lang="en"><![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>Αν δεν εκτελεστεί κανένα σώμα (για παράδειγμα <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 lang="en">
	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 lang="en">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>Όλοι οι τελεστές σύγκρισης (εκτός από τον τελεστή <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 lang="en">
	  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 lang="en">
	  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 lang="en">function f() = (a:=5; g());
function g() = print(a);
f();
</programlisting>
        </para>
        <para lang="en">
	  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 lang="en">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>Τα ορίσματα συναρτήσεων είναι ακριβώς όπως οι μεταβλητές που ορίστηκαν μέσα στη συνάρτηση, εκτός από το ότι είναι αρχικοποιημένες με την τιμή που περάστηκε στη συνάρτηση. Πέρα από αυτό το σημείο, αντιμετωπίζονται ακριβώς όπως όλες οι άλλες μεταβλητές που ορίστηκαν μέσα στη συνάρτηση.</para>
	<para lang="en">
	  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 lang="en"><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 lang="en">
	  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 lang="en">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 lang="en">set(`a,3)
</programlisting>
or:
<programlisting lang="en">set("a",3)
</programlisting>
        </para>
        <para>Η συνάρτηση <function>set</function> ορίζει πάντα την καθολική ανωτάτου επιπέδου. Δεν υπάρχει τρόπος να οριστεί μια τοπική μεταβλητή σε κάποια συνάρτηση από μια υπορουτίνα. Αν αυτό απαιτείται, πρέπει να χρησιμοποιηθεί το πέρασμα με αναφορά.</para>
	<para lang="en">
		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 lang="en">
	  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 lang="en"><![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 lang="en">
	  When you undefine a parameter using the
	  <link linkend="gel-function-undefine">
	  <function>undefine</function></link> function, it stops being
	  a parameter.
        </para>
        <para lang="en">
	  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 lang="en">
Example:
<programlisting lang="en"><![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 lang="en">
	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 lang="en"><![CDATA[RayleighQuotientIteration (A,x,0.001,100,&v)
]]></programlisting>
      </para>
      <para>Οι λεπτομέρειες του πώς δουλεύουν οι αναφορές και η σύνταξη είναι παρόμοιες με τη γλώσσα C. Ο τελεστής <literal>&amp;</literal> αναφέρεται σε μια μεταβλητή και το <literal>*</literal> αποαναφέρει μια μεταβλητή. Αμφότεροι μπορούν να εφαρμοστούν μόνο σε ένα αναγνωριστικό, έτσι το <literal>**a</literal> δεν είναι επιτρεπτή παράσταση στο GEL.</para>
      <para lang="en">
References are best explained by an example:
<programlisting lang="en"><![CDATA[a=1;
b=&a;
*b=2;
]]></programlisting>
now <varname>a</varname> contains 2.  You can also reference functions:
<programlisting lang="en"><![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 lang="en">
	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 lang="en"><userinput>a</userinput></term>
    <listitem>
      <para lang="en">
	Identifier.  Here we would be setting the variable of name
	<varname>a</varname>.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term lang="en"><userinput>*a</userinput></term>
    <listitem>
      <para lang="en">
	Dereference of an identifier.  This will set whatever variable
	<varname>a</varname> points to.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term lang="en"><userinput>a@(&lt;region&gt;)</userinput></term>
    <listitem>
      <para lang="en">
	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 lang="en">
Examples:
<programlisting lang="en">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 lang="en">
	For example if you want to check for arguments in your function.  You
could use the following code.
<programlisting lang="en">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 lang="en">
	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 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 lang="en">
	For example,
	<programlisting lang="en">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 lang="en">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 lang="en">function f(x)=(
  y=1;
  for j=1 to x do
    y = y+j;
  y^2
);
</programlisting>
      </para>
      <para lang="en">
	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 lang="en">if Something() then
  DoSomething()
else
  DoSomethingElse()
</programlisting>
      </para>
      <para lang="en">
	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 lang="en">if Something() then (
  DoSomething()
) else (
  DoSomethingElse()
)
</programlisting>
      </para>
    </sect1>

     <sect1 id="genius-gel-returning-functions">
       <title>Επιστροφή συναρτήσεων</title>
	<para lang="en">
	  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 lang="en">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 lang="en">g = f();
g(5)
</programlisting>
	  And <userinput>g(5)</userinput> should return 10.
        </para>
	<para lang="en">
	  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 lang="en">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 lang="en">
	  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 lang="en">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 lang="en">
	  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 lang="en">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>Αληθείς τοπικές μεταβλητές</title>
      <para lang="en">
	When passing functions into other functions, the normal scoping of
	variables might be undesired.  For example:
<programlisting lang="en">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 lang="en">
	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 lang="en">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 lang="en">
	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.
	So the following definition of <function>f</function>
	will also work:
<programlisting lang="en">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 lang="en">
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 lang="en">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 lang="en">cd directory_with_gel_programs
ls *.gel
</programlisting>
      </para>
    </sect1>

  </chapter>

  <!-- ============= Matrices ================================= -->
  <chapter id="genius-gel-matrices">
    <title>Πίνακες στη GEL</title>

    <para lang="en">
      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 lang="en">
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 lang="en">[1,2,3;4,5,6;7,8,9]
</programlisting>
or
<programlisting lang="en">[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 lang="en">
You can also use the matrix expansion functionality to enter matrices.
For example you can do:
<programlisting lang="en">a = [ 1, 2, 3
      4, 5, 6
      7, 8, 9]
b = [ a,  10
      11, 12]
</programlisting>
and you should get
<programlisting lang="en">[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 lang="en">
Another thing is that non-specified spots are initialized to 0, so
<programlisting lang="en">[1, 2, 3
 4, 5
 6]
</programlisting>
will end up being
<programlisting lang="en">
[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 lang="en">
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 lang="en">[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 lang="en">[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 lang="en">
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 lang="en">[1,2,3]
</programlisting>
translates to a polynomial of
<programlisting lang="en">1 + 2*x + 3*x^2
</programlisting>
      </para>
      <para lang="en">
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 lang="en">PolyToString([1,2,3],"y")
</programlisting>
gives
<programlisting lang="en">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 lang="en">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 lang="en">
	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 lang="en"><prompt>genius&gt; </prompt><userinput>MakeSet([1,2,2,3])</userinput>
= [1, 2, 3]
</screen>
</para>

	<para lang="en">
	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 lang="en"><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 lang="en">
	  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 lang="en"><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
= true
</screen>
	The input <userinput>IsIn(x,X)</userinput> is 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 lang="en">
To get help on a specific function from the console type:
<programlisting lang="en">help 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 lang="en">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 lang="en">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 lang="en">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 lang="en">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 lang="en"><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 lang="en">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 lang="en">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 lang="en">Display set of variables.  The variables can be given as
		  strings or identifiers.  For example:
	    <programlisting lang="en">DisplayVariables(`x,`y,`z)
	    </programlisting>
	  </para>
	  <para lang="en">
		  If called without arguments (must supply empty argument list) as
	    <programlisting lang="en">DisplayVariables()
	    </programlisting>
	    then all variables are printed including a stacktrace similar to
	    <guilabel>Show user variables</guilabel> in the graphical version.
	  </para>
	  <para lang="en">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 lang="en">Aliases: <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 lang="en">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 lang="en">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 lang="en">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 lang="en">Version 1.0.7 onwards.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term><anchor id="gel-function-set"/>set</term>
         <listitem>
          <synopsis>set (id,val)</synopsis>
          <para lang="en">Set a global variable.  The <varname>id</varname>
            can be either a string or a quoted identifier.
	    For example:
	    <programlisting lang="en">set(`x,1)
	    </programlisting>
	    will set the global variable <varname>x</varname> to the value 1.
	  </para>
	  <para lang="en">The function returns the <varname>val</varname>, to be
	  usable in chaining.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term lang="en"><anchor id="gel-function-SetElement"/>SetElement</term>
         <listitem>
          <synopsis lang="en">SetElement (id,row,col,val)</synopsis>
	  <para lang="en">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 lang="en">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 lang="en">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 lang="en">The function returns the <varname>val</varname>, to be
	  usable in chaining.</para>
	  <para lang="en">Available from 1.0.18 onwards.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term lang="en"><anchor id="gel-function-SetVElement"/>SetVElement</term>
         <listitem>
          <synopsis lang="en">SetElement (id,elt,val)</synopsis>
	  <para lang="en">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 lang="en">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 lang="en">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 lang="en">The function returns the <varname>val</varname>, to be
	  usable in chaining.</para>
	  <para lang="en">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 lang="en">Aliases: <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 lang="en">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 lang="en">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 lang="en">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 lang="en">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 lang="en">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 lang="en">
	    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 lang="en">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 lang="en">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 lang="en">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 lang="en">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 lang="en">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 lang="en">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 lang="en">
	    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 lang="en">
	    Euler's constant gamma.  Sometimes called the
	    Euler-Mascheroni constant.
	  </para>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">Aliases: <function>conj</function> <function>Conj</function></para>
          <para>Υπολογίζει τον μιγαδικό συζυγή του μιγαδικού αριθμού <varname>z</varname>. Αν η <varname>z</varname> είναι ένα διάνυσμα ή πίνακας, όλα τα στοιχεία του παίρνουν συζυγή.</para>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">Get the imaginary part of a complex number.  For example <userinput>Re(3+4i)</userinput> yields 4.</para>
          <para lang="en">
	    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 lang="en">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 lang="en">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 lang="en">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 lang="en">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 lang="en">
	    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 lang="en">Get the real part of a complex number.  For example <userinput>Re(3+4i)</userinput> yields 3.</para>
          <para lang="en">
	    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 lang="en">Get the lowest integer more than or equal to <varname>n</varname>. Examples:
          <screen lang="en"><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
= 2
<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
= -1
</screen>
           </para>
	   <para lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">Aliases: <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 lang="en">Aliases: <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 lang="en">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 lang="en"><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 lang="en">The square root.  When operating modulo some integer will return either a <constant>null</constant> or a vector of the square roots.  Examples:
          <screen lang="en"><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 lang="en">
	    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 lang="en">Aliases: <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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 it is 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 lang="en">
	    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 lang="en"><prompt>genius&gt;</prompt> <userinput>Factorize(11*11*13)</userinput>
=
[1      11      13
 1      2       1]</screen>
	  </para>
          <para lang="en">
	    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 lang="en">
	    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 to print all the perfect numbers
	    (those that are sums of their factors) up to the number 1000 you
	    could do (this is clearly very inefficient)
	    <programlisting lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    Check an integer for being a perfect square of an integer.  The number must
	    be an integer.  Negative integers are never perfect
	    squares of integers.
	  </para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
         <listitem>
          <synopsis>IsPrime (n)</synopsis>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">Pseudoprime test, returns <constant>true</constant> if and only if
		<userinput>b^(n-1) == 1  mod n</userinput></para>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en"><anchor id="gel-function-AppendElement"/>AppendElement</term>
         <listitem>
          <synopsis lang="en">AppendElement (v,elt)</synopsis>
	  <para lang="en">Append an element to a vector and return the vector.  No expansion is done.  Normally
		  a row vector is built if starting from <constant>null</constant> or a 1-by-1 matrix,
		  but if given a column vector it will properly build a column vector.</para>
         </listitem>
        </varlistentry>

        <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 lang="en">
	   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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">Alias: <function>MakeColumnVector</function></para>
          <para lang="en">Make column vector out of matrix by putting columns above
		  each other.  Returns <constant>null</constant> when given <constant>null</constant>.
		  Can be used to ensure a vector is a column vector.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term lang="en"><anchor id="gel-function-MakeRowVector"/>MakeRowVector</term>
         <listitem>
          <synopsis lang="en">MakeRowVector (A)</synopsis>
	  <para lang="en">Make row vector out of matrix by putting rows one after another.
		  Returns <constant>null</constant> when given <constant>null</constant>.
	          Can be used to ensure a vector is a row vector.</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 lang="en">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 lang="en">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 lang="en">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>Δημιουργεί νέο πίνακα δεδομένου μεγέθους από τον παλιό. Δηλαδή, θα επιστραφεί ένας νέος πίνακας στον οποίον ο παλιός αντιγράφηκε. Οι καταχωρίσεις που δεν ταιριάζουν περικόπτονται και ο πρόσθετος χώρος συμπληρώνεται με μηδενικά. Αν <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 lang="en">Shuffle elements in a vector.  Return <constant>null</constant> if given <constant>null</constant>.</para>
	  <para lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
		  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 lang="en"><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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en"><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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">Return the Smith normal form for square integer matrices over integers.</para>
          <para lang="en">
	    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 lang="en">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).</para>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">Aliases: <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 lang="en">
	    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 lang="en">Aliases: <function>REF</function> <function>RowEchelonForm</function></para>
	  <para>Δίνει την μορφή κλιμακωτής γραμμής ενός πίνακα. Δηλαδή, εφαρμόζει την απαλοιφή Γκάους, αλλά όχι την πίσω πρόσθεση στο <varname>M</varname>. Οι οδηγούσες γραμμές διαιρούνται για να κάνουν όλους τους οδηγούς 1.</para>
          <para lang="en">
	    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 lang="en">Aliases: <function>RREF</function> <function>ReducedRowEchelonForm</function></para>
          <para>Δίνει τη ανηγμένη κλιμακωτή μορφή κατά γραμμές ενός πίνακα. Δηλαδή, εφαρμόζει την απαλοιφή Γκάους μαζί με την πίσω πρόσθεση στο <varname>M</varname>.</para>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">GreedyAlgorithm (n,v)</synopsis>
          <para>Βρίσκει το διάνυσμα <varname>c</varname> μη αρνητικών ακεραίων έτσι ώστε να παίρνει το εσωτερικό γινόμενο με το <varname>v</varname> να είναι ίσο με n. Αν δεν είναι δυνατό, επιστρέφει <constant>null</constant>. Το <varname>v</varname> πρέπει να δίνεται ταξινομημένο με αύξουσα διάταξη και πρέπει να αποτελείται από μη αρνητικούς ακέραιους.</para>
          <para lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    The formula for <userinput>Multinomial(a,b,c)</userinput>
	    can be written as:
<programlisting lang="en">(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 lang="en">
	    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 lang="en">
	    For example with Combinations you would normally write a loop like:
          <screen lang="en"><userinput>for n in Combinations (4,6) do (
  SomeFunction (n)
);</userinput>
</screen>
	    But with NextCombination you would write something like:
          <screen lang="en"><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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">Calculate the number of permutations of size
	   <varname>r</varname> of numbers from 1 to <varname>n</varname>.</para>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">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)</userinput> αναφέρεται στον όρο <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
          <para lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">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 lang="en">
	    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 lang="en">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 lang="en">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 lang="en">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 lang="en">Aliases: <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 lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">Version 1.0.16 onwards.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
         <listitem>
          <synopsis>DirichletKernel (n,t)</synopsis>
	  <para lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Lambert_W_function">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Sinc">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    Example:
          <screen lang="en"><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 lang="en">
		  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 lang="en"><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 lang="en">
	    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 lang="en">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>iteration</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</varname> είναι ο αριθμός των επαναλήψεων που έγιναν.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term><anchor id="gel-function-HalleysMethod"/>HalleysMethod</term>
         <listitem>
          <synopsis>HalleysMethod (f,df,ddf,guess,epsilon,maxn)</synopsis>
	  <para lang="en">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 lang="en">
	    Example to find the square root of 10:
          <screen lang="en"><prompt>genius&gt;</prompt> <userinput>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)</userinput>
</screen>
	  </para>
          <para lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Halley%27s_method">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    Example to find the square root of 10:
          <screen lang="en"><prompt>genius&gt;</prompt> <userinput>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)</userinput>
</screen>
	  </para>
          <para lang="en">
	    See
	    <ulink url="https://en.wikipedia.org/wiki/Newtons_method">Wikipedia</ulink> for more information.
	  </para>
	  <para lang="en">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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    Example:
          <screen lang="en"><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 lang="en">
		  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 lang="en"><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 lang="en">
	    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 lang="en">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 lang="en">Aliases: <function>average</function> <function>Mean</function> <function>mean</function></para>
          <para lang="en">Calculate average (the arithmetic mean) of an entire matrix.</para>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">Calculate average of each row in a matrix.  That is, compute the
	  arithmetic mean.</para>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    Example to find the square root of 10:
          <screen lang="en"><prompt>genius&gt;</prompt> <userinput>NewtonsMethodPoly([-10,0,1],3,10^-10,100)</userinput>
</screen>
	  </para>
          <para lang="en">
	    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 lang="en">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 lang="en">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 lang="en">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 lang="en">Convert a vector of ASCII values to a string.
		  See also
		  <link linkend="gel-function-StringToASCII"><function>StringToASCII</function></link>.
          </para>
          <para lang="en">
	    Example:
          <screen lang="en"><prompt>genius&gt;</prompt> <userinput>ASCIIToString([97,98,99])</userinput>
= "abc"
</screen>
          </para>
          <para lang="en">
	    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 lang="en">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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en">Convert a string to a (row) vector of ASCII values.
		  See also
		  <link linkend="gel-function-ASCIIToString"><function>ASCIIToString</function></link>.
          </para>
          <para lang="en">
	    Example:
          <screen lang="en"><prompt>genius&gt;</prompt> <userinput>StringToASCII("abc")</userinput>
= [97, 98, 99]
</screen>
          </para>
          <para lang="en">
	    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 lang="en">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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    Examples:
          <screen lang="en"><prompt>genius&gt;</prompt> <userinput>ExportPlot("file.png")</userinput>
<prompt>genius&gt;</prompt> <userinput>ExportPlot("/directory/file","eps")</userinput>
</screen>
          </para>
	  <para lang="en">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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	  Examples:
          <screen lang="en"><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 lang="en">
		  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 lang="en">
		  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 lang="en"><anchor id="gel-function-LinePlotDrawPoints"/>LinePlotDrawPoints</term>
         <listitem>
          <synopsis lang="en">LinePlotDrawPoints (x,y,...)</synopsis>
          <synopsis lang="en">LinePlotDrawPoints (v,...)</synopsis>
          <para lang="en">
		  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 lang="en">
	    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 lang="en">
	    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 lang="en">
	  Examples:
          <screen lang="en"><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 lang="en">
		  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 lang="en">
		  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 lang="en"><anchor id="gel-function-LinePlotMouseLocation"/>LinePlotMouseLocation</term>
         <listitem>
          <synopsis lang="en">LinePlotMouseLocation ()</synopsis>
          <para lang="en">
	    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 lang="en"><anchor id="gel-function-LinePlotWaitForClick"/>LinePlotWaitForClick</term>
         <listitem>
          <synopsis lang="en">LinePlotWaitForClick ()</synopsis>
          <para lang="en">
	    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 lang="en">Version 1.0.18 onwards.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term><anchor id="gel-function-PlotCanvasThaw"/>PlotCanvasThaw</term>
         <listitem>
          <synopsis>PlotCanvasThaw ()</synopsis>
          <para lang="en">
		  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 lang="en">Version 1.0.18 onwards.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term lang="en"><anchor id="gel-function-PlotWindowPresent"/>PlotWindowPresent</term>
         <listitem>
          <synopsis lang="en">PlotWindowPresent ()</synopsis>
          <para lang="en">
		  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 lang="en">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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en"><anchor id="gel-function-SurfacePlotClear"/>SurfacePlotClear</term>
         <listitem>
          <synopsis lang="en">SurfacePlotClear ()</synopsis>
          <para lang="en">
            Show the surface plot window and clear out functions and any other
            lines that were drawn.
          </para>
          <para lang="en">
	    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 lang="en">
		  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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en">
		  Here's an example of how to plot in polar coordinates,
		  in particular how to plot the function
		  <userinput>-r^2 * theta</userinput>:
          <screen lang="en"><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 lang="en">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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en">Version 1.0.16 onwards.</para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term lang="en"><anchor id="gel-function-SurfacePlotDrawLine"/>SurfacePlotDrawLine</term>
         <listitem>
          <synopsis lang="en">SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)</synopsis>
          <synopsis lang="en">SurfacePlotDrawLine (v,...)</synopsis>
          <para lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	  Examples:
          <screen lang="en"><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 lang="en">
		  Available from version 1.0.19 onwards.
	  </para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term lang="en"><anchor id="gel-function-SurfacePlotDrawPoints"/>SurfacePlotDrawPoints</term>
         <listitem>
          <synopsis lang="en">SurfacePlotDrawPoints (x,y,z,...)</synopsis>
          <synopsis lang="en">SurfacePlotDrawPoints (v,...)</synopsis>
          <para lang="en">
		  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 lang="en">
	    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 lang="en">
	    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 lang="en">
	    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 lang="en">
	  Examples:
          <screen lang="en"><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 lang="en">
		  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 lang="en">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 lang="en">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 lang="en">
	    Examples:
          <screen lang="en"><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 lang="en">
Here is a function that calculates factorials:
<programlisting lang="en"><![CDATA[function f(x) = if x <= 1 then 1 else (f(x-1)*x)
]]></programlisting>
    </para>
    <para lang="en">
With indentation it becomes:
<programlisting lang="en"><![CDATA[function f(x) = (
  if x <= 1 then
    1
  else
    (f(x-1)*x)
)
]]></programlisting>
    </para>
    <para lang="en">
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 lang="en"><![CDATA[function f(x) = (
  if (x <= 1) then return (1);
  return (f(x-1) * x)
)
]]></programlisting>
    </para>

    <para lang="en">
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 lang="en">function f(x) = prod k=1 to x do k
</programlisting>
    </para>

    <para lang="en">
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 lang="en"><![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 lang="en">
      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>Αλλαγή ρυθμίσεων με την GEL</title>
      <para>Πολλές από τις ρυθμίσεις στη Genius είναι απλά καθολικές μεταβλητές και μπορούν να υπολογιστούν και να εκχωρηθούν με τον ίδιο τρόπο όπως οι κανονικές μεταβλητές. Δείτε <xref linkend="genius-gel-variables"/> για τον υπολογισμό και την εκχώρηση σε μεταβλητές και <xref linkend="genius-gel-function-parameters"/> για έναν κατάλογο ρυθμίσεων που μπορούν να τροποποιηθούν με αυτόν τον τρόπο.</para>
      <para lang="en">
As an example, you can set the maximum number of digits in a result to 12 by typing:
<programlisting lang="en">MaxDigits = 12
</programlisting>
      </para>
    </note>

    <sect1 id="genius-prefs-output"> 
      <title>Έξοδος</title> 
      <variablelist> 
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Maximum digits to output</guilabel>
      </term> 
	  <listitem>
		  <para>Ο μέγιστος αριθμός ψηφίων σε ένα αποτέλεσμα (<link linkend="gel-function-MaxDigits"><function>MaxDigits</function></link>)</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Results as floats</guilabel>
      </term> 
	  <listitem>
		  <para>Αν τα αποτελέσματα πρέπει να εμφανίζονται πάντα ως αριθμοί κινητής υποδιαστολής (<link linkend="gel-function-ResultsAsFloats"><function>ResultsAsFloats</function></link>)</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Floats in scientific notation</guilabel>
      </term> 
	  <listitem>
		  <para>Αν οι αριθμοί κινητής υποδιαστολής πρέπει να είναι σε επιστημονική σημειογραφία (<link linkend="gel-function-ScientificNotation"><function>ScientificNotation</function></link>)</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Always print full expressions</guilabel>
      </term> 
	  <listitem>
		  <para>Αν πρέπει να εμφανίζονται πλήρεις παραστάσεις για μη αριθμητικές τιμές επιστροφής (μεγαλύτερες από μια γραμμή) (<link linkend="gel-function-FullExpressions"><function>FullExpressions</function></link>)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Use mixed fractions</guilabel>
      </term> 
	  <listitem>
		  <para>Αν τα κλάσματα πρέπει να εμφανίζονται ως μικτά κλάσματα όπως "1 1/3" αντί για "4/3". (<link linkend="gel-function-MixedFractions"><function>MixedFractions</function></link>)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Display 0.0 when floating point number is less than 10^-x (0=never chop)</guilabel>
      </term> 
	  <listitem>
	  <para lang="en">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 lang="en"> 
            <guilabel>Only chop numbers when another number is greater than 10^-x</guilabel>
      </term> 
	  <listitem>
		  <para lang="en">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 lang="en"> 
	    <guilabel>Remember output settings across sessions</guilabel>
      </term> 
	  <listitem>
        <para>Αν θα πρέπει οι ρυθμίσεις εξόδου στο <guilabel>Επιλογές εξόδου αριθμού/παράστασης</guilabel> να απομνημονεύονται για την επόμενη συνεδρία. Δεν εφαρμόζεται στο πλαίσιο <guilabel>Επιλογές εξόδου σφάλματος/πληροφοριών</guilabel>.</para>
	      <para>Αν δεν σημειωθεί, είτε η προεπιλογή είτε οποιεσδήποτε προηγουμένως αποθηκευμένες ρυθμίσεις χρησιμοποιούνται κάθε φορά που η Genius ξεκινά. Σημειώστε ότι οι ρυθμίσεις αποθηκεύονται στο τέλος της συνεδρίας, έτσι αν θέλετε να αλλάξετε τις προεπιλογές, σημειώστε αυτό το πλαίσιο, επανεκκινήστε <application>Εργαλείο μαθηματικών Genius</application> και έπειτα αποεπιλέξτε το ξανά.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Display errors in a dialog</guilabel>
      </term> 
	  <listitem>
        <para>Αν οριστεί τα σφάλματα θα εμφανίζονται σε έναν ξεχωριστό διάλογο, αν δεν οριστεί τα σφάλματα θα τυπωθούν στην κονσόλα.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Display information messages in a dialog</guilabel>
      </term> 
	  <listitem>
	<para>Αν οριστεί τα μηνύματα πληροφοριών θα εμφανίζονται σε έναν ξεχωριστό διάλογο, αν δεν οριστεί τα μηνύματα πληροφοριών θα τυπωθούν στην κονσόλα.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Maximum errors to display</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 lang="en"> 
	    <function>IntegerOutputBase</function>
      </term> 
	  <listitem>
        <para>Η βάση που θα χρησιμοποιηθεί για την έξοδο ακεραίων</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term lang="en"> 
	    <function>OutputStyle</function>
      </term> 
	  <listitem>
	<para lang="en">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 lang="en"> 
	    <guilabel>Floating point precision</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 lang="en"> 
	    <guilabel>Remember precision setting across sessions</guilabel>
      </term> 
	  <listitem>
        <para>Αν θα πρέπει η ακρίβεια να οριστεί για να απομνημονεύεται για την επόμενη συνεδρία. Αν δεν σημειωθεί, είτε η προεπιλεγμένη είτε οποιαδήποτε προηγουμένως αποθηκευμένη ρύθμιση θα χρησιμοποιηθεί, κάθε φορά που ξεκινά η Genius. Σημειώστε ότι οι ρυθμίσεις αποθηκεύονται στο τέλος της συνεδρίας και έτσι αν θέλετε να αλλάξετε την προεπιλογή σημειώστε αυτό το πλαίσιο, επανεκκινήστε τη genius και έπειτα αποεπιλέξτε την πάλι.</para>
	  </listitem>
	</varlistentry>
      </variablelist> 
    </sect1> 

    <sect1 id="genius-prefs-terminal"> 
      <title>Τερματικό</title> 

      <para>Το τερματικό αναφέρεται στην κονσόλα στην περιοχή εργασίας.</para>

      <variablelist> 
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Scrollback lines</guilabel>
      </term> 
	  <listitem>
        <para>Γραμμές οπισθοκύλισης στο τερματικό.</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Font</guilabel>
      </term> 
	  <listitem>
        <para>Η γραμματοσειρά που θα χρησιμοποιηθεί στο τερματικό.</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Black on white</guilabel>
      </term> 
	  <listitem>
        <para>Αν θα χρησιμοποιήσετε μαύρο σε λευκό στο τερματικό.</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Blinking cursor</guilabel>
      </term> 
	  <listitem>
        <para>Αν ο δρομέας στο τερματικό πρέπει να αναβοσβήνει, όταν το τερματικό εστιάζει. Αυτό μπορεί μερικές φορές να είναι ενοχλητικό και δημιουργεί αδρανή κυκλοφορία αν χρησιμοποιείτε τη Genius απομακρυσμένα.</para>
	  </listitem>
	</varlistentry>
      </variablelist> 
    </sect1> 

    <sect1 id="genius-prefs-memory"> 
      <title>Μνήμη</title> 
      <variablelist> 
	<varlistentry>
	  <term lang="en"> 
	    <guilabel>Maximum number of nodes to allocate</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 lang="en"> 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 lang="en">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>
