#ifndef RTW_HEADER_MotorController_FOC_private_h_
#define RTW_HEADER_MotorController_FOC_private_h_
#include "rtwtypes.h"
#include "builtin_typeid_types.h"
#include "multiword_types.h"
#include "MotorController_FOC.h"
#if !defined(rt_VALIDATE_MEMORY)
#define rt_VALIDATE_MEMORY(S, ptr)   if(!(ptr)) {\
  ssSetErrorStatus(rtS, RT_MEMORY_ALLOCATION_ERROR);\
  }
#endif
#if !defined(rt_FREE)
#if !defined(_WIN32)
#define rt_FREE(ptr)   if((ptr) != (NULL)) {\
  free((ptr));\
  (ptr) = (NULL);\
  }
#else
#define rt_FREE(ptr)   if((ptr) != (NULL)) {\
  free((void *)(ptr));\
  (ptr) = (NULL);\
  }
#endif
#endif
#ifndef UCHAR_MAX
#include <limits.h>
#endif
#if ( UCHAR_MAX != (0xFFU) ) || ( SCHAR_MAX != (0x7F) )
#error Code was generated for compiler with different sized uchar/char. \
Consider adjusting Test hardware word size settings on the \
Hardware Implementation pane to match your compiler word sizes as \
defined in limits.h of the compiler. Alternatively, you can \
select the Test hardware is the same as production hardware option and \
select the Enable portable word sizes option on the Code Generation > \
Verification pane for ERT based targets, which will disable the \
preprocessor word size checks.

#endif
#if ( USHRT_MAX != (0xFFFFU) ) || ( SHRT_MAX != (0x7FFF) )
#error Code was generated for compiler with different sized ushort/short. \
Consider adjusting Test hardware word size settings on the \
Hardware Implementation pane to match your compiler word sizes as \
defined in limits.h of the compiler. Alternatively, you can \
select the Test hardware is the same as production hardware option and \
select the Enable portable word sizes option on the Code Generation > \
Verification pane for ERT based targets, which will disable the \
preprocessor word size checks.

#endif
#if ( UINT_MAX != (0xFFFFFFFFU) ) || ( INT_MAX != (0x7FFFFFFF) )
#error Code was generated for compiler with different sized uint/int. \
Consider adjusting Test hardware word size settings on the \
Hardware Implementation pane to match your compiler word sizes as \
defined in limits.h of the compiler. Alternatively, you can \
select the Test hardware is the same as production hardware option and \
select the Enable portable word sizes option on the Code Generation > \
Verification pane for ERT based targets, which will disable the \
preprocessor word size checks.

#endif
#if ( ULONG_MAX != (0xFFFFFFFFU) ) || ( LONG_MAX != (0x7FFFFFFF) )
#error Code was generated for compiler with different sized ulong/long. \
Consider adjusting Test hardware word size settings on the \
Hardware Implementation pane to match your compiler word sizes as \
defined in limits.h of the compiler. Alternatively, you can \
select the Test hardware is the same as production hardware option and \
select the Enable portable word sizes option on the Code Generation > \
Verification pane for ERT based targets, which will disable the \
preprocessor word size checks.

