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.39
10 * Simulink Coder version : 8.11 (R2016b) 25-Aug-2016
11 * C source code generated on : Wed Jan 04 15:46:45 2017
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
29real_T rtInf;
30real_T rtMinusInf;
31real_T rtNaN;
32real32_T rtInfF;
33real32_T rtMinusInfF;
34real32_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 */
40void 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 */
52boolean_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 */
58boolean_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 */
64boolean_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 */
70boolean_T rtIsNaNF(real32_T value)
71{
72 return (boolean_T)(((value!=value) ? 1U : 0U));
73}
74