Funktion COSINUS in Clipper

Ersatz für Funktion COS() in CA-Clipper Tools III

FUNCTION COSINUS(zahl,trigmode)
LOCAL incr := 0
LOCAL pi   := 3.14159265358979323846
LOCAL v0   := 0
LOCAL v1   := 0
LOCAL v3   := 0
LOCAL v4   := 0
LOCAL v5   := 0
LOCAL x    := 0
IF UPPER(trigmode)=="DEG"
	x=zahl
ELSEIF UPPER(trigmode)=="RAD"
	x=zahl*pi/180
ELSE
	x=zahl
ENDIF
v0=x
IF x<0
	x=-x
ENDIF
x=x/(2*pi)
x=(x-INT(x))*8
DO WHILE x>=1.0
	x=x*0.5
	incr++
ENDDO
v1=x*x
v3=(v1*0.026247864594320)-17.805645714386
v4=((v3*v1)+1038.5171455198)*x
v5=((v1-181.2832834854)*v1)+2644.5621951222
x=v4/v5
DO WHILE incr>0.5
	x=(x+x)/(1-(x*x))
	incr--
ENDDO
IF v0<0
	x=-x
ENDIF
x=x*x
x=(1-x)/(1+x)
RETURN(x)

 

© 1998 EDV-Beratung L. Heitz

original work for dBase II 7.2.1986 by Dave C. Oshel, Ames, Iowa.
from the Ashton-Tate "Advanced Programmer's Guide", pp. 460-462.
coming from an article in MICROSYSTEMS 4 (December, 1983), by Lurie.
after the algorithms in Hart et al, "Computer Approximations", Kreiger, 1978.