<?xml version="1.0"?>

<document extend="style.bml">

<pageTitle> Introduction </pageTitle>
<pageLink> <define name="index.html" scope="global"/> </pageLink>

<import document="prec_sitemap.bml"/>

<pageNavigation>
	<maplink link="#intro"   title="Introduction"/>
	<maplink link="#abstract" title="Abstract"/>
	<maplink link="#contact" title="Contact"/>
</pageNavigation>


<content>


  <firstSection id="intro" title="Introduction">
    <p> 
      The precompiler is an easy to use, generic tool for the conversion
      of C or C++ source code into new code that uses a C++
      multi-precision library of choice.
      On this site you can <a href="download.html">download</a> the
      sources of the precompiler, 
      find information on  how to <a href="usage.html">run</a> the precompiler, 
      while elaborate examples are given <a href="examples.html">here</a>.
      These examples show some of the more advanced features of the precompiler.
    </p>
      
<p>Information and background on the precompiler can be found in :</p>

  <pre>
@article{
  author      = {Schreppers, W. and Cuyt, A},
  title       = {<a href="files/precompiler.pdf">Algorithm XXX: A C/C++ precompiler for the autogeneration of multiprecision programs</a>},
  journal     = {ACM TOMS},
  volume      = {},
  number      = {},
  pages       = {},
  year        = {2006}
}
  </pre>

<section id="abstract" title="Abstract">

 <p>
In the past decade a number of libraries for multi-precision
floating-point arithmetic have been developed.
Just one of these libraries comes with a transcription program to
automatically convert existing source code, using hardware
precisions, into code that uses the multi-precision types of the library.
We describe an easy to use, generic C/C++ transcription
program or precompiler for the conversion of C or C++ source code
into new code that uses a C++ multi-precision library of choice. The
precompiler can convert any type in the input source code to another
type in the output source code. The input source can be either C
or C++, while the output code generated by the precompiler and
using the new types, is C++. The type conversion is based on a simple XML
configuration file which is provided by either the developer
of the multi-precision library or by the user of the precompiler. The
precompiler can also convert to data types with additional
features, which are not supported in the types of the source code.
Applicability of the precompiler is shown with the successful conversion
of large subsets
of the <a href="gsl-conversion.html">GNU Scientific Library</a> and
Numerical Recipes.
</p>

</section>

  </firstSection>

  <section id="contact" title="Contact">
      <table>
        <tr><td><a href="mailto:Walter.Schreppers@ua.ac.be"> Walter Schreppers </a></td></tr>
        <tr><td><a href="mailto:annie.cuyt@ua.ac.be">Annie Cuyt</a></td></tr>
      </table>
  </section>
  <br/>		
  <br/>		
  <br/>		
  <br/>		
</content>

</document>
