Download
| File | Description | release date |
|---|---|---|
| precompiler.tar.gz | Source code | 17/5/2006 |
| precompiler-bin.tar.gz | Linux binary | 17/5/2006 |
| precompiler-bin64.tar.gz | Linux binary for new 64 bit machines | 17/05/2006 |
| precompiler-win32.zip | Windows binary (tested on Windows 2000 and XP) | 17/5/2006 |
| precompiler-MacOSX.tar.gz | Binary for Mac OS X compiled with darwin ports. | 17/5/2006 |
| test.cpp | test input file | 14/7/2005 |
| in.cpp | input file used in examples | 1/2/2006 |
| precompile.xml | test configuration file | 14/7/2005 |
| mpieee.xml | configuration file used in examples | 1/2/2006 |
| convert.schema | Schema definition for conversion configuration files | 20/9/2006 |
| convert.dtd | DTD for conversion configuration files | 20/9/2006 |
| skip.schema | Schema definition for conversion configuration files | 20/9/2006 |
| skip.dtd | DTD for conversion configuration files | 20/9/2006 |
^ TOP
Installation
Requirements for compiling sources:QT 3.2.3 or greater and tools (qmake) must be installed.
UnixRun the following commands in your favorite shell.
tar -xzvf precompiler.tar.gz cd precompiler qmake precompile.pro makeBinaries for Windows/Linux
Download and extract the binary package for your platform. Copy the binary executable precompile to the correct path (in Linux /usr/bin/ or /usr/local/bin ).
^ TOP
First Usage
To precompile the code in the file test.cpp,
according to the type conversions specified in the configuration file precompile.xml, execute:
./precompile test.cpp test_pre.cpp -x precompile.xml
The output file test_pre.cpp generated by the precompiler should look
like this:
wschrep> cat test_pre.cpp
#include <iostream>
#include <iomanip>
using namespace std;
#include "MpIeee.hh"
#include "ArithmosIO.hh"
#include <stdio.h>
MpIeee func(MpIeee & a){
MpIeee k;
for(int i= 1;i<5;i++)
for(int j= 1;j<3;j++){
char k=32;
if(i+j>5) k='y';
if(k=='y') {cout<<"k="<<k<<", i+j="<<i+j<<"\n";}
}
k=MpIeee( "2" )*a;
return MpIeee( "3" )*a;
}
int main(){
MpIeee b= MpIeee( "0.1" );MpIeee c= MpIeee( "0" );
MpIeee d[3][3]=
{
MpIeee( "1.0" ), MpIeee( "2.0" ), MpIeee( "3" ),
MpIeee( "4" ), MpIeee( "5" ), MpIeee( "6" ),
MpIeee( "7" ), MpIeee( "8" ), MpIeee( "9" )
};
c=MpIeee( "3" )+MpIeee( "26" );
b=func(c);
{cout<<"b="<<setiosflags((ios::fixed & ios::floatfield))<<b;
cout.precision(6);cout.fill('
');cout.width(0);cout.setf(ios::dec,ios::basefield);
cout<<resetiosflags((ios::fixed & ios::floatfield))<<"\n";}
{cout<<"d[1][2]="<<setiosflags((ios::fixed & ios::floatfield))<<d[1][2];
cout.precision(6);cout.fill('
');cout.width(0);cout.setf(ios::dec,ios::basefield);
cout<<resetiosflags((ios::fixed & ios::floatfield))<<"\n";}
return 0;
}