neural network trained with sine, sq, tri waveforms

Committer:
cpm219
Date:
Tue Nov 08 00:54:37 2016 +0000
Revision:
0:7ee700dd1955
latest version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cpm219 0:7ee700dd1955 1 //
cpm219 0:7ee700dd1955 2 // File: neural_network3.cpp
cpm219 0:7ee700dd1955 3 //
cpm219 0:7ee700dd1955 4 // Code generated for Simulink model 'neural_network3'.
cpm219 0:7ee700dd1955 5 //
cpm219 0:7ee700dd1955 6 // Model version : 1.11
cpm219 0:7ee700dd1955 7 // Simulink Coder version : 8.10 (R2016a) 10-Feb-2016
cpm219 0:7ee700dd1955 8 // C/C++ source code generated on : Wed Oct 05 11:40:49 2016
cpm219 0:7ee700dd1955 9 //
cpm219 0:7ee700dd1955 10 // Target selection: ert.tlc
cpm219 0:7ee700dd1955 11 // Embedded hardware selection: ARM Compatible->ARM Cortex
cpm219 0:7ee700dd1955 12 // Code generation objectives: Unspecified
cpm219 0:7ee700dd1955 13 // Validation result: Not run
cpm219 0:7ee700dd1955 14 //
cpm219 0:7ee700dd1955 15 #include "neural_network3.h"
cpm219 0:7ee700dd1955 16 #include "neural_network3_private.h"
cpm219 0:7ee700dd1955 17
cpm219 0:7ee700dd1955 18 // Block signals (auto storage)
cpm219 0:7ee700dd1955 19 B_neural_network3_T neural_network3_B;
cpm219 0:7ee700dd1955 20
cpm219 0:7ee700dd1955 21 // Real-time model
cpm219 0:7ee700dd1955 22 RT_MODEL_neural_network3_T neural_network3_M_;
cpm219 0:7ee700dd1955 23 RT_MODEL_neural_network3_T *const neural_network3_M = &neural_network3_M_;
cpm219 0:7ee700dd1955 24 real_T rt_roundd_snf(real_T u)
cpm219 0:7ee700dd1955 25 {
cpm219 0:7ee700dd1955 26 real_T y;
cpm219 0:7ee700dd1955 27 if (fabs(u) < 4.503599627370496E+15) {
cpm219 0:7ee700dd1955 28 if (u >= 0.5) {
cpm219 0:7ee700dd1955 29 y = floor(u + 0.5);
cpm219 0:7ee700dd1955 30 } else if (u > -0.5) {
cpm219 0:7ee700dd1955 31 y = u * 0.0;
cpm219 0:7ee700dd1955 32 } else {
cpm219 0:7ee700dd1955 33 y = ceil(u - 0.5);
cpm219 0:7ee700dd1955 34 }
cpm219 0:7ee700dd1955 35 } else {
cpm219 0:7ee700dd1955 36 y = u;
cpm219 0:7ee700dd1955 37 }
cpm219 0:7ee700dd1955 38
cpm219 0:7ee700dd1955 39 return y;
cpm219 0:7ee700dd1955 40 }
cpm219 0:7ee700dd1955 41
cpm219 0:7ee700dd1955 42 // Model step function
cpm219 0:7ee700dd1955 43 void neural_network3_custom(real_T arg_In1[200], real_T arg_Out1[2])
cpm219 0:7ee700dd1955 44 {
cpm219 0:7ee700dd1955 45 int32_T i;
cpm219 0:7ee700dd1955 46 real_T tmp;
cpm219 0:7ee700dd1955 47 real_T tmp_0;
cpm219 0:7ee700dd1955 48 real_T tmp_1;
cpm219 0:7ee700dd1955 49 real_T tmp_2;
cpm219 0:7ee700dd1955 50 real_T tmp_3;
cpm219 0:7ee700dd1955 51 real_T rtb_Addminy;
cpm219 0:7ee700dd1955 52 real_T rtb_Sum1;
cpm219 0:7ee700dd1955 53
cpm219 0:7ee700dd1955 54 // DotProduct: '<S9>/Dot Product'
cpm219 0:7ee700dd1955 55 tmp_2 = 0.0;
cpm219 0:7ee700dd1955 56
cpm219 0:7ee700dd1955 57 // DotProduct: '<S19>/Dot Product'
cpm219 0:7ee700dd1955 58 tmp_3 = 0.0;
cpm219 0:7ee700dd1955 59
cpm219 0:7ee700dd1955 60 // DotProduct: '<S20>/Dot Product'
cpm219 0:7ee700dd1955 61 rtb_Sum1 = 0.0;
cpm219 0:7ee700dd1955 62
cpm219 0:7ee700dd1955 63 // DotProduct: '<S21>/Dot Product'
cpm219 0:7ee700dd1955 64 neural_network3_B.d0 = 0.0;
cpm219 0:7ee700dd1955 65
cpm219 0:7ee700dd1955 66 // DotProduct: '<S22>/Dot Product'
cpm219 0:7ee700dd1955 67 neural_network3_B.d1 = 0.0;
cpm219 0:7ee700dd1955 68
cpm219 0:7ee700dd1955 69 // DotProduct: '<S23>/Dot Product'
cpm219 0:7ee700dd1955 70 neural_network3_B.d2 = 0.0;
cpm219 0:7ee700dd1955 71
cpm219 0:7ee700dd1955 72 // DotProduct: '<S24>/Dot Product'
cpm219 0:7ee700dd1955 73 neural_network3_B.d3 = 0.0;
cpm219 0:7ee700dd1955 74
cpm219 0:7ee700dd1955 75 // DotProduct: '<S25>/Dot Product'
cpm219 0:7ee700dd1955 76 neural_network3_B.d4 = 0.0;
cpm219 0:7ee700dd1955 77
cpm219 0:7ee700dd1955 78 // DotProduct: '<S26>/Dot Product'
cpm219 0:7ee700dd1955 79 neural_network3_B.d5 = 0.0;
cpm219 0:7ee700dd1955 80
cpm219 0:7ee700dd1955 81 // DotProduct: '<S10>/Dot Product'
cpm219 0:7ee700dd1955 82 neural_network3_B.d6 = 0.0;
cpm219 0:7ee700dd1955 83
cpm219 0:7ee700dd1955 84 // DotProduct: '<S11>/Dot Product'
cpm219 0:7ee700dd1955 85 neural_network3_B.d7 = 0.0;
cpm219 0:7ee700dd1955 86
cpm219 0:7ee700dd1955 87 // DotProduct: '<S12>/Dot Product'
cpm219 0:7ee700dd1955 88 neural_network3_B.d8 = 0.0;
cpm219 0:7ee700dd1955 89
cpm219 0:7ee700dd1955 90 // DotProduct: '<S13>/Dot Product'
cpm219 0:7ee700dd1955 91 neural_network3_B.d9 = 0.0;
cpm219 0:7ee700dd1955 92
cpm219 0:7ee700dd1955 93 // DotProduct: '<S14>/Dot Product'
cpm219 0:7ee700dd1955 94 neural_network3_B.d10 = 0.0;
cpm219 0:7ee700dd1955 95
cpm219 0:7ee700dd1955 96 // DotProduct: '<S15>/Dot Product'
cpm219 0:7ee700dd1955 97 neural_network3_B.d11 = 0.0;
cpm219 0:7ee700dd1955 98
cpm219 0:7ee700dd1955 99 // DotProduct: '<S16>/Dot Product'
cpm219 0:7ee700dd1955 100 tmp = 0.0;
cpm219 0:7ee700dd1955 101
cpm219 0:7ee700dd1955 102 // DotProduct: '<S17>/Dot Product'
cpm219 0:7ee700dd1955 103 tmp_0 = 0.0;
cpm219 0:7ee700dd1955 104
cpm219 0:7ee700dd1955 105 // DotProduct: '<S18>/Dot Product'
cpm219 0:7ee700dd1955 106 tmp_1 = 0.0;
cpm219 0:7ee700dd1955 107 for (i = 0; i < 200; i++) {
cpm219 0:7ee700dd1955 108 // Bias: '<S32>/Add min y' incorporates:
cpm219 0:7ee700dd1955 109 // Bias: '<S32>/Subtract min x'
cpm219 0:7ee700dd1955 110 // Gain: '<S32>/range y // range x'
cpm219 0:7ee700dd1955 111 // Inport: '<Root>/In1'
cpm219 0:7ee700dd1955 112
cpm219 0:7ee700dd1955 113 rtb_Addminy = (arg_In1[i] + neural_network3_ConstP.Subtractminx_Bias[i]) *
cpm219 0:7ee700dd1955 114 neural_network3_ConstP.rangeyrangex_Gain[i] + -1.0;
cpm219 0:7ee700dd1955 115
cpm219 0:7ee700dd1955 116 // DotProduct: '<S9>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 117 // Constant: '<S7>/IW{1,1}(1,:)''
cpm219 0:7ee700dd1955 118
cpm219 0:7ee700dd1955 119 tmp_2 += neural_network3_ConstP.IW111_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 120
cpm219 0:7ee700dd1955 121 // DotProduct: '<S19>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 122 // Constant: '<S7>/IW{1,1}(2,:)''
cpm219 0:7ee700dd1955 123
cpm219 0:7ee700dd1955 124 tmp_3 += neural_network3_ConstP.IW112_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 125
cpm219 0:7ee700dd1955 126 // DotProduct: '<S20>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 127 // Constant: '<S7>/IW{1,1}(3,:)''
cpm219 0:7ee700dd1955 128
cpm219 0:7ee700dd1955 129 rtb_Sum1 += neural_network3_ConstP.IW113_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 130
cpm219 0:7ee700dd1955 131 // DotProduct: '<S21>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 132 // Constant: '<S7>/IW{1,1}(4,:)''
cpm219 0:7ee700dd1955 133
cpm219 0:7ee700dd1955 134 neural_network3_B.d0 += neural_network3_ConstP.IW114_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 135
cpm219 0:7ee700dd1955 136 // DotProduct: '<S22>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 137 // Constant: '<S7>/IW{1,1}(5,:)''
cpm219 0:7ee700dd1955 138
cpm219 0:7ee700dd1955 139 neural_network3_B.d1 += neural_network3_ConstP.IW115_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 140
cpm219 0:7ee700dd1955 141 // DotProduct: '<S23>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 142 // Constant: '<S7>/IW{1,1}(6,:)''
cpm219 0:7ee700dd1955 143
cpm219 0:7ee700dd1955 144 neural_network3_B.d2 += neural_network3_ConstP.IW116_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 145
cpm219 0:7ee700dd1955 146 // DotProduct: '<S24>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 147 // Constant: '<S7>/IW{1,1}(7,:)''
cpm219 0:7ee700dd1955 148
cpm219 0:7ee700dd1955 149 neural_network3_B.d3 += neural_network3_ConstP.IW117_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 150
cpm219 0:7ee700dd1955 151 // DotProduct: '<S25>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 152 // Constant: '<S7>/IW{1,1}(8,:)''
cpm219 0:7ee700dd1955 153
cpm219 0:7ee700dd1955 154 neural_network3_B.d4 += neural_network3_ConstP.IW118_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 155
cpm219 0:7ee700dd1955 156 // DotProduct: '<S26>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 157 // Constant: '<S7>/IW{1,1}(9,:)''
cpm219 0:7ee700dd1955 158
cpm219 0:7ee700dd1955 159 neural_network3_B.d5 += neural_network3_ConstP.IW119_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 160
cpm219 0:7ee700dd1955 161 // DotProduct: '<S10>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 162 // Constant: '<S7>/IW{1,1}(10,:)''
cpm219 0:7ee700dd1955 163
cpm219 0:7ee700dd1955 164 neural_network3_B.d6 += neural_network3_ConstP.IW1110_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 165
cpm219 0:7ee700dd1955 166 // DotProduct: '<S11>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 167 // Constant: '<S7>/IW{1,1}(11,:)''
cpm219 0:7ee700dd1955 168
cpm219 0:7ee700dd1955 169 neural_network3_B.d7 += neural_network3_ConstP.IW1111_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 170
cpm219 0:7ee700dd1955 171 // DotProduct: '<S12>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 172 // Constant: '<S7>/IW{1,1}(12,:)''
cpm219 0:7ee700dd1955 173
cpm219 0:7ee700dd1955 174 neural_network3_B.d8 += neural_network3_ConstP.IW1112_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 175
cpm219 0:7ee700dd1955 176 // DotProduct: '<S13>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 177 // Constant: '<S7>/IW{1,1}(13,:)''
cpm219 0:7ee700dd1955 178
cpm219 0:7ee700dd1955 179 neural_network3_B.d9 += neural_network3_ConstP.IW1113_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 180
cpm219 0:7ee700dd1955 181 // DotProduct: '<S14>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 182 // Constant: '<S7>/IW{1,1}(14,:)''
cpm219 0:7ee700dd1955 183
cpm219 0:7ee700dd1955 184 neural_network3_B.d10 += neural_network3_ConstP.IW1114_Value[i] *
cpm219 0:7ee700dd1955 185 rtb_Addminy;
cpm219 0:7ee700dd1955 186
cpm219 0:7ee700dd1955 187 // DotProduct: '<S15>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 188 // Constant: '<S7>/IW{1,1}(15,:)''
cpm219 0:7ee700dd1955 189
cpm219 0:7ee700dd1955 190 neural_network3_B.d11 += neural_network3_ConstP.IW1115_Value[i] *
cpm219 0:7ee700dd1955 191 rtb_Addminy;
cpm219 0:7ee700dd1955 192
cpm219 0:7ee700dd1955 193 // DotProduct: '<S16>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 194 // Constant: '<S7>/IW{1,1}(16,:)''
cpm219 0:7ee700dd1955 195
cpm219 0:7ee700dd1955 196 tmp += neural_network3_ConstP.IW1116_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 197
cpm219 0:7ee700dd1955 198 // DotProduct: '<S17>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 199 // Constant: '<S7>/IW{1,1}(17,:)''
cpm219 0:7ee700dd1955 200
cpm219 0:7ee700dd1955 201 tmp_0 += neural_network3_ConstP.IW1117_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 202
cpm219 0:7ee700dd1955 203 // DotProduct: '<S18>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 204 // Constant: '<S7>/IW{1,1}(18,:)''
cpm219 0:7ee700dd1955 205
cpm219 0:7ee700dd1955 206 tmp_1 += neural_network3_ConstP.IW1118_Value[i] * rtb_Addminy;
cpm219 0:7ee700dd1955 207 }
cpm219 0:7ee700dd1955 208
cpm219 0:7ee700dd1955 209 // Sum: '<S2>/netsum' incorporates:
cpm219 0:7ee700dd1955 210 // DotProduct: '<S10>/Dot Product'
cpm219 0:7ee700dd1955 211 // DotProduct: '<S11>/Dot Product'
cpm219 0:7ee700dd1955 212 // DotProduct: '<S12>/Dot Product'
cpm219 0:7ee700dd1955 213 // DotProduct: '<S13>/Dot Product'
cpm219 0:7ee700dd1955 214 // DotProduct: '<S14>/Dot Product'
cpm219 0:7ee700dd1955 215 // DotProduct: '<S15>/Dot Product'
cpm219 0:7ee700dd1955 216 // DotProduct: '<S16>/Dot Product'
cpm219 0:7ee700dd1955 217 // DotProduct: '<S17>/Dot Product'
cpm219 0:7ee700dd1955 218 // DotProduct: '<S18>/Dot Product'
cpm219 0:7ee700dd1955 219 // DotProduct: '<S19>/Dot Product'
cpm219 0:7ee700dd1955 220 // DotProduct: '<S20>/Dot Product'
cpm219 0:7ee700dd1955 221 // DotProduct: '<S21>/Dot Product'
cpm219 0:7ee700dd1955 222 // DotProduct: '<S22>/Dot Product'
cpm219 0:7ee700dd1955 223 // DotProduct: '<S23>/Dot Product'
cpm219 0:7ee700dd1955 224 // DotProduct: '<S24>/Dot Product'
cpm219 0:7ee700dd1955 225 // DotProduct: '<S25>/Dot Product'
cpm219 0:7ee700dd1955 226 // DotProduct: '<S26>/Dot Product'
cpm219 0:7ee700dd1955 227 // DotProduct: '<S9>/Dot Product'
cpm219 0:7ee700dd1955 228
cpm219 0:7ee700dd1955 229 neural_network3_B.dv0[0] = tmp_2;
cpm219 0:7ee700dd1955 230 neural_network3_B.dv0[1] = tmp_3;
cpm219 0:7ee700dd1955 231 neural_network3_B.dv0[2] = rtb_Sum1;
cpm219 0:7ee700dd1955 232 neural_network3_B.dv0[3] = neural_network3_B.d0;
cpm219 0:7ee700dd1955 233 neural_network3_B.dv0[4] = neural_network3_B.d1;
cpm219 0:7ee700dd1955 234 neural_network3_B.dv0[5] = neural_network3_B.d2;
cpm219 0:7ee700dd1955 235 neural_network3_B.dv0[6] = neural_network3_B.d3;
cpm219 0:7ee700dd1955 236 neural_network3_B.dv0[7] = neural_network3_B.d4;
cpm219 0:7ee700dd1955 237 neural_network3_B.dv0[8] = neural_network3_B.d5;
cpm219 0:7ee700dd1955 238 neural_network3_B.dv0[9] = neural_network3_B.d6;
cpm219 0:7ee700dd1955 239 neural_network3_B.dv0[10] = neural_network3_B.d7;
cpm219 0:7ee700dd1955 240 neural_network3_B.dv0[11] = neural_network3_B.d8;
cpm219 0:7ee700dd1955 241 neural_network3_B.dv0[12] = neural_network3_B.d9;
cpm219 0:7ee700dd1955 242 neural_network3_B.dv0[13] = neural_network3_B.d10;
cpm219 0:7ee700dd1955 243 neural_network3_B.dv0[14] = neural_network3_B.d11;
cpm219 0:7ee700dd1955 244 neural_network3_B.dv0[15] = tmp;
cpm219 0:7ee700dd1955 245 neural_network3_B.dv0[16] = tmp_0;
cpm219 0:7ee700dd1955 246 neural_network3_B.dv0[17] = tmp_1;
cpm219 0:7ee700dd1955 247
cpm219 0:7ee700dd1955 248 // DotProduct: '<S30>/Dot Product'
cpm219 0:7ee700dd1955 249 tmp_2 = 0.0;
cpm219 0:7ee700dd1955 250
cpm219 0:7ee700dd1955 251 // DotProduct: '<S31>/Dot Product'
cpm219 0:7ee700dd1955 252 tmp_3 = 0.0;
cpm219 0:7ee700dd1955 253 for (i = 0; i < 18; i++) {
cpm219 0:7ee700dd1955 254 // Sum: '<S8>/Sum1' incorporates:
cpm219 0:7ee700dd1955 255 // Constant: '<S2>/b{1}'
cpm219 0:7ee700dd1955 256 // Constant: '<S8>/one'
cpm219 0:7ee700dd1955 257 // Constant: '<S8>/one1'
cpm219 0:7ee700dd1955 258 // Gain: '<S8>/Gain'
cpm219 0:7ee700dd1955 259 // Gain: '<S8>/Gain1'
cpm219 0:7ee700dd1955 260 // Sum: '<S2>/netsum'
cpm219 0:7ee700dd1955 261 // Sum: '<S8>/Sum'
cpm219 0:7ee700dd1955 262
cpm219 0:7ee700dd1955 263 rtb_Sum1 = 1.0 / (exp((neural_network3_B.dv0[i] +
cpm219 0:7ee700dd1955 264 neural_network3_ConstP.b1_Value[i]) * -2.0) + 1.0) * 2.0 - 1.0;
cpm219 0:7ee700dd1955 265
cpm219 0:7ee700dd1955 266 // DotProduct: '<S30>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 267 // Constant: '<S28>/IW{2,1}(1,:)''
cpm219 0:7ee700dd1955 268
cpm219 0:7ee700dd1955 269 tmp_2 += neural_network3_ConstP.IW211_Value[i] * rtb_Sum1;
cpm219 0:7ee700dd1955 270
cpm219 0:7ee700dd1955 271 // DotProduct: '<S31>/Dot Product' incorporates:
cpm219 0:7ee700dd1955 272 // Constant: '<S28>/IW{2,1}(2,:)''
cpm219 0:7ee700dd1955 273
cpm219 0:7ee700dd1955 274 tmp_3 += neural_network3_ConstP.IW212_Value[i] * rtb_Sum1;
cpm219 0:7ee700dd1955 275 }
cpm219 0:7ee700dd1955 276
cpm219 0:7ee700dd1955 277 // Outport: '<Root>/Out1' incorporates:
cpm219 0:7ee700dd1955 278 // Bias: '<S33>/Subtract min y'
cpm219 0:7ee700dd1955 279 // DotProduct: '<S30>/Dot Product'
cpm219 0:7ee700dd1955 280 // DotProduct: '<S31>/Dot Product'
cpm219 0:7ee700dd1955 281 // Gain: '<S33>/Divide by range y'
cpm219 0:7ee700dd1955 282 // Rounding: '<Root>/Rounding Function'
cpm219 0:7ee700dd1955 283 // Sum: '<S3>/netsum'
cpm219 0:7ee700dd1955 284
cpm219 0:7ee700dd1955 285 arg_Out1[0] = rt_roundd_snf(fabs(((tmp_2 + 0.418253410631824) + 1.0) * 0.5));
cpm219 0:7ee700dd1955 286 arg_Out1[1] = rt_roundd_snf(fabs(((tmp_3 + -0.64279410179815355) + 1.0) * 0.5));
cpm219 0:7ee700dd1955 287 }
cpm219 0:7ee700dd1955 288
cpm219 0:7ee700dd1955 289 // Model initialize function
cpm219 0:7ee700dd1955 290 void neural_network3_initialize(void)
cpm219 0:7ee700dd1955 291 {
cpm219 0:7ee700dd1955 292 // Registration code
cpm219 0:7ee700dd1955 293
cpm219 0:7ee700dd1955 294 // initialize error status
cpm219 0:7ee700dd1955 295 rtmSetErrorStatus(neural_network3_M, (NULL));
cpm219 0:7ee700dd1955 296 }
cpm219 0:7ee700dd1955 297
cpm219 0:7ee700dd1955 298 // Model terminate function
cpm219 0:7ee700dd1955 299 void neural_network3_terminate(void)
cpm219 0:7ee700dd1955 300 {
cpm219 0:7ee700dd1955 301 // (no terminate code required)
cpm219 0:7ee700dd1955 302 }
cpm219 0:7ee700dd1955 303
cpm219 0:7ee700dd1955 304 //
cpm219 0:7ee700dd1955 305 // File trailer for generated code.
cpm219 0:7ee700dd1955 306 //
cpm219 0:7ee700dd1955 307 // [EOF]
cpm219 0:7ee700dd1955 308 //