Skip to content

Commit

Permalink
no message (#331)
Browse files Browse the repository at this point in the history
Co-authored-by: shibatch <shibatch.sf.net@gmail.com>
  • Loading branch information
shibatch and shibatch committed Sep 1, 2020
1 parent 3a078bb commit b2f4699
Show file tree
Hide file tree
Showing 18 changed files with 4,669 additions and 389 deletions.
112 changes: 106 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# Changelog
All notable changes to this project will be documented in this file.
## 3.5 - 2020-09-01
- IBM System/390 support is added.
- The library can be built with Clang on Windows.
- Static libraries with LTO can be generated.
- Alternative division and sqrt methods can be chosen with AArch64.
- Header files for inlining the whole SLEEF functions can be generated.
- IEEE remainder function is added.
- GCC-10 can now build SLEEF with SVE support.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## Next release
## 3.4.1 - 2019-10-01
### Changed
- Fixed accuracy problem with tan_u35, atan_u10, log2f_u35 and exp10f_u10.
Expand Down Expand Up @@ -34,6 +36,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
### Changed
- Many functions are now faster
- Testers are now faster

## 3.3.1 - 2018-08-20
### Added
- FreeBSD support is added
Expand All @@ -42,6 +45,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Trigonometric functions now evaluate correctly with full FP
domain.
https://github.com/shibatch/sleef/pull/210

## 3.3 - 2018-07-06
### Added
- SVE target support is added to libsleef.
Expand All @@ -57,6 +61,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
https://github.com/shibatch/sleef/pull/195
- Payne-Hanek like argument reduction is added to libsleef.
https://github.com/shibatch/sleef/pull/197

## 3.2 - 2018-02-26
### Added
- The whole build system of the project migrated from makefiles to
Expand Down Expand Up @@ -89,3 +94,98 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

### Removed
- Makefile build system

## 3.1 - 2017-07-19
- Added AArch64 support
- Implemented the remaining C99 math functions : lgamma, tgamma,
erf, erfc, fabs, copysign, fmax, fmin, fdim, trunc, floor, ceil,
round, rint, modf, ldexp, nextafter, frexp, hypot, and fmod.
- Added dispatcher for x86 functions
- Improved reduction of trigonometric functions
- Added support for 32-bit x86, Cygwin, etc.
- Improved tester

## 3.0 - 2017-02-07
- New API is defined
- Functions for DFT are added
- sincospi functions are added
- gencoef now supports single, extended and quad precision in addition to double precision
- Linux, Windows and Mac OS X are supported
- GCC, Clang, Intel Compiler, Microsoft Visual C++ are supported
- The library can be compiled as DLLs
- Files needed for creating a debian package are now included

## 2.120 - 2017-01-30
- Relicensed to Boost Software License Version 1.0

## 2.110 - 2016-12-11
- The valid range of argument is extended for trig functions
- Specification of each functions regarding to the domain and accuracy is added
- A coefficient generation tool is added
- New testing tools are introduced
- Following functions returned incorrect values when the argument is very large or small : exp, pow, asinh, acosh
- SIMD xsin and xcos returned values more than 1 when FMA is enabled
- Pure C cbrt returned incorrect values when the argument is negative
- tan_u1 returned values with more than 1 ulp of error on rare occasions
- Removed support for Java language(because no one seems using this)

## 2.100 - 2016-12-04
- Added support for AVX-512F and Clang Extended Vectors.

## 2.90 - 2016-11-27
- Added ilogbf. All the reported bugs(listed below) are fixed.
- Log function returned incorrect values when the argument is very small.
- Signs of returned values were incorrect when the argument is signed zero.
- Tester incorrectly counted ULP in some cases.
- ilogb function returned incorrect values in some cases.

## 2.80 - 2013-05-18
- 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 - 2013-04-30
- 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 - 2013-03-26
- 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 - 2013-03-12
- Added support for AVX2. SLEEF now compiles with ICC.

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

## 2.31 - 2012-07-05
- Added sincosf.

## 2.30 - 2012-01-20
- Added single precision functions : sinf, cosf, tanf, asinf,
acosf, atanf, logf, expf, atan2f and cbrtf.

## 2.20 - 2012-01-09
- Added exp2, exp10, expm1, log10, log1p, and cbrt.

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

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

## 1.10 - 2010-06-22
- AVX support is added. Accuracy tester is added.

## 1.00 - 2010-05-15
- Initial release
6 changes: 6 additions & 0 deletions Configure.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -822,7 +822,13 @@ find_program(SED_COMMAND sed)
if(SLEEF_SHOW_ERROR_LOG)
if (EXISTS ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeError.log)
file(READ ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeError.log FILE_CONTENT)
message("")
message("===== Content of CMakeError.log =====")
message("")
message("${FILE_CONTENT}")
message("")
message("=======================================")
message("")
endif()
endif(SLEEF_SHOW_ERROR_LOG)

Expand Down
6 changes: 3 additions & 3 deletions doc/html/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ find_package(Git REQUIRED)

ExternalProject_Add(libsleef
GIT_REPOSITORY https://github.com/shibatch/sleef
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${sleef_BINARY_DIR}/contrib
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/contrib
)

include_directories(${sleef_BINARY_DIR}/contrib/include)
link_directories(${sleef_BINARY_DIR}/contrib/lib)
include_directories(${CMAKE_BINARY_DIR}/contrib/include)
link_directories(${CMAKE_BINARY_DIR}/contrib/lib)

add_executable(hellox86 hellox86.c)
add_dependencies(hellox86 libsleef)
Expand Down
26 changes: 24 additions & 2 deletions doc/html/aarch32.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
<link rel="stylesheet" type="text/css" href="texlike.css"/>
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Ubuntu" />
<link rel="stylesheet" type="text/css" href="sleef.css"/>
<title>SLEEF Documentation</title>
<title>SLEEF - Math library reference (AArch32)</title>
</head>
<body translate="no" class="notranslate">
<h1>SLEEF Documentation - Math library reference</h1>
<h1>SLEEF Documentation - Math library reference (AArch32)</h1>

<h2>Table of contents</h2>

Expand All @@ -38,6 +38,7 @@
<li><a href="aarch32.xhtml#other">Other functions</a></li>
</ul>
<li><a class="underlined" href="ppc64.xhtml">Data types and functions for PPC64 architecture</a></li>
<li><a class="underlined" href="s390x.xhtml">Data types and functions for System/390 architecture</a></li>
</ul>
</li>
<li>&nbsp;</li>
Expand Down Expand Up @@ -1199,6 +1200,27 @@ This is the vectorized function of <a href="purec.xhtml#Sleef_fmaf"><b class="fu
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.
</p>

<hr/>

<p class="funcname">Vectorized single precision FP remainder</p>

<p class="header">Synopsis</p>

<p class="synopsis">
#include &lt;sleef.h&gt;<br/>
<br/>
<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/>
<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/>
<br/>
<span class="normal">Link with</span> -lsleef.
</p>

<p class="header">Description</p>

<p class="noindent">
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.
</p>

<hr/>
<p class="funcname">Vectorized single precision function for obtaining fractional component of an FP number</p>

Expand Down
48 changes: 46 additions & 2 deletions doc/html/aarch64.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
<link rel="stylesheet" type="text/css" href="texlike.css"/>
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Ubuntu" />
<link rel="stylesheet" type="text/css" href="sleef.css"/>
<title>SLEEF Documentation</title>
<title>SLEEF - Math library reference (AArch64)</title>
</head>
<body translate="no" class="notranslate">
<h1>SLEEF Documentation - Math library reference</h1>
<h1>SLEEF Documentation - Math library reference (AArch64)</h1>

<h2>Table of contents</h2>

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

<hr/>

<p class="funcname">Vectorized double precision FP remainder</p>

<p class="header">Synopsis</p>

<p class="synopsis">
#include &lt;sleef.h&gt;<br/>
<br/>
<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/>
<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/>
<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/>
<br/>
<span class="normal">Link with</span> -lsleef.
</p>

<p class="header">Description</p>

<p class="noindent">
This is the vectorized function of <a href="purec.xhtml#Sleef_remainder"><b class="func">Sleef_remainder</b></a> with the same accuracy specification.
</p>

<hr/>
<p class="funcname">Vectorized single precision FP remainder</p>

<p class="header">Synopsis</p>

<p class="synopsis">
#include &lt;sleef.h&gt;<br/>
<br/>
<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/>
<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/>
<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/>
<br/>
<span class="normal">Link with</span> -lsleef.
</p>

<p class="header">Description</p>

<p class="noindent">
This is the vectorized function of <a href="purec.xhtml#Sleef_remainderf"><b class="func">Sleef_remainderf</b></a> with the same accuracy specification.
</p>

<hr/>
<p class="funcname">Vectorized double precision function for multiplying by integral power of 2</p>

Expand Down

0 comments on commit b2f4699

Please sign in to comment.