Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > ff8e7344076b5fbaa54d805766a057bd > files > 32

libscs-devel-1.4.1-4.fc15.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>scs.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.15 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>scs.h File Reference</h1>This is the main header file of the SCS library, which defines the SCS data structure, and the functions that implement arithmetic on it. 
<a href="#_details">More...</a>
<p>

<p>
<a href="scs_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structscs.html">scs</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The SCS data type.</em> <a href="structscs.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>SCS data-types</h2></td></tr>
<tr><td nowrap align=right valign=top>typedef <a class="el" href="structscs.html">scs</a> *&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a2">scs_ptr</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structscs.html">scs</a>&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a3">scs_t</a> [1]</td></tr>
<tr><td colspan=2><br><h2>Conversion and initialization functions</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a4">scs_get_d</a> (double *, <a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a5">scs_get_d_minf</a> (double *, <a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a6">scs_get_d_pinf</a> (double *, <a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a7">scs_get_d_zero</a> (double *, <a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a8">scs_set_d</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a>, double)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a9">scs_set_si</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a>, signed int)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a10">scs_get_std</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a11">scs_set</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a>, <a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a12">scs_zero</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a13">scs_rand</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, int expo_max)</td></tr>
<tr><td colspan=2><br><h2>Addition and renormalisation functions</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a14">scs_add</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, <a class="el" href="scs_8h.html#a2">scs_ptr</a> x, <a class="el" href="scs_8h.html#a2">scs_ptr</a> y)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a15">scs_sub</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, <a class="el" href="scs_8h.html#a2">scs_ptr</a> x, <a class="el" href="scs_8h.html#a2">scs_ptr</a> y)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a16">scs_add_no_renorm</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, <a class="el" href="scs_8h.html#a2">scs_ptr</a> x, <a class="el" href="scs_8h.html#a2">scs_ptr</a> y)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a17">scs_renorm</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a18">scs_renorm_no_cancel_check</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a>)</td></tr>
<tr><td colspan=2><br><h2>Multiplication functions</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a19">scs_mul</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, const <a class="el" href="scs_8h.html#a2">scs_ptr</a> x, const <a class="el" href="scs_8h.html#a2">scs_ptr</a> y)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a20">scs_mul_ui</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a>, const unsigned int)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a21">scs_square</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, <a class="el" href="scs_8h.html#a2">scs_ptr</a> x)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a22">scs_fma</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, <a class="el" href="scs_8h.html#a2">scs_ptr</a> a, <a class="el" href="scs_8h.html#a2">scs_ptr</a> b, <a class="el" href="scs_8h.html#a2">scs_ptr</a> c)</td></tr>
<tr><td colspan=2><br><h2>Divisions</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a23">scs_inv</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, <a class="el" href="scs_8h.html#a2">scs_ptr</a> x)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="scs_8h.html#a24">scs_div</a> (<a class="el" href="scs_8h.html#a2">scs_ptr</a> result, <a class="el" href="scs_8h.html#a2">scs_ptr</a> x, <a class="el" href="scs_8h.html#a2">scs_ptr</a> y)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This is the main header file of the SCS library, which defines the SCS data structure, and the functions that implement arithmetic on it.
<p>
 <dl compact><dt><b>
Author: </b><dd>
David Defour <a href="mailto:David.Defour@ens-lyon.fr">David.Defour@ens-lyon.fr</a> , Florent de Dinechin <a href="mailto:Florent.de.Dinechin@ens-lyon.fr">Florent.de.Dinechin@ens-lyon.fr</a></dl>This file is part of the SCS library.
<p>
Copyright (C) 2002 David Defour and Florent de Dinechin
<p>
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
<p>
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
<p>
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
<p>

<p>
Definition in file <a class="el" href="scs_8h-source.html">scs.h</a>.<hr><h2>Typedef Documentation</h2>
<a name="a2" doxytag="scs.h::scs_ptr"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef struct <a class="el" href="structscs.html">scs</a>* scs_ptr
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
scs_ptr is a pointer on a SCS structure.
<p>

<p>
Definition at line <a class="el" href="scs_8h-source.html#l00116">116</a> of file <a class="el" href="scs_8h-source.html">scs.h</a>.    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a4" doxytag="scs.h::scs_get_d"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_get_d </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Convert a SCS number to a double, rounding to the nearest.
<p>
<dl compact><dt><b>
Warning: </b><dd>
"x" need to be normalized </dl>
<p>
Definition at line <a class="el" href="scs2double_8c-source.html#l00050">50</a> of file <a class="el" href="scs2double_8c-source.html">scs2double.c</a>.    </td>
  </tr>
