Skip to content

Commit b2f4699

Browse files
shibatchshibatch
andauthored
no message (#331)
Co-authored-by: shibatch <[email protected]>
1 parent 3a078bb commit b2f4699

18 files changed

+4669
-389
lines changed

CHANGELOG.md

Lines changed: 106 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
# Changelog
2-
All notable changes to this project will be documented in this file.
1+
## 3.5 - 2020-09-01
2+
- IBM System/390 support is added.
3+
- The library can be built with Clang on Windows.
4+
- Static libraries with LTO can be generated.
5+
- Alternative division and sqrt methods can be chosen with AArch64.
6+
- Header files for inlining the whole SLEEF functions can be generated.
7+
- IEEE remainder function is added.
8+
- GCC-10 can now build SLEEF with SVE support.
39

4-
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5-
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6-
7-
## Next release
810
## 3.4.1 - 2019-10-01
911
### Changed
1012
- Fixed accuracy problem with tan_u35, atan_u10, log2f_u35 and exp10f_u10.
@@ -34,6 +36,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
3436
### Changed
3537
- Many functions are now faster
3638
- Testers are now faster
39+
3740
## 3.3.1 - 2018-08-20
3841
### Added
3942
- FreeBSD support is added
@@ -42,6 +45,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
4245
- Trigonometric functions now evaluate correctly with full FP
4346
domain.
4447
https://github.com/shibatch/sleef/pull/210
48+
4549
## 3.3 - 2018-07-06
4650
### Added
4751
- SVE target support is added to libsleef.
@@ -57,6 +61,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
5761
https://github.com/shibatch/sleef/pull/195
5862
- Payne-Hanek like argument reduction is added to libsleef.
5963
https://github.com/shibatch/sleef/pull/197
64+
6065
## 3.2 - 2018-02-26
6166
### Added
6267
- The whole build system of the project migrated from makefiles to
@@ -89,3 +94,98 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
8994

9095
### Removed
9196
- Makefile build system
97+
98+
## 3.1 - 2017-07-19
99+
- Added AArch64 support
100+
- Implemented the remaining C99 math functions : lgamma, tgamma,
101+
erf, erfc, fabs, copysign, fmax, fmin, fdim, trunc, floor, ceil,
102+
round, rint, modf, ldexp, nextafter, frexp, hypot, and fmod.
103+
- Added dispatcher for x86 functions
104+
- Improved reduction of trigonometric functions
105+
- Added support for 32-bit x86, Cygwin, etc.
106+
- Improved tester
107+
108+
## 3.0 - 2017-02-07
109+
- New API is defined
110+
- Functions for DFT are added
111+
- sincospi functions are added
112+
- gencoef now supports single, extended and quad precision in addition to double precision
113+
- Linux, Windows and Mac OS X are supported
114+
- GCC, Clang, Intel Compiler, Microsoft Visual C++ are supported
115+
- The library can be compiled as DLLs
116+
- Files needed for creating a debian package are now included
117+
118+
## 2.120 - 2017-01-30
119+
- Relicensed to Boost Software License Version 1.0
120+
121+
## 2.110 - 2016-12-11
122+
- The valid range of argument is extended for trig functions
123+
- Specification of each functions regarding to the domain and accuracy is added
124+
- A coefficient generation tool is added
125+
- New testing tools are introduced
126+
- Following functions returned incorrect values when the argument is very large or small : exp, pow, asinh, acosh
127+
- SIMD xsin and xcos returned values more than 1 when FMA is enabled
128+
- Pure C cbrt returned incorrect values when the argument is negative
129+
- tan_u1 returned values with more than 1 ulp of error on rare occasions
130+
- Removed support for Java language(because no one seems using this)
131+
132+
## 2.100 - 2016-12-04
133+
- Added support for AVX-512F and Clang Extended Vectors.
134+
135+
## 2.90 - 2016-11-27
136+
- Added ilogbf. All the reported bugs(listed below) are fixed.
137+
- Log function returned incorrect values when the argument is very small.
138+
- Signs of returned values were incorrect when the argument is signed zero.
139+
- Tester incorrectly counted ULP in some cases.
140+
- ilogb function returned incorrect values in some cases.
141+
142+
## 2.80 - 2013-05-18
143+
- Added support for ARM NEON. Added higher accuracy single
144+
precision functions : sinf_u1, cosf_u1, sincosf_u1, tanf_u1, asinf_u1,
145+
acosf_u1, atanf_u1, atan2f_u1, logf_u1, and cbrtf_u1.
146+
147+
## 2.70 - 2013-04-30
148+
- Added higher accuracy functions : sin_u1, cos_u1, sincos_u1,
149+
tan_u1, asin_u1, acos_u1, atan_u1, atan2_u1, log_u1, and
150+
cbrt_u1. These functions evaluate the corresponding function with at
151+
most 1 ulp of error.
152+
153+
## 2.60 - 2013-03-26
154+
- Added the remaining single precision functions : powf, sinhf,
155+
coshf, tanhf, exp2f, exp10f, log10f, log1pf. Added support for FMA4
156+
(for AMD Bulldozer). Added more test cases. Fixed minor bugs (which
157+
degraded accuracy in some rare cases).
158+
159+
## 2.50 - 2013-03-12
160+
- Added support for AVX2. SLEEF now compiles with ICC.
161+
162+
## 2.40 - 2013-03-07
163+
- Fixed incorrect denormal/nonnumber handling in ldexp, ldexpf,
164+
sinf and cosf. Removed support for Go language.
165+
166+
## 2.31 - 2012-07-05
167+
- Added sincosf.
168+
169+
## 2.30 - 2012-01-20
170+
- Added single precision functions : sinf, cosf, tanf, asinf,
171+
acosf, atanf, logf, expf, atan2f and cbrtf.
172+
173+
## 2.20 - 2012-01-09
174+
- Added exp2, exp10, expm1, log10, log1p, and cbrt.
175+
176+
## 2.10 - 2012-01-05
177+
- asin() and acos() are back.
178+
- Added ilogb() and ldexp().
179+
- Added hyperbolic functions.
180+
- Eliminated dependency on frexp, ldexp, fabs, isnan and isinf.
181+
182+
## 2.00 - 2011-12-30
183+
- All of the algorithm has been updated.
184+
- Both accuracy and speed are improved since version 1.10.
185+
- Denormal number handling is also improved.
186+
187+
## 1.10 - 2010-06-22
188+
- AVX support is added. Accuracy tester is added.
189+
190+
## 1.00 - 2010-05-15
191+
- Initial release

Configure.cmake

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -822,7 +822,13 @@ find_program(SED_COMMAND sed)
822822
if(SLEEF_SHOW_ERROR_LOG)
823823
if (EXISTS ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeError.log)
824824
file(READ ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeError.log FILE_CONTENT)
825+
message("")
826+
message("===== Content of CMakeError.log =====")
827+
message("")
825828
message("${FILE_CONTENT}")
829+
message("")
830+
message("=======================================")
831+
message("")
826832
endif()
827833
endif(SLEEF_SHOW_ERROR_LOG)
828834

doc/html/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ find_package(Git REQUIRED)
44

55
ExternalProject_Add(libsleef
66
GIT_REPOSITORY https://github.com/shibatch/sleef
7-
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${sleef_BINARY_DIR}/contrib
7+
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/contrib
88
)
99

10-
include_directories(${sleef_BINARY_DIR}/contrib/include)
11-
link_directories(${sleef_BINARY_DIR}/contrib/lib)
10+
include_directories(${CMAKE_BINARY_DIR}/contrib/include)
11+
link_directories(${CMAKE_BINARY_DIR}/contrib/lib)
1212

1313
add_executable(hellox86 hellox86.c)
1414
add_dependencies(hellox86 libsleef)

doc/html/aarch32.xhtml

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
<link rel="stylesheet" type="text/css" href="texlike.css"/>
1111
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Ubuntu" />
1212
<link rel="stylesheet" type="text/css" href="sleef.css"/>
13-
<title>SLEEF Documentation</title>
13+
<title>SLEEF - Math library reference (AArch32)</title>
1414
</head>
1515
<body translate="no" class="notranslate">
16-
<h1>SLEEF Documentation - Math library reference</h1>
16+
<h1>SLEEF Documentation - Math library reference (AArch32)</h1>
1717

1818
<h2>Table of contents</h2>
1919

@@ -38,6 +38,7 @@
3838
<li><a href="aarch32.xhtml#other">Other functions</a></li>
3939
</ul>
4040
<li><a class="underlined" href="ppc64.xhtml">Data types and functions for PPC64 architecture</a></li>
41+
<li><a class="underlined" href="s390x.xhtml">Data types and functions for System/390 architecture</a></li>
4142
</ul>
4243
</li>
4344
<li>&nbsp;</li>
@@ -1199,6 +1200,27 @@ This is the vectorized function of <a href="purec.xhtml#Sleef_fmaf"><b class="fu
11991200
This is the vectorized function of <a href="purec.xhtml#Sleef_fmodf"><b class="func">Sleef_fmodf</b></a>. This function may less accurate than the scalar function since AArch32 NEON is not IEEE 754-compliant.
12001201
</p>
12011202

1203+
<hr/>
1204+
1205+
<p class="funcname">Vectorized single precision FP remainder</p>
1206+
1207+
<p class="header">Synopsis</p>
1208+
1209+
<p class="synopsis">
1210+
#include &lt;sleef.h&gt;<br/>
1211+
<br/>
1212+
<b class="type">float32x4_t</b> <b class="func">Sleef_remainderf4</b>(<b class="type">float32x4_t</b> <i class="var">a</i>, <b class="type">float32x4_t</b> <i class="var">b</i>);<br/>
1213+
<b class="type">float32x4_t</b> <b class="func">Sleef_remainderf4_neon</b>(<b class="type">float32x4_t</b> <i class="var">a</i>, <b class="type">float32x4_t</b> <i class="var">b</i>);<br/>
1214+
<br/>
1215+
<span class="normal">Link with</span> -lsleef.
1216+
</p>
1217+
1218+
<p class="header">Description</p>
1219+
1220+
<p class="noindent">
1221+
This is the vectorized function of <a href="purec.xhtml#Sleef_remainderf"><b class="func">Sleef_remainderf</b></a>. This function may less accurate than the scalar function since AArch32 NEON is not IEEE 754-compliant.
1222+
</p>
1223+
12021224
<hr/>
12031225
<p class="funcname">Vectorized single precision function for obtaining fractional component of an FP number</p>
12041226

doc/html/aarch64.xhtml

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
<link rel="stylesheet" type="text/css" href="texlike.css"/>
1111
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Ubuntu" />
1212
<link rel="stylesheet" type="text/css" href="sleef.css"/>
13-
<title>SLEEF Documentation</title>
13+
<title>SLEEF - Math library reference (AArch64)</title>
1414
</head>
1515
<body translate="no" class="notranslate">
16-
<h1>SLEEF Documentation - Math library reference</h1>
16+
<h1>SLEEF Documentation - Math library reference (AArch64)</h1>
1717

1818
<h2>Table of contents</h2>
1919

@@ -38,6 +38,7 @@
3838
</ul>
3939
<li><a class="underlined" href="aarch32.xhtml">Data types and functions for AArch32 architecture</a></li>
4040
<li><a class="underlined" href="ppc64.xhtml">Data types and functions for PPC64 architecture</a></li>
41+
<li><a class="underlined" href="s390x.xhtml">Data types and functions for System/390 architecture</a></li>
4142
</ul>
4243
</li>
4344
<li>&nbsp;</li>
@@ -3689,6 +3690,49 @@ This is the vectorized function of <a href="purec.xhtml#Sleef_fmod"><b class="fu
36893690
This is the vectorized function of <a href="purec.xhtml#Sleef_fmodf"><b class="func">Sleef_fmodf</b></a> with the same accuracy specification.
36903691
</p>
36913692

3693+
<hr/>
3694+
3695+
<p class="funcname">Vectorized double precision FP remainder</p>
3696+
3697+
<p class="header">Synopsis</p>
3698+
3699+
<p class="synopsis">
3700+
#include &lt;sleef.h&gt;<br/>
3701+
<br/>
3702+
<b class="type">float64x2_t</b> <b class="func">Sleef_remainderd2</b>(<b class="type">float64x2_t</b> <i class="var">a</i>, <b class="type">float64x2_t</b> <i class="var">b</i>);<br/>
3703+
<b class="type">float64x2_t</b> <b class="func">Sleef_remainderd2_advsimd</b>(<b class="type">float64x2_t</b> <i class="var">a</i>, <b class="type">float64x2_t</b> <i class="var">b</i>);<br/>
3704+
<b class="type">svfloat64_t</b> <b class="func">Sleef_remainderdx_sve</b>(<b class="type">svfloat64_t</b> <i class="var">a</i>, <b class="type">svfloat64_t</b> <i class="var">b</i>);<br/>
3705+
<br/>
3706+
<span class="normal">Link with</span> -lsleef.
3707+
</p>
3708+
3709+
<p class="header">Description</p>
3710+
3711+
<p class="noindent">
3712+
This is the vectorized function of <a href="purec.xhtml#Sleef_remainder"><b class="func">Sleef_remainder</b></a> with the same accuracy specification.
3713+
</p>
3714+
3715+
<hr/>
3716+
<p class="funcname">Vectorized single precision FP remainder</p>
3717+
3718+
<p class="header">Synopsis</p>
3719+
3720+
<p class="synopsis">
3721+
#include &lt;sleef.h&gt;<br/>
3722+
<br/>
3723+
<b class="type">float32x4_t</b> <b class="func">Sleef_remainderf4</b>(<b class="type">float32x4_t</b> <i class="var">a</i>, <b class="type">float32x4_t</b> <i class="var">b</i>);<br/>
3724+
<b class="type">float32x4_t</b> <b class="func">Sleef_remainderf4_advsimd</b>(<b class="type">float32x4_t</b> <i class="var">a</i>, <b class="type">float32x4_t</b> <i class="var">b</i>);<br/>
3725+
<b class="type">svfloat32_t</b> <b class="func">Sleef_remainderfx_sve</b>(<b class="type">svfloat32_t</b> <i class="var">a</i>, <b class="type">svfloat32_t</b> <i class="var">b</i>);<br/>
3726+
<br/>
3727+
<span class="normal">Link with</span> -lsleef.
3728+
</p>
3729+
3730+
<p class="header">Description</p>
3731+
3732+
<p class="noindent">
3733+
This is the vectorized function of <a href="purec.xhtml#Sleef_remainderf"><b class="func">Sleef_remainderf</b></a> with the same accuracy specification.
3734+
</p>
3735+
36923736
<hr/>
36933737
<p class="funcname">Vectorized double precision function for multiplying by integral power of 2</p>
36943738

0 commit comments

Comments
 (0)