Funktion ARCUS SINUS in Clipper
Ersatz für Funktion ASIN() in CA-Clipper Tools III
FUNCTION ASINUS(zahl,trigmode) LOCAL incr := 0 LOCAL pi := 3.14159265358979323846 LOCAL v0 := 0 LOCAL v1 := 0 LOCAL v2 := 0 LOCAL v3 := 0 LOCAL v4 := 0 LOCAL v5 := 0 LOCAL x := 0 x=zahl IF x>0 v0=x v1=1 ELSEIF x<0 v0=-x v1=-1 ELSE v0=x v1=0 ENDIF IF v0<1 v2=x x=1-(x*x) IF x>0 x=SQRT(x) ENDIF x=v2/x v0=x IF v0<0 v0=-v0 ENDIF IF v0>2.4142135623731 v3=2 v0=-1/v0 ELSEIF v0>0.41421356237310 v3=1 v0=1-(2/(1+v0)) ELSE v3=0 ENDIF v1=216.06230789724 v2=v0*v0 v4=(((12.888383034157*v2+132.70239816398)*v2+322.66207001325)*v2+v1)*v0 v5=(((v2+38.501486508351)*v2+221.05088302842)*v2+394.68283931228)*v2+v1 v0=v4/v5 IF v3>1.5 v0+=1.5707963267949 ELSEIF v3>0.5 v0+=0.78539816339745 ENDIF IF x<0 v0=-v0 ENDIF x=v0 ELSE x=v1*0.5*pi ENDIF IF UPPER(trigmode)=="DEG" x=x ELSEIF UPPER(trigmode)=="RAD" x=x*180/pi ELSE x=x ENDIF RETURN(x)
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.