forward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1, YREAL x2, YREAL x3, YREAL x4, YREAL y1, YREAL y2, YREAL y3, YREAL y4, YREAL x, YREAL y) { YS1=u1 + (u2-u1)*(x-x1)+(u3-u1)*(y-y1)+(u1-u2-u3+u4)*(x-x1)*(y-y1); YS2=v1 + (v2-v1)*(x-x1)+(v3-v1)*(y-y1)+(v1-v2-v3+v4)*(x-x1)*(y-y1); ur_dx=(u2-u1)+(u1-u2-u3+u4)*(y-y1); ur_dy=(u3-u1)+(u1-u2-u3+u4)*(x-x1); vr_dx=(v2-v1)+(v1-v2-v3+v4)*(y-y1); vr_dy=(v3-v1)+(v1-v2-v3+v4)*(x-x1); //printf("u1=%f ; u2=%f\n",u1,u2); } backward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1, YREAL x2, YREAL x3, YREAL x4, YREAL y1, YREAL y2, YREAL y3, YREAL y4, YREAL x, YREAL y) { YJ1I1 = YJ2I5 = 1 - (x-x1) - (y-y1) + (x-x1)*(y-y1); YJ1I2 = YJ2I6 = (x-x1)-(x-x1)*(y-y1); YJ1I3 = YJ2I7 = (y-y1)-(x-x1)*(y-y1); YJ1I4 = YJ2I8 = (x-x1)*(y-y1); YJ1I17=(u2-u1)+(u1-u2-u3+u4)*(y-y1); YJ1I18=(u3-u1)+(u1-u2-u3+u4)*(x-x1); YJ2I17=(v2-v1)+(v1-v2-v3+v4)*(y-y1); YJ2I18=(v3-v1)+(v1-v2-v3+v4)*(x-x1); }