www.pudn.com > jni_sms.zip > float_md.h


/*****************************************************************************/ 
/*                    Copyright (c) IBM Corporation 1997                     */ 
/*****************************************************************************/ 
 
/*****************************************************************************/ 
/* Change activity:                                                          */ 
/*                                                                           */ 
/*   Flag  Reason  Release  Date  Origin Description                         */ 
/*   ---- -------- ------- ------ ------ -----------                         */ 
/*   $L0=  005220   n116   980402 hdspp: JDK 1.1.3 port                      */ 
/*                                                                           */ 
/*****************************************************************************/ 
 
#ifndef _WIN32_FLOAT_H_ 
#define _WIN32_FLOAT_H_ 
 
#undef	float_t 
#undef	double_t 
 
#define NAN_CHECK(l,r,x) (!_isnan((l))&&!_isnan((r))) ? (x : 0) 
 
typedef	float			float_t; 
typedef	double			double_t; 
 
#define	DBL_DEF(a,b,c,d)	double_t a = (b) 
#define	DBL_VAL(a,b,c  )	(a) 
#define	FLT_DEF(a,b,c  )	float_t  a = (b) 
 
#define	int2dbl(a)		((double_t)(a)) 
#define	int2flt(a)		((float_t)(a)) 
 
#define	dbl2int(a)		((int)(a)) 
#define	flt2int(a)		((int)(a)) 
 
#define	dbl2flt(a)		((float)(a)) 
 
#define	flt2dbl(a)		((double)(a)) 
 
#define	str2flt(a,b)		(float_t)strtod(a,b) 
#define	str2dbl(a,b)		strtod(a,b) 
 
char *  flt2str(char *buf, const char * pattern, float_t f); 
char *	dbl2str(char *buf, const char * pattern, double_t d); 
 
#define	dbl_neg(a)		(-(a)) 
#define	dbl_copysign(a,b)	(copysign((a),(b))) 
#define	dbl_add(a,b)		((a)+(b)) 
#define	dbl_sub(a,b)		((a)-(b)) 
#define	dbl_mul(a,b)		((a)*(b)) 
#define	dbl_div(a,b)		((a)/(b)) 
 
#define	dbl_eqz(a)		((a)==0.0) 
#define	dbl_ltz(a)		((a)<0.0) 
#define	dbl_gez(a)		((a)>=0.0) 
#define	dbl_eq(a,b)		((a) == (b)) 
#define	dbl_ne(a,b)		((a) != (b)) 
#define	dbl_ge(a,b)		((a) >= (b)) 
#define	dbl_le(a,b)		((a) <= (b)) 
#define	dbl_lt(a,b)		((a) <  (b)) 
#define	dbl_gt(a,b)		((a) >  (b)) 
 
#define	flt_neg(a)		(-(a)) 
#define	flt_add(a,b)		((a)+(b)) 
#define	flt_sub(a,b)		((a)-(b)) 
#define	flt_mul(a,b)		((a)*(b)) 
#define	flt_div(a,b)		((a)/(b)) 
 
#define	flt_eqz(a)		((a)==0.0) 
#define	flt_ltz(a)		((a)<0.0) 
#define	flt_gez(a)		((a)>=0.0) 
#define	flt_eq(a,b)		((a) == (b)) 
#define	flt_ne(a,b)		((a) != (b)) 
#define	flt_ge(a,b)		((a) >= (b)) 
#define	flt_le(a,b)		((a) <= (b)) 
#define	flt_lt(a,b)		((a) <  (b)) 
#define	flt_gt(a,b)		((a) >  (b)) 
 
#define	tofloat(a)		((float_t)(a)) 
#define	todouble(a)		((double_t)(a)) 
#define	flt2nat(a)		((a)) 
#define	dbl2nat(a)		((a)) 
 
#define	dbl_cos			cos 
#define	dbl_sin			sin 
#define	dbl_tan			tan 
#define	dbl_asin		asin 
#define	dbl_acos		acos 
#define	dbl_atan		atan 
#define	dbl_exp			exp 
#define	dbl_log			log 
#define	dbl_sqrt		sqrt 
#define	dbl_ceil		ceil 
#define	dbl_floor		floor 
#define	dbl_rint		rint 
#define	dbl_atan2		atan2 
#define	dbl_pow			pow 
#define	dbl_fmod		fmod 
#define	dbl_fabs		abs 
#define	dbl_rem			remainder 
 
#define	flt_fmod		fmod 
 
#define	dbl_zero_const		((double_t)0) 
#define dbl_one_const		((double_t)1) 
 
#define	flt_zero_const		((float_t)0) 
#define flt_one_const		((float_t)1) 
 
#define	PosZerod		((double_t)0) 
#define	PosOned			((double_t)1) 
#define	PosInfd			((double_t)INF) 
#define	PosZerof		((float_t)0) 
#define	PosOnef			((float_t)1) 
#define	PosInff			((float_t)INF) 
 
#define	NegZerod		-((double_t)0) 
#define	NegOned			-((double_t)1) 
#define	NegInfd			-((double_t)INF) 
#define	NegZerof		-((float_t)0) 
#define	NegOnef			-((float_t)1) 
#define	NegInff			-((float_t)INF) 
 
#define IS_NAN(x) 		_isnan(x) 
#define IS_NAND(x)		IS_NAN(x) 
#define IS_NANF(x)		IS_NAN(x) 
 
#define	NaNd			((double_t)NAN) 
#define	NaNf			((float_t)NAN) 
 
#endif