1 | /* |
2 | * rt_nonfinite.c |
3 | * |
4 | * Classroom License -- for classroom instructional use only. Not for |
5 | * government, commercial, academic research, or other organizational use. |
6 | * |
7 | * Code generation for model "RaspberryMagmanControl". |
8 | * |
9 | * Model version : 1.38 |
10 | * Simulink Coder version : 8.11 (R2016b) 25-Aug-2016 |
11 | * C source code generated on : Thu Dec 22 16:38:00 2016 |
12 | * |
13 | * Target selection: ert.tlc |
14 | * Note: GRT includes extra infrastructure and instrumentation for prototyping |
15 | * Embedded hardware selection: ARM Compatible->ARM Cortex |
16 | * Code generation objectives: Unspecified |
17 | * Validation result: Not run |
18 | */ |
19 | |
20 | /* |
21 | * Abstract: |
22 | * Function to initialize non-finites, |
23 | * (Inf, NaN and -Inf). |
24 | */ |
25 | #include "rt_nonfinite.h" |
26 | #include "rtGetNaN.h" |
27 | #include "rtGetInf.h" |
28 | |
29 | real_T rtInf; |
30 | real_T rtMinusInf; |
31 | real_T rtNaN; |
32 | real32_T rtInfF; |
33 | real32_T rtMinusInfF; |
34 | real32_T rtNaNF; |
35 | |
36 | /* |
37 | * Initialize the rtInf, rtMinusInf, and rtNaN needed by the |
38 | * generated code. NaN is initialized as non-signaling. Assumes IEEE. |
39 | */ |
40 | void rt_InitInfAndNaN(size_t realSize) |
41 | { |
42 | (void) (realSize); |
43 | rtNaN = rtGetNaN(); |
44 | rtNaNF = rtGetNaNF(); |
45 | rtInf = rtGetInf(); |
46 | rtInfF = rtGetInfF(); |
47 | rtMinusInf = rtGetMinusInf(); |
48 | rtMinusInfF = rtGetMinusInfF(); |
49 | } |
50 | |
51 | /* Test if value is infinite */ |
52 | boolean_T rtIsInf(real_T value) |
53 | { |
54 | return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U); |
55 | } |
56 | |
57 | /* Test if single-precision value is infinite */ |
58 | boolean_T rtIsInfF(real32_T value) |
59 | { |
60 | return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U); |
61 | } |
62 | |
63 | /* Test if value is not a number */ |
64 | boolean_T rtIsNaN(real_T value) |
65 | { |
66 | return (boolean_T)((value!=value) ? 1U : 0U); |
67 | } |
68 | |
69 | /* Test if single-precision value is not a number */ |
70 | boolean_T rtIsNaNF(real32_T value) |
71 | { |
72 | return (boolean_T)(((value!=value) ? 1U : 0U)); |
73 | } |
74 |