dce5f3abed
Both IEEE-754 2008 and ISO/IEC TS 18661-4 define the half-cycle trignometric functions cospi, sinpi, and tanpi. The attached patch implements cospi[fl], sinpi[fl], and tanpi[fl]. Limited testing on the cospi and sinpi reveal a max ULP less than 0.89; while tanpi is more problematic with a max ULP less than 2.01 in the interval [0,0.5]. The algorithms used in these functions are documented in {ks}_cospi.c, {ks}_sinpi.c, and s_tanpi.c. Note. I no longer have access to a system with ld128 and adequate support to compile and test the ld128 implementations of these functions. Given the almost complete lack of input from others on improvements to libm, I doubt that anyone cares. If someone does care, the ld128 files contain a number of FIXME comments, and in particular, while the polynomial coefficients are given I did not update the polynomial algorithms to properly use the coefficients. PR: 218514 MFC after: 2 weeks
107 lines
2.9 KiB
Groff
107 lines
2.9 KiB
Groff
.\" Copyright (c) 2017 Steven G. Kargl <kargl@FreeBSD.org>
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd April 1, 2017
|
|
.Dt TANPI 3
|
|
.Os
|
|
.Sh NAME
|
|
.Nm tanpi ,
|
|
.Nm tanpif ,
|
|
.Nm tanpil
|
|
.Nd half\(encycle tangent functions
|
|
.Sh LIBRARY
|
|
.Lb libm
|
|
.Sh SYNOPSIS
|
|
.In math.h
|
|
.Ft double
|
|
.Fn tanpi "double x"
|
|
.Ft float
|
|
.Fn tanpif "float x"
|
|
.Ft long double
|
|
.Fn tanpil "long double x"
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Fn tanpi ,
|
|
.Fn tanpif ,
|
|
and
|
|
.Fn tanpil
|
|
functions compute the tangent of
|
|
.Fa "\(*p \(mu x"
|
|
and measure angles in half-cycles.
|
|
.Sh RETURN VALUES
|
|
The
|
|
.Fn tanpi ,
|
|
.Fn tanpif ,
|
|
and
|
|
.Fn tanpil
|
|
functions returns
|
|
.Fn tan "\(*p \(mu x" .
|
|
If \*(Bax\*(Ba \*(Ge 2^(p - 1)
|
|
where p is the floating\(enpoint precision of
|
|
.Ar x ,
|
|
then the returned value is \*(Pm0 and it has no significance.
|
|
.Sh SPECIAL VALUES
|
|
.Bl -tag
|
|
.It
|
|
.Fn tanpi \*(Pm0
|
|
returns \*(Pm0.
|
|
.It
|
|
.Fn tanpi \*(Pmn
|
|
returns \*(Pm0 for positive integers
|
|
.Ar n .
|
|
.It
|
|
.Fn tanpi \*(Pmn/2
|
|
returns \*(Na for n > 0 and raises an FE_INVALID exception.
|
|
.It
|
|
.Fn tanpi \*(Pm\(if
|
|
return an \*(Na and raises an FE_INVALID exception.
|
|
.It
|
|
.Fn tanpi \*(Na
|
|
return an \*(Na and raises an FE_INVALID exception.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr cos 3 ,
|
|
.Xr cospi 3 ,
|
|
.Xr fenv 3 ,
|
|
.Xr math 3 ,
|
|
.Xr sin 3 ,
|
|
.Xr sinpi 3 ,
|
|
.Xr tan 3 ,
|
|
.Sh AUTHORS
|
|
The half\(encycle trignometric functions were written by
|
|
.An Steven G. Kargl Aq Mt kargl@FreeBSD.org .
|
|
.Sh STANDARDS
|
|
These functions conform to
|
|
IEEE Std 754\(tm\(en2008 ,
|
|
\(dqIEEE Standard for Floating-Point Arithmetic\(dq
|
|
and to
|
|
ISO/IEC TS 18661-4 ,
|
|
\(dqInformation technology \(em Programming languages, their environments,
|
|
and system software interfaces \(em Floating\(enpoint extensions for
|
|
C\(dq \(em Part 4: Supplementary functions.
|
|
|
|
|