DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T p

⟦e636c1681⟧ TextFile

    Length: 4457 (0x1169)
    Types: TextFile
    Names: »plot.h«

Derivation

└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦63303ae94⟧ »unix3.14/TeX3.14.tar.Z« 
        └─⟦c58930e5c⟧ 
            └─⟦this⟧ »TeX3.14/TeXcontrib/gnuplot/translate/plot.h« 

TextFile

/*
 *
 *    gnutex/gnuplot translator  --  plot.h
 *
 * By David Kotz, 1990.
 * Department of Computer Science, Duke University, Durham, NC 27706.
 * Mail to dfk@cs.duke.edu.
 */

#define PROGRAM "gnut2p"
#define PROMPT "gnut2p>"

#define TRUE 1
#define FALSE 0

#define Pi 3.141592653589793

#define MAX_PLOTS 16			/* max number of overlapping plots */
#define MAX_LINE_LEN 512	/* maximum number of chars allowed on line */
#define MAX_TOKENS 200
#define MAX_ID_LEN 200		/* max length of an identifier (long for files)*/

#ifdef PC
#define MAX_UDFS 20			/* max number of user-defined functions */
#else /* PC */
#define MAX_UDFS 100
#endif /* PC */

#define MAX_STYLES 20		/* max number of user-defined styles */
#define MAX_KEYS 16			/* max number of entries in key */
#define MAX_VALUES 50		/* max number of user-defined constants */
#define MAX_AT_LEN 100		/* max number of entries in action table */
#define STACK_DEPTH 100
#define NO_CARET (-1)

#define SAMPLES 160			/* default number of samples for a plot */
#define ZERO	1e-8		/* default for 'zero' set option */

/*
 * note about HUGE:  this number is just used as a flag for really
 *   big numbers, so it doesn't have to be the absolutely biggest number
 *   on the machine.
 */

#ifdef PC
#define  HUGE 1e38
#endif /* PC */

#define END_OF_COMMAND (c_token == num_tokens || equals(c_token,";"))
#define push(arg) f_pushc(arg)	/* same thing! */

#define top_of_stack stack[s_p]

typedef int BOOLEAN;
typedef int (*FUNC_PTR)();

enum {
	C_PI, NEXT_VALUE
};

enum operators {
	PUSH, PUSHC, PUSHD, CALL, TERNIARY, LNOT, BNOT, UMINUS, LOR, LAND, BOR,
	XOR, BAND, EQ, NE, GT, LT, GE, LE, PLUS, MINUS, MULT, DIV, MOD, POWER,
	SF_START
};

enum DATA_TYPES {
	INT, CMPLX
};

enum PLOT_TYPES {
	FUNC, DATA
};

enum PLOT_STYLE {
	LINES, POINTS, IMPULSES, LINESPOINTS, DOTS
};
#define FIXED_STYLES ((int)DOTS) /* highest numbered fixed style */

struct cmplx {
	double real, imag;
};

struct value {
	enum DATA_TYPES type;
	union {
		char *str_val;
		int int_val;
		struct cmplx cmplx_val;
	} v;
};

struct lexical_unit {
	BOOLEAN is_token;		/* true if token, false if a value */ 
	struct value l_val;
	int start_index;	/* index of first char in token */
	int length;		/* length of token in chars */
};

struct at_entry {		/* action table entry */
	int index;		/* index into function table */
	struct value arg;
};

struct at_type {
	int count;
	struct at_entry actions[MAX_AT_LEN];
};

struct ft_entry {		/* standard function table entry */
	char *ft_name;		/* pointer to name of this function */
	FUNC_PTR funct;		/* address of function to call */
};

struct udft_entry {		/* user-defined function table entry */
	char udft_name[MAX_ID_LEN+1];/* name of this function entry */
	struct at_type at;	/* action table to execute */
	char definition[MAX_LINE_LEN+1]; /* definition of function as typed */
	struct value dummy_value;/* current value of dummy variable */
};

struct vt_entry {		/* value table entry */
	char vt_name[MAX_ID_LEN+1];/* name of this value entry */
	BOOLEAN vt_undef;		/* true if not defined yet */
	struct value vt_value;	/* value it has */
};

struct st_entry {		/* style table entry */
	char st_name[MAX_ID_LEN+1];/* name of this style entry */
	BOOLEAN st_undef;		/* true if not defined yet */
	char st_point[MAX_ID_LEN+1]; /* string for point */
	float st_spacing;		/* spacing of seqence */
	short st_length;		/* length of sequence */
#define MAX_STYLE_SEQ_LENGTH 5
	char st_seq[MAX_STYLE_SEQ_LENGTH][MAX_ID_LEN+1]; /* dot sequence */
};
extern int next_style;

struct curve_points {
	enum PLOT_TYPES plot_type;
	unsigned int plot_style;	/* now an int to include user-defined styles */
	char def[MAX_LINE_LEN + 1];
	char title[MAX_LINE_LEN + 1];
};

struct termentry {
	char name[MAX_ID_LEN + 1];
	unsigned int xmax,ymax,v_char,h_char,v_tic,h_tic;
	FUNC_PTR init,reset,text,graphics,move,vector,linetype,lrput_text,
		ulput_text,point;
	FUNC_PTR xyput_text, xtick_text, ytick_text;
	FUNC_PTR plotstyle;
};

/*
 * SS$_NORMAL is "normal completion", STS$M_INHIB_MSG supresses
 * printing a status message.
 * SS$_ABORT is the general abort status code.
 from:	Martin Minow
	decvax!minow
 */
#ifdef	vms
#include		<ssdef.h>
#include		<stsdef.h>
#define	IO_SUCCESS	(SS$_NORMAL | STS$M_INHIB_MSG)
#define	IO_ERROR	SS$_ABORT
#endif /* vms */

#ifndef	IO_SUCCESS	/* DECUS or VMS C will have defined these already */
#define	IO_SUCCESS	0
#endif
#ifndef	IO_ERROR
#define	IO_ERROR	1
#endif