/**************
Copyright © 1996 Norlinvest Ltd. All rights reserved.
Visual Code Model Generator, EDSpice, EDWin, EE Designer, CompCAD,
CAD 1000, CAD ABC and Visionics are trade marks of Norlinvest Ltd.
Copyright © 1983 - 1996.
***************/

#ifndef DLLPROT_DEFINED
#define DLLPROT_DEFINED

#include "cmtypes.h"
#include "cmproto.h"

typedef struct CMInFcPtr {
	void (*CM_climit_fcn)(double ,double ,double ,double ,double , 
         double ,double ,double ,int ,double *,double *,double *,double *);
	void (*CM_smooth_corner)(double ,double ,double ,
                 double ,double ,double ,double *,double *);
	void (*CM_smooth_discontinuity)(double ,double ,double ,
                 double ,double ,double *,double *);
	double (*CM_smooth_pwl)(double ,double *,double *,int ,double ,double *);
	double (*CM_analog_ramp_factor)(void);
	void *(*CM_analog_alloc)(int , int );
	void *(*CM_analog_get_ptr)(int , int );
	int  (*CM_analog_integrate)(double ,double *,double *);
	int  (*CM_analog_converge)(double *);
	int  (*CM_analog_set_temp_bkpt)(double);
	int  (*CM_analog_set_perm_bkpt)(double);
	void (*CM_analog_not_converged)(void);
	void (*CM_analog_auto_partial)(void);
	void *(*CM_event_alloc)(int , int );
	void *(*CM_event_get_ptr)(int , int );
	int  (*CM_event_queue)(double);
	char *(*CM_message_get_errmsg)(void);
	int  (*CM_message_send)(char *);
	double (*CM_netlist_get_c)(void);
	double (*CM_netlist_get_l)(void);
	Complex_t (*CM_complex_set)(double , double );
	Complex_t (*CM_complex_add)(Complex_t , Complex_t );
	Complex_t (*CM_complex_subtract)(Complex_t , Complex_t );
	Complex_t (*CM_complex_multiply)(Complex_t , Complex_t );
	Complex_t (*CM_complex_divide)(Complex_t , Complex_t );
	void *(*CM_malloc)(size_t);
	void *(*CM_calloc)(size_t ,size_t );
	void *(*CM_realloc)(void *,size_t );
	void (*CM_free)(void *);
}CMInFcPtr;

#endif /* DLLPROT_DEFINED */
