FunC (Function Comparator) is a C++ tool for quickly profiling the performance of various different abstracted implementations of mathematical function evaluations for given:
- computing environment
- mathematical function
- evaluation tolerance
Currently, only uniform LUTs (interpolation, Taylor, and Hermite) and direct evaluations are supported.
- C++11 compliant compiler
- Boost (tested with 1.58-1.65)
- quadmath (for tolerance-based table generation capabilities)
Build:
- CMake version >= 3.1
mkdir build && cd build/
cmake -DCMAKE_INSTALL_PREFIX=<install-dir> ..
make install
After make install, linking to the library (outside of cmake build) requires:
<install-dir>/libis in yourLD_LIBRARY_PATHenvironment variable,<install-dir>/include/funcis in your include flags, and-lfunc -lfunc_implsare in your link flags
This tool is split up into two separate libraries:
func_implsprovides the implementation types used in the library (does not require quadmath to build/use)funccombines the implementation types withUniformLookupTableGeneratorfor generating LUTs according to various criteria (requires quadmath)ImplementationComparatorfor comparing the performance of various implementations
TODO reference to SISC paper
TODO decide on copyright