SLEEF SIMD Math Function Library (BG/Q Port)
C Java C++ Other
Switch branches/tags
r314657-20171002 r314623-20171001 r314622-20171001 r314619-20171001 r314599-20170930 r314597-20170930 r314586-20170930 r314584-20170930 r314552-20170929 r314503-20170929 r314467-20170928 r304000-20170526 r303731-20170524 r303619-20170523 r303540-20170522 r303501-20170521 r303488-20170520 r303412-20170519 r303340-20170518 r303317-20170517 r302887-20170512 r302782-20170511 r302632-20170510 r302412-20170508 r302368-20170507 r302335-20170506 r302219-20170505 r302131-20170504 r302003-20170503 r301990-20170502 r301387-20170426 r301298-20170425 r301166-20170424 r301109-20170423 r301073-20170422 r300963-20170421 r300827-20170420 r300668-20170419 r300539-20170418 r300443-20170417 r300421-20170416 r300397-20170415 r300314-20170414 r300187-20170413 r300042-20170412 r299926-20170411 r299841-20170410 r299822-20170409 r299811-20170408 r299753-20170407 r299634-20170406 r299526-20170405 r299416-20170404 r299326-20170402 r299300-20170401 r299191-20170331 r299063-20170330 r298907-20170328 r298836-20170327 r298800-20170326 r298772-20170325 r298695-20170324 r298584-20170323 r298492-20170322 r298347-20170321 r298239-20170320 r298209-20170319 r298184-20170318 r298056-20170317 r297932-20170316 r297816-20170315 r297721-20170314 r297608-20170313 r297579-20170312 r297562-20170311 r297557-20170311 r297553-20170310 r294573-20170209 r294430-20170208 r294288-20170207 r294177-20170206 r294118-20170205 r294090-20170204 r293995-20170203 r293875-20170202 r293752-20170201 r293611-20170131 r293471-20170130 r293427-20170129 r293373-20170128 r293270-20170127 r293163-20170126 r293041-20170125 r292902-20170124 r292778-20170123 r292754-20170122 r292714-20170121 r292593-20170120 r292477-20170119 r292358-20170118
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


In this library, functions for evaluating some elementary functions
are implemented. The algorithm is intentended for efficient evaluation
utilizing SIMD instruction sets like SSE or AVX, but it is also fast
using usual scalar operations.

The package contains a few directories in which implementation in the
corresponding languages are contained. You can run "make test" in
order to test the functions in each directory.

The software is in public domain. You can use the software without any

Author : Naoki Shibata

Main download page :


2.80 Added support for ARM NEON. Added higher accuracy single
precision functions : sinf_u1, cosf_u1, sincosf_u1, tanf_u1, asinf_u1,
acosf_u1, atanf_u1, atan2f_u1, logf_u1, and cbrtf_u1.

2.70 Added higher accuracy functions : sin_u1, cos_u1, sincos_u1,
tan_u1, asin_u1, acos_u1, atan_u1, atan2_u1, log_u1, and
cbrt_u1. These functions evaluate the corresponding function with at
most 1 ulp of error.

2.60 Added the remaining single precision functions : powf, sinhf,
coshf, tanhf, exp2f, exp10f, log10f, log1pf. Added support for FMA4
(for AMD Bulldozer). Added more test cases. Fixed minor bugs (which
degraded accuracy in some rare cases).

2.50 Added support for AVX2. SLEEF now compiles with ICC.

2.40 Fixed incorrect denormal/nonnumber handling in ldexp, ldexpf,
sinf and cosf. Removed support for Go language.

2.31 Added sincosf.

2.30 Added single precision functions : sinf, cosf, tanf, asinf,
acosf, atanf, logf, expf, atan2f and cbrtf.

2.20 Added exp2, exp10, expm1, log10, log1p, and cbrt.

2.10 asin() and acos() are back. Added ilogb() and ldexp(). Added
hyperbolic functions.  Eliminated dependency on frexp, ldexp, fabs,
isnan and isinf.

2.00 All of the algorithm has been updated. Both accuracy and speed
are improved since version 1.10. Denormal number handling is also

1.10 AVX support is added. Accuracy tester is added.

1.00 Initial release