(file) Return to ana_structures.h CVS log (file) (dir) Up to [Development] / JSOC / proj / libs / imrotate

File: [Development] / JSOC / proj / libs / imrotate / ana_structures.h (download)
Revision: 1.1, Tue May 24 16:41:32 2011 UTC (11 years, 10 months ago) by arta
Branch: MAIN
CVS Tags: Ver_LATEST, Ver_9-5, Ver_9-41, Ver_9-4, Ver_9-3, Ver_9-2, Ver_9-1, Ver_9-0, Ver_8-8, Ver_8-7, Ver_8-6, Ver_8-5, Ver_8-4, Ver_8-3, Ver_8-2, Ver_8-12, Ver_8-11, Ver_8-10, Ver_8-1, Ver_8-0, Ver_7-1, Ver_7-0, Ver_6-4, Ver_6-3, Ver_6-2, Ver_6-1, Ver_6-0, Ver_5-14, Ver_5-13, HEAD
Add Sefafins aia lev 1.5 code.

/*these are structures used in many of the ANA modules */
#define ABS(x) ((x)>=0?(x):-(x))
#define	MIN(a,b) (((a)<(b))?(a):(b))
#define	MAX(a,b) (((a)>(b))?(a):(b))
/*plus some parameters we need in some */
/* note that NSCRAT is a count of int's in scrat */
#define NSCRAT 8196
#define	MAX_USER_SUBRS	900
#define	MAX_USER_FUNCS	600
#define	MAX_USER_BLOCKS	600
#define MXNEST 5
#define ANA_SUBSC_FUN 1
#define ANA_POW_FUN 3
typedef unsigned char byte;
struct	sdesc	{ int n;	byte *p; };
/*symbol descriptor structure, 4 types are included - scalar, array (strings
	have same symbol structure with a different class), evb, and edb
	the xx field is used for a hash # for named symbols */
struct	sym_desc { byte class,type; short xx;
	union { union { byte b; short w; int l; float f; double d;} scalar;
		struct { int *ptr; int bstore; } array;
		struct { short args[4]; } evb;
		struct { short args[4]; } edb; } spec;};
/*note, each desc. header is 12 bytes currently for 32 bit machines
and 16 byte for 64 bit machines (because of the 8 byte ptr's) */
struct ana_subr_struct {
	char	*name;		/* ptr to name of subroutine */
	int	minargs;	/* minimum # of args */
	int	maxargs;	/* maximum ... */
	int	(*ptr)();	/* ptr to the subroutine code */
	};
/*ahead is a structure used for array headers */
struct	ahead {	byte ndim, c1, c2, c3;	/*c's are for characteristics
						not yet defined */
		int dims[8];		/*space for 8 dimensions */
		struct flist *facts;};	/*a pointer to things known about
					the array */
struct	flist {	int type;
/*for linked lists of "facts" such as max, min, mean, whatever */
		union { byte b; short w; int l; float f; double d;} value;
		struct flist *next; };
/*scalar union definition */
union scalar { byte b; short w; int l; float f; double d; };
/*linked structure for user subroutine names and first line */
struct user_subr_table {
	char *name; char *line; int num; struct user_subr_table *next; };
/*symbol list structure for subrs, funcs, etc. */
struct sym_list { int num; struct sym_list *next; };

Karen Tian
Powered by
ViewCVS 0.9.4