| #define f1(i) ((i)*(i)) |
| #define I2(f, n) f(n) + f(n+1) |
| #define I3(f, n) I2(f, n) + f(n+2) |
| |
| #define FL_f1(i) ((i)*(i)) |
| #define FL_I2(f, n) f(n) + f(n+0.2) |
| #define FL_I3(f, n) FL_I2(f, n) + f(n+0.5) |
| |
| void main() |
| { |
| int f1 = 4; |
| int f2 = f1; |
| int f3 = f1(3); |
| int f4 = I2(f1, 0); |
| int f5 = I3(f1, 0); |
| |
| highp float fl_f5 = FL_I3(FL_f1, 0.1); |
| } |
| |
| // f5 = I3(f1, 0) |
| // = I2(f1, 0) + f1(0 + 2) |
| // = f1(0) + f1(0+1) + f1(0+2) |
| // = 0*0 + 1*1 + 2*2 |
| // = 5 |
| |
| // fl_f5 = FL_I3(FL_f1, 0.1) |
| // = FL_I2(FL_f1, 0.1) + FL_f1(0.1 + 0.5) |
| // = FL_f1(0.1) + FL_f1(0.1 + 0.2) + FL_f1(0.1 + 0.5) |
| // = 0.1*0.1 + 0.3*0.3 + 0.6*0.6 |
| // = 0.46 |