</table>
<a name="a5" doxytag="scs.h::scs_get_d_minf"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_get_d_minf </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Convert a SCS number to a double, rounding towards minus infinity.
<p>

<p>
Definition at line <a class="el" href="scs2double_8c-source.html#l00366">366</a> of file <a class="el" href="scs2double_8c-source.html">scs2double.c</a>.
<p>
References <a class="el" href="scs2double_8c-source.html#l00366">scs_get_d_minf</a>().
<p>
Referenced by <a class="el" href="scs2double_8c-source.html#l00366">scs_get_d_minf</a>().    </td>
  </tr>
</table>
<a name="a6" doxytag="scs.h::scs_get_d_pinf"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_get_d_pinf </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Convert a SCS number to a double, rounding towards plus infinity.
<p>

<p>
Definition at line <a class="el" href="scs2double_8c-source.html#l00377">377</a> of file <a class="el" href="scs2double_8c-source.html">scs2double.c</a>.
<p>
References <a class="el" href="scs2double_8c-source.html#l00377">scs_get_d_pinf</a>().
<p>
Referenced by <a class="el" href="scs2double_8c-source.html#l00377">scs_get_d_pinf</a>().    </td>
  </tr>
</table>
<a name="a7" doxytag="scs.h::scs_get_d_zero"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_get_d_zero </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Convert a SCS number to a double, rounding towards zero.
<p>

<p>
Definition at line <a class="el" href="scs2double_8c-source.html#l00388">388</a> of file <a class="el" href="scs2double_8c-source.html">scs2double.c</a>.
<p>
References <a class="el" href="scs2double_8c-source.html#l00388">scs_get_d_zero</a>().
<p>
Referenced by <a class="el" href="scs2double_8c-source.html#l00388">scs_get_d_zero</a>().    </td>
  </tr>
</table>
<a name="a8" doxytag="scs.h::scs_set_d"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_set_d </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Convert a double into a SCS number (this is an exact operation).
<p>

<p>
Definition at line <a class="el" href="double2scs_8c-source.html#l00036">36</a> of file <a class="el" href="double2scs_8c-source.html">double2scs.c</a>.
<p>
Referenced by <a class="el" href="division__scs_8c-source.html#l00038">scs_inv</a>().    </td>
  </tr>
</table>
<a name="a9" doxytag="scs.h::scs_set_si"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_set_si </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>signed&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>int</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Convert an unsigned int into a SCS number (this is an exact operation).
<p>

<p>
Definition at line <a class="el" href="double2scs_8c-source.html#l00148">148</a> of file <a class="el" href="double2scs_8c-source.html">double2scs.c</a>.
<p>
Referenced by <a class="el" href="division__scs_8c-source.html#l00038">scs_inv</a>().    </td>
  </tr>
</table>
<a name="a10" doxytag="scs.h::scs_get_std"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_get_std </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Print out a SCS number.
<p>
Sorry for the strange name, we are mimicking GMP 
<p>
Definition at line <a class="el" href="print__scs_8c-source.html#l00059">59</a> of file <a class="el" href="print__scs_8c-source.html">print_scs.c</a>.    </td>
  </tr>
</table>
<a name="a11" doxytag="scs.h::scs_set"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_set </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Copy a SCS number into another.
<p>
There is an unrolled version for the case SCS_NB_WORDS==8. 
<p>
Definition at line <a class="el" href="addition__scs_8c-source.html#l00055">55</a> of file <a class="el" href="addition__scs_8c-source.html">addition_scs.c</a>.
<p>
Referenced by <a class="el" href="addition__scs_8c-source.html#l00514">scs_add</a>(), <a class="el" href="division__scs_8c-source.html#l00038">scs_inv</a>(), and <a class="el" href="addition__scs_8c-source.html#l00539">scs_sub</a>().    </td>
  </tr>
