Download Virtual Machine
username: user
password: user
Download Source Package
Dependencies:
GCC (build-essential)
GMP (libgmp-dev)
SCons (scons)
R (r-base)
## Building For building, you can either build the package on a local system or build using a provided virtual machine. * Build locally The script 'build.sh' automates the entire build process. The build process depends on GCC, GMP, SCons, and R. Ubuntu-based distributions can install the required packages with the command: sudo apt-get install build-essential scons libgmp-dev r-base Once all the prerequisites are installed, the automated scripts can be used to build and test the library. * Build using a VM The virtual machine image "ErrolXubuntu.ova" was exported using VirtualBox. It contains all of the required packages and source code. The username and password is "user". The source code and automated scripts are located at "~/errol", and may be accessed by clicking launcher on the desktop. ## Errol Library The family of Errol double-to-string conversion algorithms are found in the directory 'lib'. The library is built by running 'make'. The library provides the following API: int16_t errol1_dtoa(double val, char *buf, bool *opt) int16_t errol2_dtoa(double val, char *buf, bool *opt) int16_t errol3_dtoa(double val, char *buf) The parameter 'val' is the input floating-point value. The significand digits are written to the 'buf', writing at most 18 bytes including the terminating null byte. The exponent is returned as a 16-bit, signed integer. In the case of Errol1 and Errol2, the 'opt' parameter is an optional parameter that is set to indicate whether or not the output is guaranteed to be optimal. Example usage: int16_t exp; char dig[32]; exp = errol3_dtoa(M_PI, dig); printf("0.%se%d", dig, exp); // prints "0.3141592653589793e1" ## Automated scripts. build.sh Automatically builds the library and test code. bench.sh Builds the library and executes the performance tests. mkfig.sh Builds the library and generates the performance figures. The figures are found in the 'fig' directory. enum.sh Run the enumeration algorithm on Errol3. Because Errol3 already includes the lookup table for failing cases, the enumeration algorithm will not found any errors. All found failures are written to 'err.list'.