File: rt_nonfinite.cpp1 /* 2 * rt_nonfinite.cpp 3 * 4 * Code generation for model "Controller". 5 * 6 * Model version : 1.1303 7 * Simulink Coder version : 8.3 (R2012b) 20-Jul-2012 8 * C++ source code generated on : Sun Jun 01 14:58:10 2014 9 * 10 * Target selection: grt.tlc 11 * Note: GRT includes extra infrastructure and instrumentation for prototyping 12 * Embedded hardware selection: Generic->32-bit x86 compatible 13 * Code generation objectives: Unspecified 14 * Validation result: Not run 15 */ 16 /* 17 * Abstract: 18 * Function to intialize non-finites, 19 * (Inf, NaN and -Inf). 20 */ 21 #include "rt_nonfinite.h" 22 #include "rtGetNaN.h" 23 #include "rtGetInf.h" 24 25 extern "C" { 26 real_T rtInf; 27 real_T rtMinusInf; 28 real_T rtNaN; 29 real32_T rtInfF; 30 real32_T rtMinusInfF; 31 real32_T rtNaNF; 32 } 33 extern "C" 34 { 35 /* 36 * Initialize the rtInf, rtMinusInf, and rtNaN needed by the 37 * generated code. NaN is initialized as non-signaling. Assumes IEEE. 38 */ 39 void rt_InitInfAndNaN(size_t realSize) 40 { 41 (void) (realSize); 42 rtNaN = rtGetNaN(); 43 rtNaNF = rtGetNaNF(); 44 rtInf = rtGetInf(); 45 rtInfF = rtGetInfF(); 46 rtMinusInf = rtGetMinusInf(); 47 rtMinusInfF = rtGetMinusInfF(); 48 } 49 50 /* Test if value is infinite */ 51 boolean_T rtIsInf(real_T value) 52 { 53 return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U); 54 } 55 56 /* Test if single-precision value is infinite */ 57 boolean_T rtIsInfF(real32_T value) 58 { 59 return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U); 60 } 61 62 /* Test if value is not a number */ 63 boolean_T rtIsNaN(real_T value) 64 { 65 return (boolean_T)((value!=value) ? 1U : 0U); 66 } 67 68 /* Test if single-precision value is not a number */ 69 boolean_T rtIsNaNF(real32_T value) 70 { 71 return (boolean_T)(((value!=value) ? 1U : 0U)); 72 } 73 } 74 |