<?xml version="1.0"?>

<document extend="style.bml">

<pageTitle> Paper </pageTitle>
<pageLink>
	<define name="paper.html" scope="global"/>
</pageLink>

<import document="prec_sitemap.bml"/>

<pageNavigation>
  <maplink link="#abstract" title="Abstract"/>
	<maplink link="#paper" title="Paper"/>
</pageNavigation>

<content>
  <firstSection id="papertitle" title="Paper"></firstSection>

  <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>
  
  <section id="paper" title="Complete paper">
	<p>
    Here all source files for creating the paper and website of the <a href="download.html">precompiler</a> can be downloaded.
    Also in the paper we refer to the conversion and skip file schema specifications, these can also be downloaded below.
    The extra command line options for arithmos are on the <a href="usage.html">usage</a> page. 
</p>
<p>Details on adding new conversion functions to the Convert class (as the <a href="files/precompile.pdf">paper</a> states on pages 6 and 11)
    are on <a href="examples.html#ex8">examples</a> page. 
There are also some bash scripts available for automating the gsl conversion <a href="gsl-conversion.html">here</a>.
	</p>
    <table>
      <tr><td> <a href="files/precompile.pdf"> precompile.pdf </a></td> <td> PDF format   </td></tr>
      <tr><td> <a href="files/precompile.ps">  precompile.ps  </a></td> <td> PhostScript  </td></tr>
      <tr><td> <a href="files/convert.schema"> convert.schema </a></td> <td> XML Schema of the conversion configuration file (<a href="files/precompile.pdf">the paper</a> refers to this on page 3)</td></tr>
      <tr><td> <a href="files/skip.schema"> skip.schema </a></td> <td> XML Schema of the skip configuration file (<a href="files/precompile.pdf">the paper</a> refers to this on page 3)</td></tr>
      <tr><td> <a href="files/precompiler-acmtoms.tar.gz">precompiler-acmtoms.tar.gz  &nbsp;</a></td><td> Bundled files (source tex files and makefile to generate pdf and ps) </td></tr>
    </table>        
  </section>
			
</content>

</document>
