#include "rtwtypes.h"
#include <math.h>

extern uint16_T  ArrMax(uint16_T *Data, uint16_T m);
extern uint16_T  ArrMin(uint16_T *Data, uint16_T m);
extern int16_T ArrMean(int16_T *Data, uint16_T n);
extern real_T Saturation_r(real_T in,real_T LowLim,real_T UpLim);
extern uint16_T Saturation_u(uint16_T in,uint16_T LowLim,uint16_T UpLim);

extern uint16_T  DataFilt(uint16_T in, uint16_T *out, uint16_T Lim);
extern uint8_T DataFilt8(uint8_T in, uint8_T *out, uint8_T Lim);

extern uint16_T look1_i16tu16(int16_T u0, const int16_T *bp0,  const uint16_T *table, uint16_T MaxLen);
extern uint16_T look1_u16tu16(uint16_T u0, const uint16_T *bp0,  const uint16_T *table, uint16_T MaxLen);
extern uint16_T look2_u16u16tu16(uint16_T x, uint16_T y, const uint16_T xTable[], const uint16_T yTable[], const uint16_T zTable[], uint16_T xLen, uint16_T yLen);

extern boolean_T DiagThrSystem1(boolean_T Enable, boolean_T precondition, uint16_T Input, uint16_T fltThr, uint16_T recThr, uint8_T fltNumThr, uint8_T recNumThr, uint8_T *fltNum, uint8_T *recNum, boolean_T *fitFlg);
extern boolean_T DiagThrSystem2(boolean_T Enable, boolean_T precondition, uint16_T Input, uint16_T fltThr, uint16_T recThr, uint8_T fltNumThr, uint8_T recNumThr, uint8_T *fltNum, uint8_T *recNum, boolean_T *fitFlg);
extern boolean_T JudgeTimeSystem(boolean_T Enable, boolean_T Input, uint16_T *N, uint16_T Thr);