Replacing branches by polynomials in vectorizable elementary functions. (English) Zbl 1354.65039

Nehmeier, Marco (ed.) et al., Scientific computing, computer arithmetic, and validated numerics. 16th international symposium, SCAN 2014, Würzburg, Germany, September 21–26, 2014. Revised selected papers. Cham: Springer (ISBN 978-3-319-31768-7/pbk; 978-3-319-31769-4/ebook). Lecture Notes in Computer Science 9553, 14-22 (2016).
Summary: One of the goals for the mathematical function generator is to produce vectorizable codes. Therefore, in the generated code there should be no branching. As the most mathematical functions are implemented with domain splitting procedure and piecewise-polynomial approximation, there are several if-else statements in the final code to determine the corresponding polynomial coefficients. In this paper we propose a simple idea of replacing these if-else statements by the evaluation of a polynomial function. This is a novel approach that may not work for all the possible function implementation variants, and it needs to be improved with the use of some more sophisticated methods.
For the entire collection see [Zbl 1334.65002].


65D20 Computation of special functions and constants, construction of tables
Full Text: DOI


[1] Loosemore, R.M.S.e.a.S.: The GNU C Library Reference Manual. Free Software Foundation Inc
[2] Kupriianova, Olga; Lauter, Christoph, Metalibm: A Mathematical Functions Code Generator, Mathematical Software - ICMS 2014, 713-717 (2014), Berlin, Heidelberg: Springer Berlin Heidelberg, Berlin, Heidelberg · Zbl 1434.68660
[3] Muller, J-M, Elementary Functions: Algorithms and Implementation (1997), Secaucus: Birkhauser Boston Inc., Secaucus · Zbl 0892.65005
[4] Brisebarre, N., Chevillard, S.: Efficient polynomial l-approximations. In: 18th IEEE Symposium on Computer Arithmetic (ARITH-18 2007), 25-27 June 2007, Montpellier, France, pp. 169-176 (2007). doi:10.1109/ARITH.2007.17
[5] Tang, PTP, Table-driven implementation of the exponential function in IEEE floating-point arithmetic, ACM Trans. Math. Softw., 15, 2, 144-157 (1989) · Zbl 0900.65047
[6] Tang, PTP, Table-driven implementation of the logarithm function in IEEE floating-point arithmetic, ACM Trans. Math. Softw., 16, 4, 378-400 (1990) · Zbl 0900.65033
[7] Tang, PTP, Table-driven implementation of the Expm1 function in IEEE floating-point arithmetic, ACM Trans. Math. Softw., 18, 2, 211-222 (1992) · Zbl 0892.65006
[8] Kupriianova, O., Lauter, C.: A domain splitting algorithm for the mathematical functions code generator. In: Asilomar Conference on Signals, Systems and Computers, Pacific Grove, CA, USA, 2-5 November 2014 (2014, to appear) · Zbl 1434.68660
[9] Chevillard, S.; Joldeş, M.; Lauter, C.; Fukuda, K.; Hoeven, J.; Joswig, M.; Takayama, N., Sollya: an environment for the development of numerical codes, Mathematical Software - ICMS 2010, 28-31 (2010), Heidelberg: Springer, Heidelberg · Zbl 1295.65143
[10] Brunie, N., de Dinechin, F., Kupriianova, O., Lauter, C.: Code generators for mathematical functions (2014). \(<\) hal-01084726v \(2>\)
[11] Cheney, EW, Introduction to Approximation Theory (1982), New York: AMS Chelsea Publishing, New York · Zbl 0535.41001
[12] Shary, SP, Solving the linear interval tolerance problem, Math. Comput. Simul., 39, 53-85 (1995)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.