aasincos.c

来自「开源投影系统 Cartographic Projections library」· C语言 代码 · 共 37 行

C
37
字号
/* arc sin, cosine, tan2 and sqrt that will NOT fail */#ifndef lintstatic const char SCCSID[]="@(#)aasincos.c	4.6	93/12/12	GIE	REL";#endif#include <projects.h>#define ONE_TOL	 1.00000000000001#define TOL	0.000000001#define ATOL 1e-50	doubleaasin(double v) {	double av;	if ((av = fabs(v)) >= 1.) {		if (av > ONE_TOL)			pj_errno = -19;		return (v < 0. ? -HALFPI : HALFPI);	}	return asin(v);}	doubleaacos(double v) {	double av;	if ((av = fabs(v)) >= 1.) {		if (av > ONE_TOL)			pj_errno = -19;		return (v < 0. ? PI : 0.);	}	return acos(v);}	doubleasqrt(double v) { return ((v <= 0) ? 0. : sqrt(v)); }	doubleaatan2(double n, double d) {	return ((fabs(n) < ATOL && fabs(d) < ATOL) ? 0. : atan2(n,d));}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?