<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:ARIC</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="Research Program - Algebraic computing and high performance kernels"/>
    <meta name="dc.title" content="Research Program - Algebraic computing and high performance kernels"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2016-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="ARIC"/>
    <script type="text/javascript" src="https://raweb.inria.fr/rapportsactivite/RA2016/static/MathJax/MathJax.js?config=TeX-MML-AM_CHTML">
      <!--MathJax-->
    </script>
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Aric</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li><a href="./uid3.html">Overview</a></li></ul></div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid11.html&#10;&#9;&#9;  ">Efficient approximation methods</a></li><li><a href="uid15.html&#10;&#9;&#9;  ">Lattices: algorithms and cryptology</a></li><li class="tdmActPage"><a href="uid25.html&#10;&#9;&#9;  ">Algebraic computing and high performance kernels</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid30.html&#10;&#9;&#9;  ">Floating-point and Validated Numerics</a></li><li><a href="uid35.html&#10;&#9;&#9;  ">Cryptography, Cryptology, Communication Theory</a></li></ul></div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid40.html&#10;&#9;&#9;  ">FPLLL</a></li><li><a href="uid44.html&#10;&#9;&#9;  ">HPLLL</a></li><li><a href="uid47.html&#10;&#9;&#9;  ">GNU-MPFR</a></li><li><a href="uid51.html&#10;&#9;&#9;  ">Gfun</a></li><li><a href="uid54.html&#10;&#9;&#9;  ">Sipe</a></li><li><a href="uid58.html&#10;&#9;&#9;  ">LinBox: a C++ library for exact, high-performance linear algebra computation</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid63.html&#10;&#9;&#9;  ">Floating-point arithmetic</a></li><li><a href="uid78.html&#10;&#9;&#9;  ">Lattices: algorithms and cryptology</a></li><li><a href="uid92.html&#10;&#9;&#9;  ">Algebraic computing and high-performance kernels</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid111.html&#10;&#9;&#9;  ">Bilateral Contracts with Industry</a></li><li><a href="uid112.html&#10;&#9;&#9;  ">Bilateral Grants with Industry</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid117.html&#10;&#9;&#9;  ">Regional Initiatives</a></li><li><a href="uid120.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid129.html&#10;&#9;&#9;  ">European Initiatives</a></li><li><a href="uid133.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid156.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid169.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid195.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentyear" href="bibliography.html">Publications of the year</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2016</a> | <a href="http://www.inria.fr/en/teams/aric">Presentation of the Project-Team ARIC</a> | <a href="http://www.ens-lyon.fr/LIP/AriC/">ARIC Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="aric.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="aric.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-aric-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../aric/aric.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-aric-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid15.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid30.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      Research Program</h2>
        <h3 class="titre3">Algebraic computing and high performance kernels</h3>
        <p>The main theme here is the study of fundamental operations (“kernels”) on a hierarchy of
symbolic or numeric data types spanning integers, floating-point numbers, polynomials, power series, as well
as matrices of all these.
Fundamental operations include basic arithmetic (e.g., how to multiply or how to invert) common to all
such data, as well as more specific ones (change of representation/conversions, GCDs, determinants, etc.).
For such operations, which are ubiquitous and at the very core of computing (be it numerical, symbolic, or hybrid numeric-symbolic),
our goal is to ensure both high performance and reliability.</p>
        <a name="uid26"/>
        <h4 class="titre4">Algorithms</h4>
        <p>On the symbolic side, we will focus on the design and complexity analysis of algorithms for
matrices over various domains (fields, polynomials, integers) and possibly with specific properties (structure).
So far, our algorithmic improvements for polynomial matrices
and structured matrices have been obtained in a rather independent way.
Both types are well known to have much in common,
but this is sometimes not reflected by the complexities obtained, especially for applications
in cryptology and coding theory.
Our goal in this area is thus to explore these connections further,
to provide a more unified treatment, and eventually bridge these complexity gaps,
A first step towards this goal will be the design of enhanced algorithms for various generalizations of Hermite-Padé approximation;
in the context of list decoding, this should in particular make it possible to match or even improve over
the structured-matrix approach, which is so far the fastest known.</p>
        <p>On the other hand we will focus on the design of algorithms for certified computing.
We will study the use of various representations,
such as mid-rad for classical interval arithmetic, or affine arithmetic.
We will explore the impact of precision tuning in intermediate computations,
possibly dynamically, on the accuracy of the results (e.g. for iterative refinement and Newton iterations).
We will continue to revisit and improve the classical error bounds of numerical linear algebra
in the light of the subtleties of IEEE floating-point arithmetic.</p>
        <p>Our goals in linear algebra and lattice basis reduction that have been detailed above in Section <a title="Lattices: algorithms and cryptology" href="./uid15.html">3.2</a>
will be achieved in the light of a hybrid symbolic-numeric approach.</p>
        <a name="uid27"/>
        <h4 class="titre4">Computer arithmetic</h4>
        <p>Our work on certified computing and especially on the analysis of algorithms in floating-point arithmetic leads us
to manipulate floating-point data in their greatest generality, that is,
as symbolic expressions in the base and the precision. Our aim here is thus to
develop theorems as well as efficient data structures and algorithms
for handling such quantities by computer rather than by hand as we do now.
The main outcome would be a “symbolic floating-point toolbox”
which provides a way to check automatically the certificates of optimality
we have obtained on the error bounds of various numerical algorithms.</p>
        <p>We will also work on the interplay between floating-point and integer arithmetics.
Currently, small numerical kernels like an exponential or a <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mn>2</mn><mo>×</mo><mn>2</mn></mrow></math></span> determinant are typically written
using exclusively one of these two kinds of arithmetic. However, modern processors now have hardware support for both
floating-point and integer arithmetics, often with vector (SIMD) extensions, and an important question is
how to make the best use of all such capabilities to optimize for both accuracy and efficiency.</p>
        <p>A third
direction will be to work on algorithms for performing correctly-rounded arithmetic operations in medium precision as
efficiently and reliably as possible.
Indeed, many numerical problems require higher precision than the conventional floating-point (single, double) formats.
One solution is to use multiple precision libraries, such as GNU MPFR, which allow the manipulation of very
high precision numbers, but their generality (they are able to handle numbers with millions of digits)
is a quite heavy alternative when high performance is needed. Our objective here is thus to design a multiple
precision arithmetic library that would allow to tackle problems where a precision of a few hundred bits is sufficient,
but which have strong performance requirements. Applications include the process of long-term iteration of
chaotic dynamical systems ranging from the classical Henon map to calculations of planetary orbits.
The designed algorithms will be formally proved.</p>
        <p>Finally, our work on the IEEE 1788 standard leads naturally to
the development of associated reference libraries for interval arithmetic.
A first direction will be to implement IEEE 1788 interval arithmetic
within MPFI, our library for interval arithmetic using the arbitrary precision floating-point arithmetic provided by MPFR:
indeed, MPFI has been originally developed with definitions and handling of exceptions which are not compliant with IEEE 1788.
Another one will be to provide efficient support for multiple-precision intervals,
in mid-rad representation and by developing MPFR-based code-generation tools aimed at handling families of functions.</p>
        <a name="uid28"/>
        <h4 class="titre4">High-performance algorithms and software</h4>
        <p>The algorithmic developments for medium precision floating-point arithmetic discussed
above will lead to high performance implementations on GPUs. As a follow-up of the HPAC project (which ended in
December 2015) we shall pursue the design and implementation of high performance linear algebra primitives
and algorithms.
</p>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid15.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid30.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