#endif
#ifndef rtInterpolate
#define rtInterpolate(v1,v2,f1,f2)   (((v1)==(v2))?((double)(v1)):  (((f1)*((double)(v1)))+((f2)*((double)(v2)))))
#endif
#ifndef rtRound
#define rtRound(v) ( ((v) >= 0) ?   muDoubleScalarFloor((v) + 0.5) :   muDoubleScalarCeil((v) - 0.5) )
#endif
extern real_T look1_binlxpw ( real_T u0 , const real_T bp0 [ ] , const real_T
table [ ] , uint32_T maxIndex ) ; extern uint16_T plook_u16u16_evencka (
uint16_T u , uint16_T bp0 , uint16_T bpSpace , uint32_T maxIndex ) ; extern
uint8_T plook_u8u16_evencka ( uint16_T u , uint16_T bp0 , uint16_T bpSpace ,
uint32_T maxIndex ) ; extern uint16_T plook_u16s16_evencka ( int16_T u ,
int16_T bp0 , uint16_T bpSpace , uint32_T maxIndex ) ; extern int16_T
div_s16u64 ( uint64_T numerator , uint64_T denominator ) ; extern int16_T
div_s16s64_floor ( int64_T numerator , int64_T denominator ) ; extern int16_T
div_s16s32_floor ( int32_T numerator , int32_T denominator ) ; extern void
ow4zjx1n21 ( real_T jgn4qiohpe , real_T c3xmn5gv5v , real_T fo5oc00snc ,
uint8_T f10wg5twmj , gb0bg0wsfd * localB ) ; extern void mhfpckhuco (
chxtqbwsax * localDW , j0myh2ax4s * localP ) ; extern void fzuldxxrcu (
i4buatj1a5 * localB , chxtqbwsax * localDW ) ; extern void cpoajd5uh0 (
int16_T ljqj1ih2lu , int16_T oyl21pewai , uint16_T k1p3y5bv2m , i4buatj1a5 *
localB , chxtqbwsax * localDW ) ; extern void dydxqoptgm ( hf5kk2nwcr *
localDW , krsac5nzqr * localP ) ; extern void bpx04raylq ( kppbsj2vev *
localB , hf5kk2nwcr * localDW ) ; extern void pubdfj1edp ( int16_T afk1kyk0mr
, int16_T aawbkupoqe , int16_T gkxngwyxh0 , int16_T gghr4xqvjp , int16_T
exvobtye0p , int16_T ievmrrf5tz , int16_T i24ycjg1bi , kppbsj2vev * localB ,
hf5kk2nwcr * localDW ) ; extern void ngslrlcyim ( o3h5k4jeqj * localDW ,
kp0i3ir4r2 * localP ) ; extern void bbjrz03vll ( hqgtxnoyzn * localB ,
o3h5k4jeqj * localDW ) ; extern void n30etil1yv ( int16_T hdtf2xcqaa ,
int16_T h4n3b00roz , int16_T bz34wgjcb2 , int16_T p0s1mhjqok , int16_T
ipdfmuzn4j , int16_T jhxss0jwju , int16_T ptkif5dyes , hqgtxnoyzn * localB ,
o3h5k4jeqj * localDW ) ; extern void b1d41tupsk ( uint16_T g1dqnjn02r ,
uint16_T hfq3rzgjar , uint8_T ackk0imzd0 , uint16_T kljugs3oy4 , uint16_T
cxzyjr5xc4 , uint16_T b1014f3qc0 , uint16_T pirjnxlo5b , avsduhjsqq * localB
) ; extern void bvrjvl2kzf ( a3wuqqhzdr * localDW , njjlrak4ge * localP ) ;
extern void h0w0rxcscx ( nnjbh2uy01 * localB , a3wuqqhzdr * localDW ) ;
extern void meo3xsl5lq ( int16_T ddcgyc02rj , int16_T jynyusg2t0 , nnjbh2uy01
* localB , a3wuqqhzdr * localDW ) ; extern void mrkf2n5cyb ( eqljxdvcin *
localDW , pkbcijxfuo * localP ) ; extern void mnavzygiru ( ajcqwmt0sb *
localB , eqljxdvcin * localDW ) ; extern void fdz4phu3ry ( int16_T bavo4ngebs
, int16_T l2lhxohlnc , int16_T f2ai5oumqx , int16_T m3wqeak4ta , int16_T
cjnwlwzhkd , int16_T lrozvbpc3i , int16_T fctb1nyivp , uint8_T oqjslzcw5p ,
ajcqwmt0sb * localB , eqljxdvcin * localDW , bmesdcnt5d * localZCE ) ; extern
void fdz4phu3ryTID4 ( int16_T ju12ukc1tz , ajcqwmt0sb * localB ) ;
#if defined(MULTITASKING)
#error Model (MotorController_FOC) was built in \
SingleTasking solver mode, however the MULTITASKING define is \
present. If you have multitasking (e.g. -DMT or -DMULTITASKING) \
defined on the Code Generation page of Simulation parameter dialog, please \
remove it and on the Solver page, select solver mode \
MultiTasking. If the Simulation parameter dialog is configured \
correctly, please verify that your template makefile is \
configured correctly.

#endif
#endif