</table>
<a name="a12" doxytag="scs.h::scs_zero"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_zero </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>result</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set a SCS number to zero.
<p>
There should be a few simple functions in this library. 
<p>
Definition at line <a class="el" href="zero__scs_8c-source.html#l00040">40</a> of file <a class="el" href="zero__scs_8c-source.html">zero_scs.c</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="scs.h::scs_rand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_rand </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>expo_max</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generate a random SCS number.
<p>
The index field of result will be between -expo_max and +expo_max. Example: to get a number in the double-precision floating-point range, expo_max should be smaller than 39. <dl compact><dt><b>
Warning: </b><dd>
No guarantee is made about the quality of the random algorithm used... </dl>
<p>
Definition at line <a class="el" href="rand__scs_8c-source.html#l00051">51</a> of file <a class="el" href="rand__scs_8c-source.html">rand_scs.c</a>.    </td>
  </tr>
</table>
<a name="a14" doxytag="scs.h::scs_add"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_add </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>y</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Addition of two SCS numbers.
<p>
The arguments x, y and result may point to the same memory location. The result is a normalised SCS number. 
<p>
Definition at line <a class="el" href="addition__scs_8c-source.html#l00514">514</a> of file <a class="el" href="addition__scs_8c-source.html">addition_scs.c</a>.
<p>
References <a class="el" href="scs_8h-source.html#l00102">scs::exception</a>, and <a class="el" href="addition__scs_8c-source.html#l00055">scs_set</a>().    </td>
  </tr>
</table>
<a name="a15" doxytag="scs.h::scs_sub"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_sub </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>y</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Subtraction of two SCS numbers.
<p>
The arguments x, y and result may point to the same memory location. 
<p>
Definition at line <a class="el" href="addition__scs_8c-source.html#l00539">539</a> of file <a class="el" href="addition__scs_8c-source.html">addition_scs.c</a>.
<p>
References <a class="el" href="scs_8h-source.html#l00102">scs::exception</a>, and <a class="el" href="addition__scs_8c-source.html#l00055">scs_set</a>().
<p>
Referenced by <a class="el" href="division__scs_8c-source.html#l00038">scs_inv</a>().    </td>
  </tr>
</table>
<a name="a16" doxytag="scs.h::scs_add_no_renorm"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_add_no_renorm </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>y</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Addition without renormalisation, to be used for adding many numbers.
<p>
<dl compact><dt><b>
Warning: </b><dd>
In case of a cancellation, severe loss of precision could happen. Safe if the numbers are of the same sign. </dl>
<p>
Definition at line <a class="el" href="addition__scs_8c-source.html#l00224">224</a> of file <a class="el" href="addition__scs_8c-source.html">addition_scs.c</a>.    </td>
  </tr>
</table>
<a name="a17" doxytag="scs.h::scs_renorm"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_renorm </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>result</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Renormalisation (to be used after several scs_add_no_renorm).
<p>
This function removes the carry from each digit, and also shifts the digits in case of a cancellation (so that if result != 0 then its first digit is non-zero)
<p>
<dl compact><dt><b>
Warning: </b><dd>
THIS FUNCTION HAS NEVER BEEN PROPERLY TESTED and is currently unused in the library: instead, specific renormalisation steps are fused within the code of the operations which require it. </dl>
<p>
Definition at line <a class="el" href="addition__scs_8c-source.html#l00084">84</a> of file <a class="el" href="addition__scs_8c-source.html">addition_scs.c</a>.    </td>
  </tr>
</table>
<a name="a18" doxytag="scs.h::scs_renorm_no_cancel_check"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_renorm_no_cancel_check </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>result</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Renormalisation assuming no cancellation.
<p>
This renormalization step is especially designed for the addition of several numbers with the same sign. In this case, you know that there has been no cancellation, which allows simpler renormalisation. 
<p>
Definition at line <a class="el" href="addition__scs_8c-source.html#l00137">137</a> of file <a class="el" href="addition__scs_8c-source.html">addition_scs.c</a>.    </td>
  </tr>
</table>
<a name="a19" doxytag="scs.h::scs_mul"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_mul </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>y</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Multiplication of two SCS numbers.
<p>
The arguments x, y and result may point to the same memory location. The result is a normalised SCS number. 
<p>
Definition at line <a class="el" href="multiplication__scs_8c-source.html#l00291">291</a> of file <a class="el" href="multiplication__scs_8c-source.html">multiplication_scs.c</a>.
<p>
Referenced by <a class="el" href="division__scs_8c-source.html#l00067">scs_div</a>(), and <a class="el" href="division__scs_8c-source.html#l00038">scs_inv</a>().    </td>
  </tr>
</table>
<a name="a20" doxytag="scs.h::scs_mul_ui"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_mul_ui </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const unsigned&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>int</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Multiplication of a SCS with an unsigned integer; result is returned in x.
<p>

