SLEEF: A Portable Vectorized Library of C Standard Mathematical Functions

01/25/2020
by   Naoki Shibata, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/20/2019

An Improved Algorithm for hypot(a,b)

We develop a fast and accurate algorithm for evaluating √(a^2+b^2) for t...
research
03/13/2020

FunGrim: a symbolic library for special functions

We present the Mathematical Functions Grimoire (FunGrim), a website and ...
research
10/10/2018

Generalized Ziggurat Algorithm for Unimodal and Unbounded Probability Density Functions with Zest

We present a modified Ziggurat algorithm that could generate a random nu...
research
09/28/2022

FV Time: a formally verified Coq library

FV Time is a small-scale verification project developed in the Coq proof...
research
12/29/2017

On quality of implementation of Fortran 2008 complex intrinsic functions on branch cuts

Branch cuts in complex functions in combination with signed zero and sig...
research
10/29/2018

Splitability Annotations: Optimizing Black-Box Function Composition in Existing Libraries

Data movement is a major bottleneck in parallel data-intensive applicati...
research
05/06/2020

Custom-Precision Mathematical Library Explorations for Code Profiling and Optimization

The typical processors used for scientific computing have fixed-width da...

Please sign up or login with your details

Forgot password? Click here to reset