/* * Initialize rtInf needed by the generated code. * Inf is initialized as non-signaling. Assumes IEEE. */ real_T rtGetInf(void) { size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar); real_T inf = 0.0; if (bitsPerReal == 32) { inf = rtGetInfF(); } else { typedef struct { struct { uint32_T wordL; uint32_T wordH; } words; } LittleEndianIEEEDouble; union { LittleEndianIEEEDouble bitVal; real_T fltVal; } tmpVal; tmpVal.bitVal.words.wordH = 0x7FF00000; tmpVal.bitVal.words.wordL = 0x00000000; inf = tmpVal.fltVal; } return inf; }
/* Function: rtGetInf ================================================== * Abstract: * Initialize rtInf needed by the generated code. * Inf is initialized as non-signaling. Assumes IEEE. */ real_T rtGetInf(void) { size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar); real_T inf = 0.0; if (bitsPerReal == 32) { inf = rtGetInfF(); } else { uint16_T one = 1; enum { LittleEndian, BigEndian } machByteOrder = (*((uint8_T *) &one) == 1) ? LittleEndian : BigEndian; switch (machByteOrder) { case LittleEndian: { typedef struct { struct { uint32_T wordL; uint32_T wordH; } words; } LittleEndianIEEEDouble; union { LittleEndianIEEEDouble bitVal; real_T fltVal; } tmpVal; tmpVal.bitVal.words.wordH = 0x7FF00000; tmpVal.bitVal.words.wordL = 0x00000000; inf = tmpVal.fltVal; break; } case BigEndian: { typedef struct { struct { uint32_T wordH; uint32_T wordL; } words; } BigEndianIEEEDouble; union { BigEndianIEEEDouble bitVal; real_T fltVal; } tmpVal; tmpVal.bitVal.words.wordH = 0x7FF00000; tmpVal.bitVal.words.wordL = 0x00000000; inf = tmpVal.fltVal; break; } } } return inf; }
/* * Initialize the rtInf, rtMinusInf, and rtNaN needed by the * generated code. NaN is initialized as non-signaling. Assumes IEEE. */ void rt_InitInfAndNaN(size_t realSize) { (void) (realSize); rtNaN = rtGetNaN(); rtNaNF = rtGetNaNF(); rtInf = rtGetInf(); rtInfF = rtGetInfF(); rtMinusInf = rtGetMinusInf(); rtMinusInfF = rtGetMinusInfF(); }
/* * Initialize rtInf needed by the generated code. * Inf is initialized as non-signaling. Assumes IEEE. */ real_T rtGetInf(void) { size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar); real_T inf = 0.0; if (bitsPerReal == 32U) { inf = rtGetInfF(); } else { union { LittleEndianIEEEDouble bitVal; real_T fltVal; } tmpVal; tmpVal.bitVal.words.wordH = 0x7FF00000U; tmpVal.bitVal.words.wordL = 0x00000000U; inf = tmpVal.fltVal; } return inf; }
rtMinusInfF ; real32_T rtNaNF ; void rt_InitInfAndNaN ( size_t realSize ) { ( void ) ( realSize ) ; rtNaN = rtGetNaN ( ) ; rtNaNF = rtGetNaNF ( ) ; rtInf = rtGetInf ( ) ; rtInfF = rtGetInfF ( ) ; rtMinusInf = rtGetMinusInf ( ) ; rtMinusInfF = rtGetMinusInfF ( ) ; } boolean_T rtIsInf ( real_T value ) {