#include "rtGetNaN.h"
#define NumBitsPerChar                 8U
real_T rtGetNaN ( void ) { size_t bitsPerReal = sizeof ( real_T ) * (
NumBitsPerChar ) ; real_T nan = 0.0 ; if ( bitsPerReal == 32U ) { nan =
rtGetNaNF ( ) ; } else { 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 ; } 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 ; }
