forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			247 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			247 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
									stplugin.h, version 3.0.0
							 | 
						||
| 
								 | 
							
									copyright (c) 2003, 2004, 2006, 2015 StataCorp LP
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								#if !defined(STPLUGIN_H)
							 | 
						||
| 
								 | 
							
								#define STPLUGIN_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(SD_FASTMODE)
							 | 
						||
| 
								 | 
							
								#define SD_SAFEMODE
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define	HP9000		1
							 | 
						||
| 
								 | 
							
								#define OPUNIX		2
							 | 
						||
| 
								 | 
							
								#define APPLEMAC	3
							 | 
						||
| 
								 | 
							
								#define STWIN32		4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef SYSTEM
							 | 
						||
| 
								 | 
							
								#define SYSTEM		STWIN32
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef signed char	ST_sbyte ;
							 | 
						||
| 
								 | 
							
								typedef unsigned char	ST_ubyte ;
							 | 
						||
| 
								 | 
							
								typedef int		ST_int ;
							 | 
						||
| 
								 | 
							
								typedef unsigned	ST_unsigned ;
							 | 
						||
| 
								 | 
							
								typedef short int	ST_int2 ;
							 | 
						||
| 
								 | 
							
								typedef int		ST_int4 ;
							 | 
						||
| 
								 | 
							
								typedef long		ST_long ;
							 | 
						||
| 
								 | 
							
								typedef unsigned int	ST_uint4 ;
							 | 
						||
| 
								 | 
							
								typedef float		ST_float ;
							 | 
						||
| 
								 | 
							
								typedef double		ST_double ;
							 | 
						||
| 
								 | 
							
								typedef unsigned char	ST_boolean ;
							 | 
						||
| 
								 | 
							
								typedef int		ST_retcode ;
							 | 
						||
| 
								 | 
							
								typedef double *	ST_dmkey ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(bTrue)
							 | 
						||
| 
								 | 
							
								#define bTrue		1
							 | 
						||
| 
								 | 
							
								#define bFalse		0
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_HIWORD(x)	((ST_int2)((ST_int4)(x)>>16))
							 | 
						||
| 
								 | 
							
								#define SF_LOWORD(x)	((ST_int2)(x))
							 | 
						||
| 
								 | 
							
								#define SF_MAKELONG(x,y)	((ST_int4)(((ST_int2)(x))|((ST_int4)((ST_int2)(y)))<<16))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if SYSTEM==STWIN32
							 | 
						||
| 
								 | 
							
								#if __cplusplus
							 | 
						||
| 
								 | 
							
								#define STDLL	extern "C" __declspec(dllexport) ST_retcode
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#define STDLL	extern __declspec(dllexport) ST_retcode
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if SYSTEM!=STWIN32
							 | 
						||
| 
								 | 
							
								#if SYSTEM==HP9000
							 | 
						||
| 
								 | 
							
								#include <dl.h>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if SYSTEM==OPUNIX
							 | 
						||
| 
								 | 
							
								#include <dlfcn.h>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if __cplusplus
							 | 
						||
| 
								 | 
							
								#define STDLL extern "C" ST_retcode
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#define STDLL ST_retcode
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#define LPSTR		char *
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct {
							 | 
						||
| 
								 | 
							
									ST_int	type ;
							 | 
						||
| 
								 | 
							
									ST_int	nel ;
							 | 
						||
| 
								 | 
							
									ST_int	m ;
							 | 
						||
| 
								 | 
							
									ST_int	n ;
							 | 
						||
| 
								 | 
							
								} ST_matinfo ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SD_PLUGINMAJ	3
							 | 
						||
| 
								 | 
							
								#define SD_PLUGINMIN	0
							 | 
						||
| 
								 | 
							
								#define SD_PLUGINVER	SF_MAKELONG(SD_PLUGINMAJ,SD_PLUGINMIN)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef void		(* ST_VV)	(void) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_IV)	(void) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_IS)	(char *) ;
							 | 
						||
| 
								 | 
							
								typedef void		(* ST_VU)	(ST_ubyte) ;
							 | 
						||
