aasincos.cpp

来自「projapi是一个关于GIS行业投影转换的程序库」· C++ 代码 · 共 42 行

CPP
42
字号

#include "stdafx.h"

/* 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"
#include <math.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 + -
显示快捷键?