/* RCS $Id: q_defs.h,v 1.3 1997/07/15 14:59:06 ae13 Exp $ */
/*
$Log: q_defs.h,v $
 * Revision 1.3  1997/07/15  14:59:06  ae13
 * *** empty log message ***
 *
 * Revision 1.2  1997/06/10  14:08:37  ae13
 * q_atnd[8] --> q_atnd[6]
 *
 */
/****************************************************************/
/*                                                              */
/*      Filename        : q_defs.h                              */
/*                                                              */
/*      Date            : 1996-03-08                            */
/*                                                              */
/****************************************************************/


#include "q_errm.h"   /* for error trap */  

/* --- Ersatz fuer die Funktion ldexp aus math.h --- */
#define POWER2(x,k) {if (x!=0) {a_diee *test=(a_diee *) &x; test->ieee.expo+=k;}}       /* nur fuer normalisierte Zahlen */

/* --- Ersatz fuer die Funktion frexp aus math.h --- */
#define FREXPO(x,k) {if (x!=0) {a_diee *test=(a_diee *) &x; k=test->ieee.expo;} else k=0;}
			    /* nur fuer normalisierte Zahlen */
 
/* --- Wert einer double-Variable auf 24-Bit abschneiden bzw. runden --- */
#define CUT24(x) (float)(x)

/* --- Wert einer double-Variable einer int-Variable zuweisen  --- */
#define CUTINT(x) (long int)(x)

typedef union 
	{
		double f;
#ifdef IS_64_BIT
		long l;
#endif
		struct 
		{
#if INTEL
			unsigned int mant1 :32;
			unsigned int mant0 :20;
			unsigned int expo  :11;
			unsigned int sign  : 1;
#else
			unsigned int sign  : 1;
			unsigned int expo  :11;
			unsigned int mant0 :20;
			unsigned int mant1 :32;
#endif
		} ieee;
	} a_diee;


extern double q_ln2h;
extern double q_l10i;
extern double q_l2i;
extern double q_l10;
extern double q_l2;
extern double q_p2h;
extern double q_p2mh;
extern double q_mine;
extern double q_minr;
extern double q_pi;
extern double q_piha;
extern double q_pih[7];
extern double q_pi2i;
extern double q_pi2p[3];
extern double q_sqra;
extern double q_ctht;

extern double q_ext1;
extern double q_ext2;
extern double q_ex2a;
extern double q_ex2b;
extern double q_ex2c;
extern double q_ext3;
extern double q_ext4;
extern double q_ext5;
extern double q_extm;
extern double q_extn;
extern double q_exil;
extern double q_exl1;
extern double q_exl2;
extern double q_e10i;
extern double q_e1l1;
extern double q_e1l2;
extern double q_exa[5];
extern double q_exb[9];
extern double q_exc[7];   /* fuer exp2 */
extern double q_exd[7];   /* fuer exp10 */
extern double q_exld[32];
extern double q_extl[32];

extern double q_exem;
extern double q_exep;
extern double q_exmm;
extern double q_exmp;

extern double q_snhm;
extern double q_snhp;
extern double q_cshm;
extern double q_cshp;
extern double q_cthm;
extern double q_cthp;
extern double q_tnhm;
extern double q_tnhp;

extern double q_lgt1;
extern double q_lgt2;
extern double q_lgt3;
extern double q_lgt4;
extern double q_lgt5;
extern double q_lgt6;
extern double q_lgb[2];
extern double q_lgc[4];
extern double q_lgld[129];
extern double q_lgtl[129];

extern double q_logm;
extern double q_logp;
extern double q_lgpm;
extern double q_lgpp;
extern double q_sqtm;
extern double q_sqtp;

extern double q_atna[7];
extern double q_atnb[8];
extern double q_atnc[7];
extern double q_atnd[6];
extern double q_atnt;

extern double q_asnm;
extern double q_asnp;
extern double q_acsm;
extern double q_acsp;
extern double q_actm;
extern double q_actp;
extern double q_atnm;
extern double q_atnp;

extern double q_csnm;
extern double q_csnp;
extern double q_ccsm;
extern double q_ccsp;
extern double q_cctm;
extern double q_cctp;
extern double q_ctnm;
extern double q_ctnp;

extern double q_sinc[6];
extern double q_sins[6];
extern double q_sint[5];

extern double q_sinm;
extern double q_sinp;
extern double q_cosm;
extern double q_cosp;
extern double q_cotm;
extern double q_cotp;
extern double q_tanm;
extern double q_tanp;

extern double q_lg2m;
extern double q_lg2p;
extern double q_l10m;
extern double q_l10p;
extern double q_e2em;
extern double q_e2ep;
extern double q_e10m;
extern double q_e10p;

extern double q_at3i;
