File: rt_nonfinite.c1 /* 2 * Academic License - for use in teaching, academic research, and meeting 3 * course requirements at degree granting institutions only. Not for 4 * government, commercial, or other organizational use. 5 * 6 * rt_nonfinite.c 7 * 8 * Code generation for function 'calculateTransformations' 9 * 10 */ 11 12 /* 13 * Abstract: 14 * MATLAB for code generation function to initialize non-finites, 15 * (Inf, NaN and -Inf). 16 */ 17 #include "rt_nonfinite.h" 18 #include "rtGetNaN.h" 19 #include "rtGetInf.h" 20 21 real_T rtInf; 22 real_T rtMinusInf; 23 real_T rtNaN; 24 real32_T rtInfF; 25 real32_T rtMinusInfF; 26 real32_T rtNaNF; 27 28 /* Function: rt_InitInfAndNaN ================================================== 29 * Abstract: 30 * Initialize the rtInf, rtMinusInf, and rtNaN needed by the 31 * generated code. NaN is initialized as non-signaling. Assumes IEEE. 32 */ 33 void rt_InitInfAndNaN(size_t realSize) 34 { 35 (void) (realSize); 36 rtNaN = rtGetNaN(); 37 rtNaNF = rtGetNaNF(); 38 rtInf = rtGetInf(); 39 rtInfF = rtGetInfF(); 40 rtMinusInf = rtGetMinusInf(); 41 rtMinusInfF = rtGetMinusInfF(); 42 } 43 44 /* Function: rtIsInf ================================================== 45 * Abstract: 46 * Test if value is infinite 47 */ 48 boolean_T rtIsInf(real_T value) 49 { 50 return ((value==rtInf || value==rtMinusInf) ? 1U : 0U); 51 } 52 53 /* Function: rtIsInfF ================================================= 54 * Abstract: 55 * Test if single-precision value is infinite 56 */ 57 boolean_T rtIsInfF(real32_T value) 58 { 59 return(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U); 60 } 61 62 /* Function: rtIsNaN ================================================== 63 * Abstract: 64 * Test if value is not a number 65 */ 66 boolean_T rtIsNaN(real_T value) 67 { 68 69 #if defined(_MSC_VER) && (_MSC_VER <= 1200) 70 71 return _isnan(value)? TRUE:FALSE; 72 73 #else 74 75 return (value!=value)? 1U:0U; 76 77 #endif 78 79 } 80 81 /* Function: rtIsNaNF ================================================= 82 * Abstract: 83 * Test if single-precision value is not a number 84 */ 85 boolean_T rtIsNaNF(real32_T value) 86 { 87 88 #if defined(_MSC_VER) && (_MSC_VER <= 1200) 89 90 return _isnan((real_T)value)? true:false; 91 92 #else 93 94 return (value!=value)? 1U:0U; 95 96 #endif 97 98 } 99 100 /* End of code generation (rt_nonfinite.c) */ 101 |