home *** CD-ROM | disk | FTP | other *** search
- ********************
-
- FUNCTION Arctan
-
- * Written and contributed by ESSOR MASO
- *
- * ABS(arg) < 10^9
- *
- * The error ABS(e(arg)) <= 2*10^(-8)
- *
- * Correct form: ARCTAN(arg)
- *
- * National Bureau of Standards Handbook of Mathematical Functions
-
- PARAMETERS _clwork
-
- IF TYPE("_clwork") != "N"
- RETURN(-1)
- ENDIF
-
- SET DECIMAL TO 10
-
- PRIVATE _clsqu, _clsave, _clsign
-
- _clsign = (_clwork < 0)
- _clwork = ABS(_clwork)
- _clsave = _clwork
- _clgt = (_clwork > 1)
- IF _clwork>1
- STORE 1/_clwork TO _clwork, _clsave
- ENDIF
- _clsqu = _clwork * _clwork
- _clwork = -.0161657367 + .0028662257 * _clsqu
- _clwork = .0429096138 + _clwork * _clsqu
- _clwork = -.0752896400 + _clwork * _clsqu
- _clwork = .1065626393 + _clwork * _clsqu
- _clwork = -.1420889944 + _clwork * _clsqu
- _clwork = .1999355085 + _clwork * _clsqu
- _clwork = -.3333314528 + _clwork * _clsqu
- _clwork = 1 + _clwork * _clsqu
- _clwork = Rounding(_clsave * _clwork,8)
- _clwork = IF(_clgt, 1.57079633-_clwork, _clwork)
- RETURN(IF(_clsign,-_clwork,_clwork))
-
- * End of File