AEB

Dependencies:   mbed

Committer:
clynamen
Date:
Sat Jul 30 13:58:52 2016 +0000
Revision:
3:4bb49a5dfa47
Parent:
2:5811e080f41d
m;

Who changed what in which revision?

UserRevisionLine numberNew 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 */