<p>
Definition at line <a class="el" href="multiplication__scs_8c-source.html#l00448">448</a> of file <a class="el" href="multiplication__scs_8c-source.html">multiplication_scs.c</a>.    </td>
  </tr>
</table>
<a name="a21" doxytag="scs.h::scs_square"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_square </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Square.
<p>
Result is normalised 
<p>
Definition at line <a class="el" href="multiplication__scs_8c-source.html#l00378">378</a> of file <a class="el" href="multiplication__scs_8c-source.html">multiplication_scs.c</a>.    </td>
  </tr>
</table>
<a name="a22" doxytag="scs.h::scs_fma"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_fma </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>a</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>b</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>c</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fused multiply-and-add (ab+c); Result is normalised.
<p>
<dl compact><dt><b>
Warning: </b><dd>
This function has not been tested thoroughly </dl>
<p>
Definition at line <a class="el" href="poly__fct_8c-source.html#l00027">27</a> of file <a class="el" href="poly__fct_8c-source.html">poly_fct.c</a>.    </td>
  </tr>
</table>
<a name="a23" doxytag="scs.h::scs_inv"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_inv </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
SCS inverse.
<p>
Stores 1/x in result. Result is normalised
<p>
<dl compact><dt><b>
Warning: </b><dd>
This function is known not to work for most precisions: it performs a fixed number of Newton-Raphson iterations (two), starting with a FP number (53 bits), so provides roughly 210 bits of precision. It should be modified to perform more iterations if more precision is needed. </dl>
<p>
Definition at line <a class="el" href="division__scs_8c-source.html#l00038">38</a> of file <a class="el" href="division__scs_8c-source.html">division_scs.c</a>.
<p>
References <a class="el" href="scs_8h-source.html#l00105">scs::index</a>, <a class="el" href="scs2double_8c-source.html#l00050">scs_get_d</a>(), <a class="el" href="multiplication__scs_8c-source.html#l00291">scs_mul</a>(), <a class="el" href="addition__scs_8c-source.html#l00055">scs_set</a>(), <a class="el" href="double2scs_8c-source.html#l00036">scs_set_d</a>(), <a class="el" href="double2scs_8c-source.html#l00148">scs_set_si</a>(), <a class="el" href="addition__scs_8c-source.html#l00539">scs_sub</a>(), and <a class="el" href="scs_8h-source.html#l00125">scs_t</a>.
<p>
Referenced by <a class="el" href="division__scs_8c-source.html#l00067">scs_div</a>().    </td>
  </tr>
</table>
<a name="a24" doxytag="scs.h::scs_div"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void scs_div </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="scs_8h.html#a2">scs_ptr</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>y</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
SCS division.
<p>
Computes x/y. Result is normalised  <dl compact><dt><b>
Warning: </b><dd>
This function is known not to work for most precisions: it performs a fixed number of Newton-Raphson iterations (two), starting with a FP number (53 bits), so provides roughly 210 bits of precision. It should be modified to perform more iterations if more precision is needed. </dl>
<p>
Definition at line <a class="el" href="division__scs_8c-source.html#l00067">67</a> of file <a class="el" href="division__scs_8c-source.html">division_scs.c</a>.
<p>
References <a class="el" href="division__scs_8c-source.html#l00038">scs_inv</a>(), <a class="el" href="multiplication__scs_8c-source.html#l00291">scs_mul</a>(), and <a class="el" href="scs_8h-source.html#l00125">scs_t</a>.    </td>
  </tr>
</table>
<hr><h2>Variable Documentation</h2>
<a name="a3" doxytag="scs.h::scs_t"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct <a class="el" href="structscs.html">scs</a> scs_t[1]
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
scs_t is an array of one SCS struct to lighten syntax : you may declare a scs_t object, and pass it to the <a class="el" href="structscs.html">scs</a> functions (which expect pointers) without using ampersands.
<p>

<p>
Definition at line <a class="el" href="scs_8h-source.html#l00125">125</a> of file <a class="el" href="scs_8h-source.html">scs.h</a>.
<p>
Referenced by <a class="el" href="division__scs_8c-source.html#l00067">scs_div</a>(), and <a class="el" href="division__scs_8c-source.html#l00038">scs_inv</a>().    </td>
  </tr>
</table>
<hr><address align="right"><small>Generated on Tue Jun 17 10:15:52 2003 for SCSLib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.15 </small></address>
</body>
</html>