| 
								 | 
							
								typedef ST_boolean	(* ST_BI)	(ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef ST_boolean	(* ST_BII)	(ST_int,ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef ST_boolean	(* ST_BD)	(ST_double) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_III)	(ST_int,ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef ST_double	(* ST_DII)	(ST_int,ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef ST_double	(* ST_DV)	(void) ;
							 | 
						||
| 
								 | 
							
								typedef ST_double	(* ST_DD)	(ST_double) ;
							 | 
						||
| 
								 | 
							
								typedef ST_double	(* ST_DDD)	(ST_double,ST_double) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISS)	(char *,char *) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISI)	(char *,ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISSI)	(char *,char *,ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef void		(* ST_VSD)	(char *,ST_double) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISD)	(char *, ST_double) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISDp)	(char *,ST_double *) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISDpIIIII)	(char *,ST_int,ST_double *,ST_int,ST_int,ST_int,ST_int,ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISIID)	(char *, ST_int, ST_int, ST_double) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISIIDp)	(char *,ST_int,ST_int,ST_double *) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_ISDpI)	(char *,ST_double *,ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef void		(* ST_VSMip)	(char *,ST_matinfo *) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int		(* ST_IIIDp)	(ST_int, ST_int, ST_double *) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int 		(* ST_IIID)	(ST_int, ST_int, ST_double) ;
							 | 
						||
| 
								 | 
							
								typedef char *		(* ST_SSI)	(char *,ST_int) ;
							 | 
						||
| 
								 | 
							
								typedef char *		(* ST_SSSD)	(char *,char *,ST_double) ;
							 | 
						||
| 
								 | 
							
								typedef char *		(* ST_SSSDM)	(char *,char *,ST_double, ST_dmkey) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int 		(* ST_IIIS)	(ST_int, ST_int, char *) ;
							 | 
						||
| 
								 | 
							
								typedef ST_int 		(* ST_IIISI)	(ST_int, ST_int, char *, ST_int) ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct {
							 | 
						||
| 
								 | 
							
									ST_IS		spoutsml ;
							 | 
						||
| 
								 | 
							
									ST_IS		spoutnosml ;
							 | 
						||
| 
								 | 
							
									ST_VV		spoutflush ;
							 | 
						||
| 
								 | 
							
									ST_VU		set_outputlevel ;
							 | 
						||
| 
								 | 
							
									ST_ISI		get_input ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_IV		pollstd ;
							 | 
						||
| 
								 | 
							
									ST_IV		pollnow ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_SSSD		safereforms ;
							 | 
						||
| 
								 | 
							
									ST_SSSDM	safereforml ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_SSI		gettok ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_ISS		macresave ;
							 | 
						||
| 
								 | 
							
									ST_ISSI		macuse ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_ISDp		scalaruse ;
							 | 
						||
| 
								 | 
							
									ST_ISDp		scalarsave ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_ISDpIIIII	matrixstore ;
							 | 
						||
| 
								 | 
							
									ST_ISDpI	matrixload ;
							 | 
						||
| 
								 | 
							
									ST_VSMip	matrixinfo ;
							 | 
						||
| 
								 | 
							
									ST_ISIIDp	matrixel ;
							 | 
						||
| 
								 | 
							
									ST_int		matsize ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_DII		data, safedata ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_IV		nobs ;
							 | 
						||
| 
								 | 
							
									ST_IV		nvar ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_double	missval ;
							 | 
						||
| 
								 | 
							
									ST_BD		ismissing ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_ISI		stfindvar ;
							 | 
						||
| 
								 | 
							
									ST_BI		isstr ;
							 | 
						||
| 
								 | 
							
									ST_VSD		abvarfcn ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_int		*stopflag ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_DDD		stround ;
							 | 
						||
| 
								 | 
							
									ST_DD		stsqrt ;
							 | 
						||
| 
								 | 
							
									ST_DDD		stpow ;
							 | 
						||
| 
								 | 
							
									ST_DD		stlog ;
							 | 
						||
| 
								 | 
							
									ST_DD		stexp ;
							 | 
						||
| 
								 | 
							
									ST_DV		strandom ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_IIID		store ;
							 | 
						||
| 
								 | 
							
									ST_IIID 	safestore ;
							 | 
						||
| 
								 | 
							
									ST_IIIS		sstore ;
							 | 
						||
| 
								 | 
							
									ST_BI		selobs ;
							 | 
						||
| 
								 | 
							
									ST_IV		nobs1 ;
							 | 
						||
| 
								 | 
							
									ST_IV		nobs2 ;
							 | 
						||
| 
								 | 
							
									ST_IV 		nvars ;
							 | 
						||
| 
								 | 
							
									ST_IS		spouterr ;
							 | 
						||
| 
								 | 
							
									ST_ISIIDp	safematel ;
							 | 
						||
| 
								 | 
							
									ST_ISIID	safematstore ;
							 | 
						||
| 
								 | 
							
									ST_ISIIDp	matel ;
							 | 
						||
| 
								 | 
							
									ST_ISIID	matstore ;
							 | 
						||
| 
								 | 
							
									ST_IIIDp	safevdata ;
							 | 
						||
| 
								 | 
							
									ST_IIIDp	vdata ;
							 | 
						||
| 
								 | 
							
									ST_IS		colsof ;
							 | 
						||
| 
								 | 
							
									ST_IS		rowsof ;
							 | 
						||
| 
								 | 
							
									ST_ISD		scalsave ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_IIIS		sdata ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ST_int2		major ;
							 | 
						||
| 
								 | 
							
									ST_int2		minor ;
							 | 
						||
| 
								 | 
							
									ST_BI		isstrl ;
							 | 
						||
| 
								 | 
							
									ST_BII		isbinary ;
							 | 
						||
| 
								 | 
							
									ST_III		sdatalen ;
							 | 
						||
| 
								 | 
							
									ST_IIISI	strldata ;
							 | 
						||
| 
								 | 
							
								} ST_plugin ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" ST_plugin *_stata_ ;
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								extern ST_plugin *_stata_ ;
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								STDLL pginit(ST_plugin *p) ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_display(a)		((_stata_)->spoutsml((a)))
							 | 
						||
| 
								 | 
							
								#define SF_error(a)		((_stata_)->spouterr((a)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_poll			((_stata_)->pollstd)
							 | 
						||
| 
								 | 
							
								#define SW_stopflag		(*((_stata_)->stopflag))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_macro_save(m,t)	((_stata_)->macresave((m),(t)))
							 | 
						||
| 
								 | 
							
								#define SF_macro_use(m,d,l)	((_stata_)->macuse((m),(d),(l)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_scal_use(s,d)	((_stata_)->scalaruse((s),(d)))
							 | 
						||
| 
								 | 
							
								#define SF_scal_save(s,d)	((_stata_)->scalsave((s),(d)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(SD_SAFEMODE)
							 | 
						||
| 
								 | 
							
								#define SF_mat_el(s,r,c,d)	((_stata_)->safematel((s),(r),(c),(d)))
							 | 
						||
| 
								 | 
							
								#define	SF_mat_store(s,r,c,d)	((_stata_)->safematstore((s),(r),(c),(d)))
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#define SF_mat_el(s,r,c,d)	((_stata_)->matel((s),(r),(c),(d)))
							 | 
						||
| 
								 | 
							
								#define	SF_mat_store(s,r,c,d)	((_stata_)->matstore((s),(r),(c),(d)))
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#define SV_matsize		((_stata_)->matsize)
							 | 
						||
| 
								 | 
							
								#define SF_col(s)		((_stata_)->colsof((s)))
							 | 
						||
| 
								 | 
							
								#define SF_row(s)		((_stata_)->rowsof((s)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(SD_SAFEMODE)
							 | 
						||
| 
								 | 
							
								#define SF_vdata(i,j,d)		((_stata_)->safevdata((i),(j),(d)))
							 | 
						||
| 
								 | 
							
								#define SF_vstore(i,j,v)	((_stata_)->safestore((i),(j),(v)))
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#define SF_vdata(i,j,d)		((_stata_)->vdata((i),(j),(d)))
							 | 
						||
| 
								 | 
							
								#define SF_vstore(i,j,v)	((_stata_)->store((i),(j),(v)))
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_nobs			((_stata_)->nobs)
							 | 
						||
| 
								 | 
							
								#define SF_in1			((_stata_)->nobs1)
							 | 
						||
| 
								 | 
							
								#define SF_in2			((_stata_)->nobs2)
							 | 
						||
| 
								 | 
							
								#define SF_nvar			((_stata_)->nvar)
							 | 
						||
| 
								 | 
							
								#define SF_nvars		((_stata_)->nvars)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_sstore(i,j,s)	((_stata_)->sstore((i),(j),(s)))
							 | 
						||
| 
								 | 
							
								#define SF_sdata(i,j,s)		((_stata_)->sdata((i),(j),(s)))
							 | 
						||
| 
								 | 
							
								#define SF_strldata(i,j,s,l)	((_stata_)->strldata((i),(j),(s),(l)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_sdatalen(i,j)	((_stata_)->sdatalen((i),(j)))
							 | 
						||
| 
								 | 
							
								#define SF_var_is_string(a)	((_stata_)->isstr(a))
							 | 
						||
| 
								 | 
							
								#define SF_var_is_strl(a)	((_stata_)->isstrl(a))
							 | 
						||
| 
								 | 
							
								#define SF_var_is_binary(i,j)	((_stata_)->isbinary((i),(j)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SV_missval		((_stata_)->missval)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SF_is_missing(z)	((_stata_)->ismissing(z))
							 | 
						||
| 
								 | 
							
								#define SF_ifobs(z)		((_stata_)->selobs(z))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |