#ifndef __c3_double_new_moment_h__
#define __c3_double_new_moment_h__

/* Include files */
#include "sf_runtime/sfc_sf.h"
#include "sf_runtime/sfc_mex.h"
#include "rtwtypes.h"
#include "multiword_types.h"

/* Type Definitions */
#ifndef typedef_SFc3_double_new_momentInstanceStruct
#define typedef_SFc3_double_new_momentInstanceStruct

typedef struct {
  SimStruct *S;
  ChartInfoStruct chartInfo;
  uint32_T chartNumber;
  uint32_T instanceNumber;
  boolean_T c3_dataWrittenToVector[4];
  uint8_T c3_doSetSimStateSideEffects;
  const mxArray *c3_setSimStateSideEffectsInfo;
  int32_T *c3_sfEvent;
  boolean_T *c3_isStable;
  uint8_T *c3_is_active_c3_double_new_moment;
  uint8_T *c3_is_c3_double_new_moment;
  real_T *c3_signal;
  real_T *c3_cart;
  real_T *c3_bound_flag;
  real_T *c3_cartIn;
  real_T *c3_cartOut;
  boolean_T *c3_dorazL;
  boolean_T *c3_dorazR;
  real_T *c3_returnPWM;
  real_T *c3_leveKC;
  real_T *c3_praveKC;
} SFc3_double_new_momentInstanceStruct;

#endif                                 /*typedef_SFc3_double_new_momentInstanceStruct*/

/* Named Constants */

/* Variable Declarations */
extern struct SfDebugInstanceStruct *sfGlobalDebugInstanceStruct;

/* Variable Definitions */

/* Function Declarations */
extern const mxArray *sf_c3_double_new_moment_get_eml_resolved_functions_info
  (void);

/* Function Definitions */
extern void sf_c3_double_new_moment_get_check_sum(mxArray *plhs[]);
extern void c3_double_new_moment_method_dispatcher(SimStruct *S, int_T method,
  void *data);

#endif
