Vincenzo Comito
/
AEB
AEB
rtGetNaN.cpp@3:4bb49a5dfa47, 2016-07-30 (annotated)
- Committer:
- clynamen
- Date:
- Sat Jul 30 13:58:52 2016 +0000
- Revision:
- 3:4bb49a5dfa47
- Parent:
- 2:5811e080f41d
m;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
clynamen | 2:5811e080f41d | 1 | /* |
clynamen | 2:5811e080f41d | 2 | * Academic License - for use in teaching, academic research, and meeting |
clynamen | 2:5811e080f41d | 3 | * course requirements at degree granting institutions only. Not for |
clynamen | 2:5811e080f41d | 4 | * government, commercial, or other organizational use. |
clynamen | 2:5811e080f41d | 5 | * |
clynamen | 2:5811e080f41d | 6 | * File: rtGetNaN.c |
clynamen | 2:5811e080f41d | 7 | * |
clynamen | 2:5811e080f41d | 8 | * Code generated for Simulink model 'AEB0'. |
clynamen | 2:5811e080f41d | 9 | * |
clynamen | 2:5811e080f41d | 10 | * Model version : 1.63 |
clynamen | 2:5811e080f41d | 11 | * Simulink Coder version : 8.10 (R2016a) 10-Feb-2016 |
clynamen | 2:5811e080f41d | 12 | * C/C++ source code generated on : Tue Jul 26 21:28:16 2016 |
clynamen | 2:5811e080f41d | 13 | * |
clynamen | 2:5811e080f41d | 14 | * Target selection: ert.tlc |
clynamen | 2:5811e080f41d | 15 | * Embedded hardware selection: Intel->x86-64 (Windows64) |
clynamen | 2:5811e080f41d | 16 | * Code generation objectives: Unspecified |
clynamen | 2:5811e080f41d | 17 | * Validation result: Not run |
clynamen | 2:5811e080f41d | 18 | */ |
clynamen | 2:5811e080f41d | 19 | |
clynamen | 2:5811e080f41d | 20 | /* |
clynamen | 2:5811e080f41d | 21 | * Abstract: |
clynamen | 2:5811e080f41d | 22 | * Function to intialize non-finite, NaN |
clynamen | 2:5811e080f41d | 23 | */ |
clynamen | 2:5811e080f41d | 24 | #include "rtGetNaN.h" |
clynamen | 2:5811e080f41d | 25 | #define NumBitsPerChar 8U |
clynamen | 2:5811e080f41d | 26 | |
clynamen | 2:5811e080f41d | 27 | /* |
clynamen | 2:5811e080f41d | 28 | * Initialize rtNaN needed by the generated code. |
clynamen | 2:5811e080f41d | 29 | * NaN is initialized as non-signaling. Assumes IEEE. |
clynamen | 2:5811e080f41d | 30 | */ |
clynamen | 2:5811e080f41d | 31 | real_T rtGetNaN(void) |
clynamen | 2:5811e080f41d | 32 | { |
clynamen | 2:5811e080f41d | 33 | size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar); |
clynamen | 2:5811e080f41d | 34 | real_T nan = 0.0; |
clynamen | 2:5811e080f41d | 35 | if (bitsPerReal == 32U) { |
clynamen | 2:5811e080f41d | 36 | nan = rtGetNaNF(); |
clynamen | 2:5811e080f41d | 37 | } else { |
clynamen | 2:5811e080f41d | 38 | union { |
clynamen | 2:5811e080f41d | 39 | LittleEndianIEEEDouble bitVal; |
clynamen | 2:5811e080f41d | 40 | real_T fltVal; |
clynamen | 2:5811e080f41d | 41 | } tmpVal; |
clynamen | 2:5811e080f41d | 42 | |
clynamen | 2:5811e080f41d | 43 | tmpVal.bitVal.words.wordH = 0xFFF80000U; |
clynamen | 2:5811e080f41d | 44 | tmpVal.bitVal.words.wordL = 0x00000000U; |
clynamen | 2:5811e080f41d | 45 | nan = tmpVal.fltVal; |
clynamen | 2:5811e080f41d | 46 | } |
clynamen | 2:5811e080f41d | 47 | |
clynamen | 2:5811e080f41d | 48 | return nan; |
clynamen | 2:5811e080f41d | 49 | } |
clynamen | 2:5811e080f41d | 50 | |
clynamen | 2:5811e080f41d | 51 | /* |
clynamen | 2:5811e080f41d | 52 | * Initialize rtNaNF needed by the generated code. |
clynamen | 2:5811e080f41d | 53 | * NaN is initialized as non-signaling. Assumes IEEE. |
clynamen | 2:5811e080f41d | 54 | */ |
clynamen | 2:5811e080f41d | 55 | real32_T rtGetNaNF(void) |
clynamen | 2:5811e080f41d | 56 | { |
clynamen | 2:5811e080f41d | 57 | IEEESingle nanF = { { 0 } }; |
clynamen | 2:5811e080f41d | 58 | |
clynamen | 2:5811e080f41d | 59 | nanF.wordL.wordLuint = 0xFFC00000U; |
clynamen | 2:5811e080f41d | 60 | return nanF.wordL.wordLreal; |
clynamen | 2:5811e080f41d | 61 | } |
clynamen | 2:5811e080f41d | 62 | |
clynamen | 2:5811e080f41d | 63 | /* |
clynamen | 2:5811e080f41d | 64 | * File trailer for generated code. |
clynamen | 2:5811e080f41d | 65 | * |
clynamen | 2:5811e080f41d | 66 | * [EOF] |
clynamen | 2:5811e080f41d | 67 | */ |