prueba

Dependencies:   mbed

Committer:
Sarahi
Date:
Fri Dec 04 03:24:26 2015 +0000
Revision:
0:c344a92d3ca2
Child:
1:ed464543ca57
prueba

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sarahi 0:c344a92d3ca2 1 #include "mbed.h"
Sarahi 0:c344a92d3ca2 2
Sarahi 0:c344a92d3ca2 3 Serial pc(USBTX, USBRX); // tx, rx
Sarahi 0:c344a92d3ca2 4 DigitalOut myled(LED2);
Sarahi 0:c344a92d3ca2 5 DigitalOut led_a(LED3);
Sarahi 0:c344a92d3ca2 6 AnalogOut pin_a(A0);
Sarahi 0:c344a92d3ca2 7
Sarahi 0:c344a92d3ca2 8 #define u1 8
Sarahi 0:c344a92d3ca2 9 #define M1 1
Sarahi 0:c344a92d3ca2 10 #define u2 3
Sarahi 0:c344a92d3ca2 11 #define M2 3
Sarahi 0:c344a92d3ca2 12 #define u3 15
Sarahi 0:c344a92d3ca2 13 #define M3 1
Sarahi 0:c344a92d3ca2 14 #define pQ3Q1 0.1 // probability of sending Q3 output to the Q1 input
Sarahi 0:c344a92d3ca2 15 #define pQ3Out 0.9 // probability of delivering Q3 output as system output
Sarahi 0:c344a92d3ca2 16 #define tf 10000
Sarahi 0:c344a92d3ca2 17 #define lambda 10
Sarahi 0:c344a92d3ca2 18 #define pQ1I_Q2I 0.5
Sarahi 0:c344a92d3ca2 19 #define sz_a 1000
Sarahi 0:c344a92d3ca2 20
Sarahi 0:c344a92d3ca2 21 int Q1[sz_a]= {0}; // initial Q1
Sarahi 0:c344a92d3ca2 22 int Q2[sz_a]= {0}; // initial Q2
Sarahi 0:c344a92d3ca2 23 int Q3[sz_a]= {0}; // initial Q3
Sarahi 0:c344a92d3ca2 24 float t = 0; // initial simulation time
Sarahi 0:c344a92d3ca2 25 float t_events_Q1[sz_a] = {0}; // time stamps for the k events
Sarahi 0:c344a92d3ca2 26 float t_events_Q2[sz_a] = {0}; // time stamps for the k events
Sarahi 0:c344a92d3ca2 27 float t_events_Q3[sz_a]= {0}; // time stamps for the k events
Sarahi 0:c344a92d3ca2 28 int k=1; // event number
Sarahi 0:c344a92d3ca2 29
Sarahi 0:c344a92d3ca2 30 double SI = 0;
Sarahi 0:c344a92d3ca2 31
Sarahi 0:c344a92d3ca2 32 double Q1I1 = tf;
Sarahi 0:c344a92d3ca2 33 double Q1I2 = 0;
Sarahi 0:c344a92d3ca2 34 double Q1O = 0;
Sarahi 0:c344a92d3ca2 35
Sarahi 0:c344a92d3ca2 36 double Q2I1 = 0;
Sarahi 0:c344a92d3ca2 37 double Q2O = 0;
Sarahi 0:c344a92d3ca2 38
Sarahi 0:c344a92d3ca2 39 double Q3I1 = 0;
Sarahi 0:c344a92d3ca2 40 double Q3I2 = 0;
Sarahi 0:c344a92d3ca2 41 double Q3O = tf;
Sarahi 0:c344a92d3ca2 42
Sarahi 0:c344a92d3ca2 43
Sarahi 0:c344a92d3ca2 44 double SO = 0;
Sarahi 0:c344a92d3ca2 45
Sarahi 0:c344a92d3ca2 46 float Q1_lambda [sz_a]= {lambda*0.5};
Sarahi 0:c344a92d3ca2 47 float Q2_lambda [sz_a]= {lambda*0.5};
Sarahi 0:c344a92d3ca2 48 float Q3_lambda [sz_a]= {1/(u1*M1) + 1/(u2*M2)};
Sarahi 0:c344a92d3ca2 49
Sarahi 0:c344a92d3ca2 50 float t_Q1=0;
Sarahi 0:c344a92d3ca2 51 float t_Q2=0;
Sarahi 0:c344a92d3ca2 52 float t_Q3=0;
Sarahi 0:c344a92d3ca2 53
Sarahi 0:c344a92d3ca2 54 float eventtime_Q1=0;
Sarahi 0:c344a92d3ca2 55 float eventtime_Q2=0;
Sarahi 0:c344a92d3ca2 56 float eventtime_Q3=0;
Sarahi 0:c344a92d3ca2 57 float eventtime=0;
Sarahi 0:c344a92d3ca2 58
Sarahi 0:c344a92d3ca2 59 double min_2(double x, double y);
Sarahi 0:c344a92d3ca2 60 double min_3(double x, double y, double z);
Sarahi 0:c344a92d3ca2 61 int max_2(int x, int y);
Sarahi 0:c344a92d3ca2 62 double max_3(double x, double y, double z);
Sarahi 0:c344a92d3ca2 63 float var_rand(int x);
Sarahi 0:c344a92d3ca2 64
Sarahi 0:c344a92d3ca2 65 int Q1k;
Sarahi 0:c344a92d3ca2 66 int Q2k;
Sarahi 0:c344a92d3ca2 67 int Q3k;
Sarahi 0:c344a92d3ca2 68
Sarahi 0:c344a92d3ca2 69
Sarahi 0:c344a92d3ca2 70
Sarahi 0:c344a92d3ca2 71
Sarahi 0:c344a92d3ca2 72 int i=0;
Sarahi 0:c344a92d3ca2 73 int main()
Sarahi 0:c344a92d3ca2 74 {
Sarahi 0:c344a92d3ca2 75
Sarahi 0:c344a92d3ca2 76 while( t <= tf ){
Sarahi 0:c344a92d3ca2 77 myled=0;
Sarahi 0:c344a92d3ca2 78 //exprnd(1/freq) simulate an exponential pdf with parameter = average time = 1 / arriving rate
Sarahi 0:c344a92d3ca2 79
Sarahi 0:c344a92d3ca2 80 // System input
Sarahi 0:c344a92d3ca2 81
Sarahi 0:c344a92d3ca2 82 SI = var_rand(lambda);
Sarahi 0:c344a92d3ca2 83
Sarahi 0:c344a92d3ca2 84
Sarahi 0:c344a92d3ca2 85 // Q1
Sarahi 0:c344a92d3ca2 86 Q1I1 = Q3O/pQ3Q1;
Sarahi 0:c344a92d3ca2 87 Q1I2 = SI/0.5;
Sarahi 0:c344a92d3ca2 88 printf("Sl: %lf \n", SI);
Sarahi 0:c344a92d3ca2 89 Q1_lambda [k]= (1/Q1I1 + 1/Q1I2);
Sarahi 0:c344a92d3ca2 90
Sarahi 0:c344a92d3ca2 91 //printf("Q1I1: %lf \n", Q1I1);
Sarahi 0:c344a92d3ca2 92 //printf("Q1I2: %lf \n", Q1I2);
Sarahi 0:c344a92d3ca2 93 //printf("Q1_lambda: %f \n", Q1_lambda[k]);
Sarahi 0:c344a92d3ca2 94
Sarahi 0:c344a92d3ca2 95 if(Q1[k] > 0){
Sarahi 0:c344a92d3ca2 96 Q1O = u1*M1; // service time in the queue
Sarahi 0:c344a92d3ca2 97 Q1O= var_rand(Q1O);
Sarahi 0:c344a92d3ca2 98 }
Sarahi 0:c344a92d3ca2 99 else{
Sarahi 0:c344a92d3ca2 100 Q1O= min_2(Q1I1,Q1I2)+1.0;
Sarahi 0:c344a92d3ca2 101 }
Sarahi 0:c344a92d3ca2 102 //printf("Q1O: %lf \n", Q1O);
Sarahi 0:c344a92d3ca2 103
Sarahi 0:c344a92d3ca2 104 // Update queue Q1
Sarahi 0:c344a92d3ca2 105 t_events_Q1[k]=(t+min_3(Q1I1,Q1I2,Q1O));
Sarahi 0:c344a92d3ca2 106 //printf("Q1K :%d \n",Q1[k]);
Sarahi 0:c344a92d3ca2 107 if ( (Q1O < Q1I1) && (Q1O < Q1I2) ){
Sarahi 0:c344a92d3ca2 108 Q1k=Q1[k]- 1;
Sarahi 0:c344a92d3ca2 109 Q1[k+1]=max_2(0,Q1k); // Q1 is reduced by one
Sarahi 0:c344a92d3ca2 110
Sarahi 0:c344a92d3ca2 111 }
Sarahi 0:c344a92d3ca2 112 else {
Sarahi 0:c344a92d3ca2 113 Q1[k+1]=Q1[k]+1; // Q1 is increased by one due to Q1 input (only one of the two inputs is considered)
Sarahi 0:c344a92d3ca2 114 }
Sarahi 0:c344a92d3ca2 115
Sarahi 0:c344a92d3ca2 116 //printf("Q1K :%d \n",Q1[k+1]);
Sarahi 0:c344a92d3ca2 117 eventtime_Q1 = min_3(Q1I1, Q1I2, Q1O);
Sarahi 0:c344a92d3ca2 118 t_Q1 = t;
Sarahi 0:c344a92d3ca2 119 t_Q1 = t_Q1 + eventtime_Q1;
Sarahi 0:c344a92d3ca2 120
Sarahi 0:c344a92d3ca2 121 // Q2
Sarahi 0:c344a92d3ca2 122 Q2I1 = SI/pQ1I_Q2I;
Sarahi 0:c344a92d3ca2 123 //printf("Q2I1 :%lf \n",Q2I1);
Sarahi 0:c344a92d3ca2 124 Q2_lambda[k] = (1.0/Q2I1);
Sarahi 0:c344a92d3ca2 125 //printf("Q2_lambda :%f \n",Q2_lambda[k]);
Sarahi 0:c344a92d3ca2 126
Sarahi 0:c344a92d3ca2 127 if(Q2[k] > 0){
Sarahi 0:c344a92d3ca2 128 Q2O = u2*M2; // service time in the queue
Sarahi 0:c344a92d3ca2 129 Q2O= var_rand(Q2O);
Sarahi 0:c344a92d3ca2 130 }
Sarahi 0:c344a92d3ca2 131 else{
Sarahi 0:c344a92d3ca2 132 Q2O = Q2I1 + 1.0;
Sarahi 0:c344a92d3ca2 133 }
Sarahi 0:c344a92d3ca2 134 //printf("Q20 :%f \n",Q2O);
Sarahi 0:c344a92d3ca2 135
Sarahi 0:c344a92d3ca2 136 // Update queue Q2
Sarahi 0:c344a92d3ca2 137 t_events_Q2[k]=(t+min_2(Q2I1, Q2O));
Sarahi 0:c344a92d3ca2 138 //printf("Q2[k]: %d\n",Q2[k]);
Sarahi 0:c344a92d3ca2 139 if ( Q2O < Q2I1 ){
Sarahi 0:c344a92d3ca2 140 Q2k=Q2[k]- 1;
Sarahi 0:c344a92d3ca2 141 // printf("Q2K %d: \n",Q2k);
Sarahi 0:c344a92d3ca2 142 Q2[k+1]=max_2(0,Q2k); // Q2 is reduced by one
Sarahi 0:c344a92d3ca2 143 }
Sarahi 0:c344a92d3ca2 144 else{
Sarahi 0:c344a92d3ca2 145 Q2[k+1]= (Q2[k])+1; // Q2 is increased by one due to Q2 input
Sarahi 0:c344a92d3ca2 146 }
Sarahi 0:c344a92d3ca2 147 //printf("Q2[k]: %d\n",Q2[k+1]);
Sarahi 0:c344a92d3ca2 148 eventtime_Q2 = min_2(Q2I1, Q2O);
Sarahi 0:c344a92d3ca2 149 t_Q2 = t;
Sarahi 0:c344a92d3ca2 150 t_Q2 = t_Q2 + eventtime_Q2;
Sarahi 0:c344a92d3ca2 151
Sarahi 0:c344a92d3ca2 152
Sarahi 0:c344a92d3ca2 153 //Q3
Sarahi 0:c344a92d3ca2 154 Q3I1 = Q1O;
Sarahi 0:c344a92d3ca2 155 Q3I2 = Q2O;
Sarahi 0:c344a92d3ca2 156 //printf("Q3I1: %lf \n",Q3I1);
Sarahi 0:c344a92d3ca2 157 //printf("Q3I2: %lf \n",Q3I2);
Sarahi 0:c344a92d3ca2 158 Q3_lambda [k]= 1/Q3I1 + 1/Q3I2;
Sarahi 0:c344a92d3ca2 159 //printf("Q3_lambda: %f \n",Q3_lambda[k]);
Sarahi 0:c344a92d3ca2 160
Sarahi 0:c344a92d3ca2 161 if(Q3[k] > 0){
Sarahi 0:c344a92d3ca2 162 Q3O = u3*M3; // service time in the queue
Sarahi 0:c344a92d3ca2 163 Q3O= var_rand(Q3O);
Sarahi 0:c344a92d3ca2 164 }
Sarahi 0:c344a92d3ca2 165 else{
Sarahi 0:c344a92d3ca2 166 Q3O = min_2(Q1O, Q2O) + 1.0;
Sarahi 0:c344a92d3ca2 167 }
Sarahi 0:c344a92d3ca2 168
Sarahi 0:c344a92d3ca2 169 //printf("Q3O: %lf \n",Q3O);
Sarahi 0:c344a92d3ca2 170 // Update queue Q3
Sarahi 0:c344a92d3ca2 171 t_events_Q3[k]= t+min_3(Q3I1, Q3I2, Q3O);
Sarahi 0:c344a92d3ca2 172 //printf("Q3[k]: %d \n", Q3[k]);
Sarahi 0:c344a92d3ca2 173 if ( (Q3O < Q3I1) && (Q3O < Q3I2) ){
Sarahi 0:c344a92d3ca2 174 Q3k=Q3[k]- 1;
Sarahi 0:c344a92d3ca2 175 // printf("Q3k: %f \n", Q3k);
Sarahi 0:c344a92d3ca2 176 Q3[k+1]=max_2(0,Q3k); // Q3 is reduced by one
Sarahi 0:c344a92d3ca2 177 }
Sarahi 0:c344a92d3ca2 178 else {
Sarahi 0:c344a92d3ca2 179 Q3[k+1]= Q3[k] + 1; // Q3 is increased by one due to Q3 input (only one of the two inputs is considered)
Sarahi 0:c344a92d3ca2 180
Sarahi 0:c344a92d3ca2 181 }
Sarahi 0:c344a92d3ca2 182 //printf("Q3[k]: %d \n",Q3[k+1]);
Sarahi 0:c344a92d3ca2 183 eventtime_Q3 = min_3(Q3I1, Q3I2, Q3O);
Sarahi 0:c344a92d3ca2 184 t_Q3 = t;
Sarahi 0:c344a92d3ca2 185 t_Q3 = t_Q3 + eventtime_Q2;
Sarahi 0:c344a92d3ca2 186
Sarahi 0:c344a92d3ca2 187 // System output
Sarahi 0:c344a92d3ca2 188 SO = Q3O/pQ3Out;
Sarahi 0:c344a92d3ca2 189
Sarahi 0:c344a92d3ca2 190 eventtime = max_3(eventtime_Q1, eventtime_Q2, eventtime_Q3);
Sarahi 0:c344a92d3ca2 191 t = t + eventtime;
Sarahi 0:c344a92d3ca2 192 k=k+1;
Sarahi 0:c344a92d3ca2 193
Sarahi 0:c344a92d3ca2 194 myled=1;
Sarahi 0:c344a92d3ca2 195 wait(0.5);
Sarahi 0:c344a92d3ca2 196 }
Sarahi 0:c344a92d3ca2 197
Sarahi 0:c344a92d3ca2 198
Sarahi 0:c344a92d3ca2 199 led_a=0;
Sarahi 0:c344a92d3ca2 200 wait(1);
Sarahi 0:c344a92d3ca2 201 pc.printf("k=");
Sarahi 0:c344a92d3ca2 202 pc.printf("%d\r\n",k);
Sarahi 0:c344a92d3ca2 203 wait(.5);
Sarahi 0:c344a92d3ca2 204
Sarahi 0:c344a92d3ca2 205 pc.printf("Q1\n");
Sarahi 0:c344a92d3ca2 206 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 207 pc.printf("%d, ",Q1[i]);
Sarahi 0:c344a92d3ca2 208
Sarahi 0:c344a92d3ca2 209 }
Sarahi 0:c344a92d3ca2 210
Sarahi 0:c344a92d3ca2 211 pc.printf("\n Q2\n");
Sarahi 0:c344a92d3ca2 212 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 213 pc.printf("%d, ",Q2[i]);
Sarahi 0:c344a92d3ca2 214
Sarahi 0:c344a92d3ca2 215 }
Sarahi 0:c344a92d3ca2 216
Sarahi 0:c344a92d3ca2 217 pc.printf("\n Q3\n");
Sarahi 0:c344a92d3ca2 218 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 219 pc.printf("%d, ",Q3[i]);
Sarahi 0:c344a92d3ca2 220
Sarahi 0:c344a92d3ca2 221 }
Sarahi 0:c344a92d3ca2 222
Sarahi 0:c344a92d3ca2 223 pc.printf("\n Q1_lambda\n");
Sarahi 0:c344a92d3ca2 224 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 225 pc.printf("%f, ",Q1_lambda[i]);
Sarahi 0:c344a92d3ca2 226
Sarahi 0:c344a92d3ca2 227 }
Sarahi 0:c344a92d3ca2 228
Sarahi 0:c344a92d3ca2 229 pc.printf("\n Q2_lambda\n");
Sarahi 0:c344a92d3ca2 230 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 231 pc.printf("%f, ",Q2_lambda[i]);
Sarahi 0:c344a92d3ca2 232
Sarahi 0:c344a92d3ca2 233 }
Sarahi 0:c344a92d3ca2 234 pc.printf("\n Q3_lambda\n");
Sarahi 0:c344a92d3ca2 235 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 236 pc.printf("%f, ",Q3_lambda[i]);
Sarahi 0:c344a92d3ca2 237
Sarahi 0:c344a92d3ca2 238 }
Sarahi 0:c344a92d3ca2 239
Sarahi 0:c344a92d3ca2 240 pc.printf("\n t_events_Q1\n");
Sarahi 0:c344a92d3ca2 241 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 242 pc.printf("%f, ",t_events_Q1[i]);
Sarahi 0:c344a92d3ca2 243
Sarahi 0:c344a92d3ca2 244 }
Sarahi 0:c344a92d3ca2 245 pc.printf("\n t_events_Q2\n");
Sarahi 0:c344a92d3ca2 246 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 247 pc.printf("%f, ",t_events_Q2[i]);
Sarahi 0:c344a92d3ca2 248
Sarahi 0:c344a92d3ca2 249 }
Sarahi 0:c344a92d3ca2 250
Sarahi 0:c344a92d3ca2 251 pc.printf("\n t_events_Q3\n");
Sarahi 0:c344a92d3ca2 252 for (i=0; i<=k; i++){
Sarahi 0:c344a92d3ca2 253 pc.printf("%f, ",t_events_Q3[i]);
Sarahi 0:c344a92d3ca2 254
Sarahi 0:c344a92d3ca2 255 }
Sarahi 0:c344a92d3ca2 256
Sarahi 0:c344a92d3ca2 257
Sarahi 0:c344a92d3ca2 258 led_a=1;
Sarahi 0:c344a92d3ca2 259 }
Sarahi 0:c344a92d3ca2 260
Sarahi 0:c344a92d3ca2 261
Sarahi 0:c344a92d3ca2 262 //-----------------------Función para obtener el minimo de 2 números ---------------------------------------------//
Sarahi 0:c344a92d3ca2 263 double min_2(double x, double y){
Sarahi 0:c344a92d3ca2 264 double min=0;
Sarahi 0:c344a92d3ca2 265 if (x<y){
Sarahi 0:c344a92d3ca2 266 min= x;
Sarahi 0:c344a92d3ca2 267 }
Sarahi 0:c344a92d3ca2 268 else {
Sarahi 0:c344a92d3ca2 269 min=y;
Sarahi 0:c344a92d3ca2 270 }
Sarahi 0:c344a92d3ca2 271 return min;
Sarahi 0:c344a92d3ca2 272
Sarahi 0:c344a92d3ca2 273 }
Sarahi 0:c344a92d3ca2 274
Sarahi 0:c344a92d3ca2 275 ///-----------------------Función para obtener el minimo de 3 números ---------------------------------------------//
Sarahi 0:c344a92d3ca2 276 double min_3(double x, double y, double z){
Sarahi 0:c344a92d3ca2 277 double min=0;
Sarahi 0:c344a92d3ca2 278 if ((x<y)&&(x<z)){
Sarahi 0:c344a92d3ca2 279 min= x;
Sarahi 0:c344a92d3ca2 280 }
Sarahi 0:c344a92d3ca2 281 else if ((y<x)&&(y<z)){
Sarahi 0:c344a92d3ca2 282 min= y;
Sarahi 0:c344a92d3ca2 283 }
Sarahi 0:c344a92d3ca2 284 else {
Sarahi 0:c344a92d3ca2 285 min=z;
Sarahi 0:c344a92d3ca2 286 }
Sarahi 0:c344a92d3ca2 287 return min;
Sarahi 0:c344a92d3ca2 288 }
Sarahi 0:c344a92d3ca2 289
Sarahi 0:c344a92d3ca2 290 //-----------------------Función para obtener el miáximo de 2 números ---------------------------------------------//
Sarahi 0:c344a92d3ca2 291 int max_2(int x, int y){
Sarahi 0:c344a92d3ca2 292 int max=0;
Sarahi 0:c344a92d3ca2 293 if(x>y){
Sarahi 0:c344a92d3ca2 294 max=x;
Sarahi 0:c344a92d3ca2 295 }
Sarahi 0:c344a92d3ca2 296 else {
Sarahi 0:c344a92d3ca2 297 max=y;
Sarahi 0:c344a92d3ca2 298 }
Sarahi 0:c344a92d3ca2 299 return max;
Sarahi 0:c344a92d3ca2 300 }
Sarahi 0:c344a92d3ca2 301
Sarahi 0:c344a92d3ca2 302
Sarahi 0:c344a92d3ca2 303 //-----------------------Función para obtener el máximo de 3 números ---------------------------------------------//
Sarahi 0:c344a92d3ca2 304 double max_3(double x, double y, double z){
Sarahi 0:c344a92d3ca2 305 double max=0;
Sarahi 0:c344a92d3ca2 306 if ((x>y)&&(x>z)){
Sarahi 0:c344a92d3ca2 307 max= x;
Sarahi 0:c344a92d3ca2 308 }
Sarahi 0:c344a92d3ca2 309 else if ((y>x)&&(y>z)){
Sarahi 0:c344a92d3ca2 310 max= y;
Sarahi 0:c344a92d3ca2 311 }
Sarahi 0:c344a92d3ca2 312 else {
Sarahi 0:c344a92d3ca2 313 max=z;
Sarahi 0:c344a92d3ca2 314 }
Sarahi 0:c344a92d3ca2 315 return max;
Sarahi 0:c344a92d3ca2 316 }
Sarahi 0:c344a92d3ca2 317
Sarahi 0:c344a92d3ca2 318 float var_rand(int x){
Sarahi 0:c344a92d3ca2 319 int a = 40692;
Sarahi 0:c344a92d3ca2 320 int m=2147483399;
Sarahi 0:c344a92d3ca2 321 int x_i=rand(); //semilla aleatoria
Sarahi 0:c344a92d3ca2 322 float x_i1=(a*x_i) % m;
Sarahi 0:c344a92d3ca2 323 float U=(x_i1)/m; //Uniforme [0,1]
Sarahi 0:c344a92d3ca2 324
Sarahi 0:c344a92d3ca2 325 float exprnd=-1*x*log(U);
Sarahi 0:c344a92d3ca2 326 printf ("VAL x_i: %d \n",x_i);
Sarahi 0:c344a92d3ca2 327 printf ("VAL x_i1: %f \n",x_i1);
Sarahi 0:c344a92d3ca2 328 printf ("VAL U: %f \n", U);
Sarahi 0:c344a92d3ca2 329 printf ("VAL exprnd: %f \n", exprnd);
Sarahi 0:c344a92d3ca2 330
Sarahi 0:c344a92d3ca2 331 return exprnd;
Sarahi 0:c344a92d3ca2 332 }