2 research outputs found
Semantics-Preserving DPO-Based Term Graph Rewriting
Term graph rewriting is important as "conceptual implementation" of the
execution of functional programs, and of data-flow optimisations in compilers.
One way to define term graph transformation rule application is via the
well-established and intuitively accessible double-pushout (DPO) approach; we
present a new result proving semantics preservation for such DPO-based term
graph rewriting.Comment: In Proceedings TERMGRAPH 2018, arXiv:1902.0151
SLEEF: A Portable Vectorized Library of C Standard Mathematical Functions
In this paper, we present techniques used to implement our portable
vectorized library of C standard mathematical functions written entirely in C
language. In order to make the library portable while maintaining good
performance, intrinsic functions of vector extensions are abstracted by inline
functions or preprocessor macros. We implemented the functions so that they can
use sub-features of vector extensions such as fused multiply-add, mask
registers and extraction of mantissa. In order to make computation with SIMD
instructions efficient, the library only uses a small number of conditional
branches, and all the computation paths are vectorized. We devised a variation
of the Payne-Hanek argument reduction for trigonometric functions and a
floating point remainder, both of which are suitable for vector computation. We
compare the performance of our library to Intel SVML.Comment: in IEEE Transactions on Parallel and Distributed Systems. This is a
version with all appendices included in a PDF. Accompanying software can be
accessed at https://sleef.org or https://codeocean.com/capsule/686101