/*
   Copyright © 1998 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 - 1998.
*/

#ifndef CMDLL_DEFINED

   #define CMDLL_DEFINED

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

#endif