add new versin and vercos builtin functions

Added new versin(x, [,eps]) for versed sine and vercos(x, [,eps])
for versed cosine.

Updated trig help files.
This commit is contained in:
Landon Curt Noll
2023-09-01 17:38:14 -07:00
parent 1c839dfede
commit b0a48a2b70
18 changed files with 493 additions and 52 deletions

View File

@@ -228,8 +228,8 @@ DETAIL_HELP= abs access acos acosh acot acoth acsc acsch address agd \
sin sinh size sizeof sleep sort sqrt srand srandom ssq stoponerror str \
strcasecmp strcat strcmp strcpy strerror strlen strncasecmp strncmp \
strncpy strpos strprintf strscan strscanf strtolower strtoupper substr \
sum swap system systime tail tan tanh test time trunc usertime version \
xor
sum swap system systime tail tan tanh test time trunc usertime vercos \
versin version xor
# This list is of files that are clones of DETAIL_HELP files. They are
# built from DETAIL_HELP files.

View File

@@ -34,6 +34,7 @@ LINK LIBRARY
SEE ALSO
sin, tan, sec, csc, cot, epsilon
versin, vercos
## Copyright (C) 1999,2021,2023 Landon Curt Noll
##

View File

@@ -23,9 +23,11 @@ LIMITS
LINK LIBRARY
NUMBER *qcot(NUMBER *x, NUMBER *eps)
COMPLEX *c_acot(COMPLEX *c, NUMBER *eps);
SEE ALSO
sin, cos, tan, sec, csc, epsilon
versin, vercos
## Copyright (C) 1999,2021,2023 Landon Curt Noll
##

View File

@@ -26,6 +26,7 @@ LINK LIBRARY
SEE ALSO
sin, cos, tan, sec, cot, epsilon
versin, vercos
## Copyright (C) 1999,2023 Landon Curt Noll
##

View File

@@ -27,6 +27,7 @@ LINK LIBRARY
SEE ALSO
sin, cos, tan, csc, cot, epsilon
versin, vercos
## Copyright (C) 1999,2023 Landon Curt Noll
##

View File

@@ -34,6 +34,7 @@ LINK LIBRARY
SEE ALSO
cos, tan, sec, csc, cot, epsilon
versin, vercos
## Copyright (C) 1999,2021,2023 Landon Curt Noll
##

View File

@@ -24,9 +24,11 @@ LIMITS
LINK LIBRARY
NUMBER *qtan(NUMBER *x, NUMBER *eps)
COMPLEX *c_atan(COMPLEX *c, NUMBER *eps);
SEE ALSO
sin, cos, sec, csc, cot, epsilon
versin, vercos
## Copyright (C) 1999,2023 Landon Curt Noll
##

67
help/vercos Normal file
View File

@@ -0,0 +1,67 @@
NAME
vercos - versed cosine
SYNOPSIS
vercos(x [,eps])
TYPES
x number (real or complex)
eps 0 < real < 1, defaults to epsilon()
return number
DESCRIPTION
Calculate the versed cosine of x to a multiple of eps with error less in
absolute value than .75 * eps.
The versed cosine function is sometimes called coversin, sometimes called cvs,
may be defined as:
vercos(x) = 1 - sin(x)
EXAMPLE
; print vercos(0.2), vercos(3/7), vercos(-31)
0.80133066920493878454 0.58442814500694799193 0.59596235467693499395
; print vercos(1, 1e-5), vercos(1, 1e-10), vercos(1, 1e-15), vercos(1, 1e-20)
0.15853 0.1585290152 0.158529015192104 0.15852901519210349335
; print vercos(2 + 3i, 1e-5), vercos(2 + 3i, 1e-10)
-8.1545+4.16891i -8.1544991469+4.16890696i
; pi = pi(1e-20)
; print vercos(pi/6, 1e-10), vercos(pi/2, 1e-10), vercos(pi, 1e-10), vercos(3*pi/2, 1e-10)
0.5 0 1 2
LIMITS
0 < eps < 1
LINK LIBRARY
NUMBER *qvercos(NUMBER *x, NUMBER *eps)
COMPLEX *c_vercos(COMPLEX *x, NUMBER *eps)
SEE ALSO
sin, cos, tan, sec, csc, cot, epsilon
versin
## Copyright (C) 2023 Landon Curt Noll
##
## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License
## as published by the Free Software Foundation.
##
## Calc is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
## Public License for more details.
##
## A copy of version 2.1 of the GNU Lesser General Public License is
## distributed with calc under the filename COPYING-LGPL. You should have
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
## Under source code control: 2023/08/31 23:07:08
## File existed as early as: 2023
##
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/

67
help/versin Normal file
View File

@@ -0,0 +1,67 @@
NAME
versin - versed sine
SYNOPSIS
versin(x [,eps])
TYPES
x number (real or complex)
eps 0 < real < 1, defaults to epsilon()
return number
DESCRIPTION
Calculate the versed sine of x to a multiple of eps with error less in
absolute value than .75 * eps.
The versed sine function is sometimes called vers, sometimes called ver,
may be defined as:
versin(x) = 1 - cos(x)
EXAMPLE
; print versin(0.2), versin(3/7), versin(-31)
0.01993342215875836888 0.09043964832583332597 0.08525764219546872104
; print versin(1, 1e-5), versin(1, 1e-10), versin(1, 1e-15), versin(1, 1e-20)
0.4597 0.4596976941 0.45969769413186 0.4596976941318602826
; print versin(2 + 3i, 1e-5), versin(2 + 3i, 1e-10)
5.18963+9.10923i 5.189625691+9.1092278938i
; pi = pi(1e-20)
; print versin(pi/3, 1e-10), versin(pi/2, 1e-10), versin(pi, 1e-10), versin(3*pi/2, 1e-10)
0.5 1 2 1
LIMITS
0 < eps < 1
LINK LIBRARY
NUMBER *qversin(NUMBER *x, NUMBER *eps)
COMPLEX *c_versin(COMPLEX *x, NUMBER *eps)
SEE ALSO
sin, cos, tan, sec, csc, cot, epsilon
vercos
## Copyright (C) 2023 Landon Curt Noll
##
## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License
## as published by the Free Software Foundation.
##
## Calc is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
## Public License for more details.
##
## A copy of version 2.1 of the GNU Lesser General Public License is
## distributed with calc under the filename COPYING-LGPL. You should have
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
## Under source code control: 2023/08/31 23:05:28
## File existed as early as: 2023
##
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/