/* * Academic License - for use in teaching, academic research, and meeting * course requirements at degree granting institutions only. Not for * government, commercial, or other organizational use. * File: rtGetNaN.c * * MATLAB Coder version : 24.1 * C/C++ source code generated on : 2025-04-09 02:18:34 */ /* * Abstract: * MATLAB for code generation function to initialize non-finite, NaN */ /* Include Files */ #include "rtGetNaN.h" #include "rt_nonfinite.h" /* * Function: rtGetNaN * ====================================================================== * Abstract: * Initialize rtNaN needed by the generated code. * NaN is initialized as non-signaling. Assumes IEEE. */ real_T rtGetNaN(void) { real_T nan = 0.0; uint16_T one = 1U; enum { LittleEndian, BigEndian } machByteOrder = (*((uint8_T *)&one) == 1U) ? LittleEndian : BigEndian; switch (machByteOrder) { case LittleEndian: { union { LittleEndianIEEEDouble bitVal; real_T fltVal; } tmpVal; tmpVal.bitVal.words.wordH = 0xFFF80000U; tmpVal.bitVal.words.wordL = 0x00000000U; nan = tmpVal.fltVal; break; } case BigEndian: { union { BigEndianIEEEDouble bitVal; real_T fltVal; } tmpVal; tmpVal.bitVal.words.wordH = 0x7FFFFFFFU; tmpVal.bitVal.words.wordL = 0xFFFFFFFFU; nan = tmpVal.fltVal; break; } } return nan; } /* * Function: rtGetNaNF * ===================================================================== * Abstract: * Initialize rtNaNF needed by the generated code. * NaN is initialized as non-signaling. Assumes IEEE */ real32_T rtGetNaNF(void) { IEEESingle nanF = {{0}}; uint16_T one = 1U; enum { LittleEndian, BigEndian } machByteOrder = (*((uint8_T *)&one) == 1U) ? LittleEndian : BigEndian; switch (machByteOrder) { case LittleEndian: { nanF.wordL.wordLuint = 0xFFC00000U; break; } case BigEndian: { nanF.wordL.wordLuint = 0x7FFFFFFFU; break; } } return nanF.wordL.wordLreal; } /* * File trailer for rtGetNaN.c * * [EOF] */