00001
00002
00003
00004
00005
00006
00007 #define OVER_3 0.33333333
00008 #define OVER_6 0.16666666
00009 #define OVER_12 0.0833333333
00010 #define OVER_2_3 0.6666666666
00011
00012 float wm3h, wm3g, wm3f, wm3e, wm3d, wm3c, wm3b, wm3a;
00013 float wm2h, wm2g, wm2f, wm2e, wm2d, wm2c, wm2b, wm2a;
00014 float wm1h, wm1g, wm1f, wm1e, wm1d, wm1c, wm1b, wm1a;
00015 float wm0h, wm0g, wm0f, wm0e, wm0d, wm0c, wm0b, wm0a;
00016 float wp1h, wp1g, wp1f, wp1e, wp1d, wp1c, wp1b, wp1a;
00017 float wp2h, wp2g, wp2f, wp2e, wp2d, wp2c, wp2b, wp2a;
00018
00019
00020 int vuTorsten_d0_c0_1ef(float a, float t, float *coeff) {
00021
00022 coeff[0] = t;
00023 coeff[1] = 1-t;
00024
00025 return 2;
00026 }
00027
00028 int vuTorsten_d0_c0_2ef(float a, float t, float *coeff) {
00029
00030 coeff[0] = t;
00031 coeff[1] = 1-t;
00032
00033 return 2;
00034 }
00035
00036 int vuTorsten_d0_c0_3ef(float a, float t, float *coeff) {
00037
00038 coeff[0] = ( t -1)*t/4;
00039 coeff[1] = (-t +5)*t/4;
00040 coeff[2] = (-t -3)*t/4 +1;
00041 coeff[3] = ( t -1)*t/4;
00042
00043 return 4;
00044 }
00045
00046 int vuTorsten_d0_c0_4ef(float a, float t, float *coeff) {
00047
00048 wm2d = OVER_6; wm2c = 0; wm2b = -OVER_6; wm2a = 0;
00049 wm1d = -0.5; wm1c = 0.5; wm1b = 1; wm1a = 0;
00050 wm0d = 0.5; wm0c = - 1; wm0b = -0.5; wm0a = 1;
00051 wp1d = -OVER_6; wp1c = 0.5; wp1b = -OVER_3; wp1a = 0;
00052
00053 coeff[0] = ((wm2d*t +wm2c)*t +wm2b)*t;
00054 coeff[1] = ((wm1d*t +wm1c)*t +wm1b)*t;
00055 coeff[2] = ((wm0d*t +wm0c)*t +wm0b)*t +1;
00056 coeff[3] = ((wp1d*t +wp1c)*t +wp1b)*t;
00057
00058 return 4;
00059 }
00060
00061 int vuTorsten_d0_c1_1ef(float a, float t, float *coeff) {
00062
00063 wm1d = -2; wm1c = 3;
00064 wm0d = 2; wm0c = -3;
00065
00066 coeff[0] = (wm1d*t +wm1c)*t*t;
00067 coeff[1] = (wm0d*t +wm0c)*t*t +1;
00068
00069 return 2;
00070 }
00071
00072 int vuTorsten_d0_c1_2ef(float a, float t, float *coeff) {
00073
00074 wm1a = 0.25;
00075 wm0a = 0.5;
00076 wp1a = 0.25;
00077
00078 coeff[0] = ( t )*t/4;
00079 coeff[1] = (-t +2)*t/4 +wm1a;
00080 coeff[2] = (-t )*t/4 +wm0a;
00081 coeff[3] = ( t -2)*t/4 +wp1a;
00082
00083 return 4;
00084 }
00085
00086 int vuTorsten_d0_c1_3ef(float a, float t, float *coeff) {
00087
00088 wm2d = 0.5; wm2c = -0.5; wm2b = 0; wm2a = 0;
00089 wm1d = -1.5; wm1c = 2; wm1b = 0.5; wm1a = 0;
00090 wm0d = 1.5; wm0c = -2.5; wm0b = 0; wm0a = 1;
00091 wp1d = -0.5; wp1c = 1; wp1b = -0.5; wp1a = 0;
00092
00093 coeff[0] = ((wm2d*t +wm2c)*t +wm2b)*t;
00094 coeff[1] = ((wm1d*t +wm1c)*t +wm1b)*t;
00095 coeff[2] = ((wm0d*t +wm0c)*t +wm0b)*t +1;
00096 coeff[3] = ((wp1d*t +wp1c)*t +wp1b)*t;
00097
00098 return 4;
00099 }
00100
00101 int vuTorsten_d0_c1_4ef(float a, float t, float *coeff) {
00102
00103 wm3d = -( a ); wm3c = (1.5*a- 1./24); wm3b = 0; wm3a = 0;
00104 wm2d = ( 5*a+OVER_6); wm2c = -(7.5*a- 1./8 ); wm2b = -(OVER_12); wm2a = (0.5*a-1./24);
00105 wm1d = -(10*a+ 0.5); wm1c = ( 15*a+ 5./12); wm1b = (OVER_2_3); wm1a = -( 2*a-OVER_6 );
00106 wm0d = (10*a+ 0.5); wm0c = -( 15*a+13./12); wm0b = 0; wm0a = ( 3*a+0.75 );
00107 wp1d = -( 5*a+OVER_6); wp1c = (7.5*a+ 5./8 ); wp1b = -(OVER_2_3); wp1a = -( 2*a-OVER_6 );
00108 wp2d = ( a ); wp2c = -(1.5*a+ 1./24); wp2b = (OVER_12); wp2a = (0.5*a-1./24);
00109
00110 coeff[0] = ((wm3d*t +wm3c)*t +wm3b)*t +wm3a;
00111 coeff[1] = ((wm2d*t +wm2c)*t +wm2b)*t +wm2a;
00112 coeff[2] = ((wm1d*t +wm1c)*t +wm1b)*t +wm1a;
00113 coeff[3] = ((wm0d*t +wm0c)*t +wm0b)*t +wm0a;
00114 coeff[4] = ((wp1d*t +wp1c)*t +wp1b)*t +wp1a;
00115 coeff[5] = ((wp2d*t +wp2c)*t +wp2b)*t +wp2a;
00116
00117 return 6;
00118 }
00119
00120 int vuTorsten_d0_c2_1ef(float a, float t, float *coeff) {
00121
00122 wm1f = 6; wm1e = -15; wm1d = 10; wm1c = 0; wm1b = 0; wm1a = 0;
00123 wm0f = -6; wm0e = 15; wm0d = -10; wm0c = 0; wm0b = 0; wm0a = 1;
00124
00125 coeff[0] = ((wm1f*t +wm1e)*t +wm1d)*t*t*t;
00126 coeff[1] = ((wm0f*t +wm0e)*t +wm0d)*t*t*t +1;
00127
00128 return 2;
00129 }
00130
00131 int vuTorsten_d0_c2_2ef(float a, float t, float *coeff) {
00132
00133 wm2d = OVER_6; wm2c = 0; wm2b = 0; wm2a = 0;
00134 wm1d = -0.5; wm1c = 0.5; wm1b = 0.5; wm1a = OVER_6;
00135 wm0d = 0.5; wm0c = - 1; wm0b = 0; wm0a = OVER_2_3;
00136 wp1d = -OVER_6; wp1c = 0.5; wp1b = -0.5; wp1a = OVER_6;
00137
00138 coeff[0] = ((wm2d*t +wm2c)*t +wm2b)*t +wm2a;
00139 coeff[1] = ((wm1d*t +wm1c)*t +wm1b)*t +wm1a;
00140 coeff[2] = ((wm0d*t +wm0c)*t +wm0b)*t +wm0a;
00141 coeff[3] = ((wp1d*t +wp1c)*t +wp1b)*t +wp1a;
00142
00143 return 4;
00144 }
00145
00146 int vuTorsten_d0_c2_3ef(float a, float t, float *coeff) {
00147
00148 wm2f = -1; wm2e = 2.5; wm2d = -1.5; wm2c = 0; wm2b = 0; wm2a = 0;
00149 wm1f = 3; wm1e = - 7.5; wm1d = 4.5; wm1c = 0.5; wm1b = 0.5; wm1a = 0;
00150 wm0f = -3; wm0e = 7.5; wm0d = -4.5; wm0c = - 1; wm0b = 0; wm0a = 1;
00151 wp1f = 1; wp1e = - 2.5; wp1d = 1.5; wp1c = 0.5; wp1b = -0.5; wp1a = 0;
00152
00153 coeff[0] = ((((wm2f*t +wm2e)*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00154 coeff[1] = ((((wm1f*t +wm1e)*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00155 coeff[2] = ((((wm0f*t +wm0e)*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00156 coeff[3] = ((((wp1f*t +wp1e)*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00157
00158 return 4;
00159 }
00160
00161 int vuTorsten_d0_c2_4ef(float a, float t, float *coeff) {
00162
00163 wm3d = - 1./36; wm3c = 0; wm3b = 0; wm3a = 0;
00164 wm2d = 11./36; wm2c = -OVER_12; wm2b = -OVER_12; wm2a = -1./36;
00165 wm1d = - 7./9 ; wm1c = 5./6 ; wm1b = OVER_2_3; wm1a = 1./9 ;
00166 wm0d = 7./9 ; wm0c = -1.5 ; wm0b = 0; wm0a = 5./6 ;
00167 wp1d = -11./36; wp1c = 5./6 ; wp1b = -OVER_2_3; wp1a = 1./9 ;
00168 wp2d = 1./36; wp2c = -OVER_12; wp2b = OVER_12; wp2a = -1./36;
00169
00170 coeff[0] = ((wm3d*t +wm3c)*t +wm3b)*t +wm3a;
00171 coeff[1] = ((wm2d*t +wm2c)*t +wm2b)*t +wm2a;
00172 coeff[2] = ((wm1d*t +wm1c)*t +wm1b)*t +wm1a;
00173 coeff[3] = ((wm0d*t +wm0c)*t +wm0b)*t +wm0a;
00174 coeff[4] = ((wp1d*t +wp1c)*t +wp1b)*t +wp1a;
00175 coeff[5] = ((wp2d*t +wp2c)*t +wp2b)*t +wp2a;
00176
00177 return 6;
00178 }
00179
00180 int vuTorsten_d0_c3_1ef(float a, float t, float *coeff) {
00181
00182 wm1h = -20; wm1g = 70; wm1f = -84; wm1e = 35; wm1d = 0; wm1c = 0; wm1b = 0; wm1a = 0;
00183 wm0h = 20; wm0g = -70; wm0f = 84; wm0e = -35; wm0d = 0; wm0c = 0; wm0b = 0; wm0a = 1;
00184
00185 coeff[0] = (((wm1h*t +wm1g)*t +wm1f)*t +wm1e)*t*t*t*t;
00186 coeff[1] = (((wm0h*t +wm0g)*t +wm0f)*t +wm0e)*t*t*t*t +1;
00187
00188 return 2;
00189 }
00190
00191 int vuTorsten_d0_c3_2ef(float a, float t, float *coeff) {
00192
00193 wm2f = -0.10; wm2e = 0.25; wm2d = 0; wm2c = 0; wm2b = 0; wm2a = 0;
00194 wm1f = 0.30; wm1e = -0.75; wm1d = 0; wm1c = 0.5; wm1b = 0.5; wm1a = 0.15;
00195 wm0f = -0.30; wm0e = 0.75; wm0d = 0; wm0c = - 1; wm0b = 0; wm0a = 0.70;
00196 wp1f = 0.10; wp1e = -0.25; wp1d = 0; wp1c = 0.5; wp1b = -0.5; wp1a = 0.15;
00197
00198 coeff[0] = (wm2f*t +wm2e)*t*t*t*t;
00199 coeff[1] = ((((wm1f*t +wm1e)*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00200 coeff[2] = ((((wm0f*t +wm0e)*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00201 coeff[3] = ((((wp1f*t +wp1e)*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00202
00203 return 4;
00204 }
00205
00206 int vuTorsten_d0_c3_3ef(float a, float t, float *coeff) {
00207
00208 wm2h = 3; wm2g = -10.5; wm2f = 12.5; wm2e = - 5; wm2d = 0; wm2c = 0; wm2b = 0; wm2a = 0;
00209 wm1h = -9; wm1g = 31.5; wm1f = -37.5; wm1e = 15; wm1d = 0; wm1c = 0.5; wm1b = 0.5; wm1a = 0;
00210 wm0h = 9; wm0g = -31.5; wm0f = 37.5; wm0e = -15; wm0d = 0; wm0c = - 1; wm0b = 0; wm0a = 1;
00211 wp1h = -3; wp1g = 10.5; wp1f = -12.5; wp1e = 5; wp1d = 0; wp1c = 0.5; wp1b = -0.5; wp1a = 0;
00212
00213 coeff[0] = ((((((wm2h*t +wm2g)*t +wm2f)*t +wm2e)*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00214 coeff[1] = ((((((wm1h*t +wm1g)*t +wm1f)*t +wm1e)*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00215 coeff[2] = ((((((wm0h*t +wm0g)*t +wm0f)*t +wm0e)*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00216 coeff[3] = ((((((wp1h*t +wp1g)*t +wp1f)*t +wp1e)*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00217
00218 return 4;
00219 }
00220
00221 int vuTorsten_d0_c3_4ef(float a, float t, float *coeff) {
00222
00223 wm3f = 1./30; wm3e = - 1./16; wm3d = 0; wm3c = 0; wm3b = 0; wm3a = 0;
00224 wm2f = -OVER_6; wm2e = 17./48; wm2d = OVER_12; wm2c = -1./24; wm2b = -OVER_12; wm2a = - 7./240;
00225 wm1f = OVER_3; wm1e = -19./24; wm1d = -OVER_6 ; wm1c = OVER_2_3; wm1b = OVER_2_3; wm1a = 7./60;
00226 wm0f = -OVER_3; wm0e = 7./8 ; wm0d = 0; wm0c = -1.25; wm0b = 0; wm0a = 33./40;
00227 wp1f = OVER_6; wp1e = -23./48; wp1d = OVER_6 ; wp1c = OVER_2_3; wp1b = -OVER_2_3; wp1a = 7./60;
00228 wp2f = -1./30; wp2e = 5./48; wp2d = -OVER_12; wp2c = -1./24; wp2b = OVER_12; wp2a = - 7./240;
00229
00230 coeff[0] = ((((wm3f*t +wm3e)*t +wm3d)*t +wm3c)*t +wm3b)*t +wm3a;
00231 coeff[1] = ((((wm2f*t +wm2e)*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00232 coeff[2] = ((((wm1f*t +wm1e)*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00233 coeff[3] = ((((wm0f*t +wm0e)*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00234 coeff[4] = ((((wp1f*t +wp1e)*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00235 coeff[5] = ((((wp2f*t +wp2e)*t +wp2d)*t +wp2c)*t +wp2b)*t +wp2a;
00236
00237 return 6;
00238 }
00239
00240 int vuTorsten_d0_cn_1ef(float a, float t, float *coeff) {
00241
00242 coeff[0] = 0.5;
00243 coeff[1] = 0.5;
00244
00245 return 2;
00246 }
00247
00248 int vuTorsten_d0_cn_2ef(float a, float t, float *coeff) {
00249
00250 coeff[0] = t;
00251 coeff[1] = 1-t;
00252
00253 return 2;
00254 }
00255
00256 int vuTorsten_d0_cn_3ef(float a, float t, float *coeff) {
00257
00258 wm2c = 0.25; wm2b = (2*a-0.25); wm2a = -( a );
00259 wm1c = -0.25; wm1b = -(6*a-1.25); wm1a = (3*a );
00260 wm0c = -0.25; wm0b = (6*a-0.75); wm0a = -(3*a-1);
00261 wp1c = 0.25; wp1b = -(2*a+0.25); wp1a = ( a );
00262
00263 coeff[0] = (wm2c*t +wm2b)*t + wm2a;
00264 coeff[1] = (wm1c*t +wm1b)*t + wm1a;
00265 coeff[2] = (wm0c*t +wm0b)*t + wm0a;
00266 coeff[3] = (wp1c*t +wp1b)*t + wp1a;
00267
00268 return 4;
00269 }
00270
00271 int vuTorsten_d0_cn_4ef(float a, float t, float *coeff) {
00272
00273 wm2d = OVER_6; wm2c = 0; wm2b = -OVER_6; wm2a = 0;
00274 wm1d = -0.5; wm1c = 0.5; wm1b = 1; wm1a = 0;
00275 wm0d = 0.5; wm0c = -1 ; wm0b = -0.5; wm0a = 1;
00276 wp1d = -OVER_6; wp1c = 0.5; wp1b = -OVER_3; wp1a = 0;
00277
00278 coeff[0] = ((wm2d*t +wm2c)*t +wm2b)*t + wm2a;
00279 coeff[1] = ((wm1d*t +wm1c)*t +wm1b)*t + wm1a;
00280 coeff[2] = ((wm0d*t +wm0c)*t +wm0b)*t + wm0a;
00281 coeff[3] = ((wp1d*t +wp1c)*t +wp1b)*t + wp1a;
00282
00283 return 4;
00284 }
00285
00286 int vuTorsten_d1_c0_1ef(float a, float t, float *coeff) {
00287
00288 coeff[0] = t/2;
00289 coeff[1] = (1-t)/2;
00290 coeff[2] = -t/2;
00291 coeff[3] = (t-1)/2;
00292
00293 return 4;
00294 }
00295
00296 int vuTorsten_d1_c0_2ef(float a, float t, float *coeff) {
00297
00298 coeff[0] = t/2;
00299 coeff[1] = (1-t)/2;
00300 coeff[2] = -t/2;
00301 coeff[3] = (t-1)/2;
00302
00303 return 4;
00304 }
00305
00306 int vuTorsten_d1_c0_3ef(float a, float t, float *coeff) {
00307
00308 wm3c = ( a ); wm3b = -( a+OVER_12); wm3a = 0;
00309 wm2c = -( 5*a-0.5); wm2b = ( 5*a+ 0.25); wm2a = -OVER_12;
00310 wm1c = (10*a-1.5); wm1b = -(10*a- 5./6); wm1a = OVER_2_3;
00311 wm0c = -(10*a-1.5); wm0b = (10*a- 13./6); wm0a = 0;
00312 wp1c = ( 5*a-0.5); wp1b = -( 5*a- 1.25); wp1a = -OVER_2_3;
00313 wp2c = -( a ); wp2b = ( a-OVER_12); wp2a = OVER_12;
00314
00315 coeff[0] = (wm3c*t +wm3b)*t +wm3a;
00316 coeff[1] = (wm2c*t +wm2b)*t +wm2a;
00317 coeff[2] = (wm1c*t +wm1b)*t +wm1a;
00318 coeff[3] = (wm0c*t +wm0b)*t +wm0a;
00319 coeff[4] = (wp1c*t +wp1b)*t +wp1a;
00320 coeff[5] = (wp2c*t +wp2b)*t +wp2a;
00321
00322 return 6;
00323 }
00324
00325 int vuTorsten_d1_c0_4ef(float a, float t, float *coeff) {
00326
00327 wm3d = OVER_12; wm3c = ( a ); wm3b = -( a+ OVER_6); wm3a = 0;
00328 wm2d = -0.25; wm2c = -( 5*a-0.25); wm2b = ( 5*a+ 0.75); wm2a = -OVER_12;
00329 wm1d = OVER_6; wm1c = (10*a- 0.5); wm1b = -(10*a+ OVER_3); wm1a = OVER_2_3;
00330 wm0d = OVER_6; wm0c = -(10*a ); wm0b = (10*a- 5./6); wm0a = 0;
00331 wp1d = -0.25; wp1c = ( 5*a+ 0.5); wp1b = -( 5*a- 0.5); wp1a = -OVER_2_3;
00332 wp2d = OVER_12; wp2c = -( a+0.25); wp2b = ( a+OVER_12); wp2a = OVER_12;
00333
00334 coeff[0] = ((wm3d*t +wm3c)*t +wm3b)*t +wm3a;
00335 coeff[1] = ((wm2d*t +wm2c)*t +wm2b)*t +wm2a;
00336 coeff[2] = ((wm1d*t +wm1c)*t +wm1b)*t +wm1a;
00337 coeff[3] = ((wm0d*t +wm0c)*t +wm0b)*t +wm0a;
00338 coeff[4] = ((wp1d*t +wp1c)*t +wp1b)*t +wp1a;
00339 coeff[5] = ((wp2d*t +wp2c)*t +wp2b)*t +wp2a;
00340
00341 return 6;
00342 }
00343
00344 int vuTorsten_d1_c1_1ef(float a, float t, float *coeff) {
00345
00346 wm2c = 0.5; wm2b = 0; wm2a = 0;
00347 wm1c = -1.5; wm1b = 1; wm1a = 0.5;
00348 wm0c = 1.5; wm0b = -2; wm0a = 0;
00349 wp1c = -0.5; wp1b = 1; wp1a = -0.5;
00350
00351 coeff[0] = (wm2c*t +wm2b)*t +wm2a;
00352 coeff[1] = (wm1c*t +wm1b)*t +wm1a;
00353 coeff[2] = (wm0c*t +wm0b)*t +wm0a;
00354 coeff[3] = (wp1c*t +wp1b)*t +wp1a;
00355
00356 return 4;
00357 }
00358
00359 int vuTorsten_d1_c1_2ef(float a, float t, float *coeff) {
00360
00361 wm2c = 0.5; wm2b = 0; wm2a = 0;
00362 wm1c = -1.5; wm1b = 1; wm1a = 0.5;
00363 wm0c = 1.5; wm0b = -2; wm0a = 0;
00364 wp1c = -0.5; wp1b = 1; wp1a = -0.5;
00365
00366 coeff[0] = (wm2c*t +wm2b)*t +wm2a;
00367 coeff[1] = (wm1c*t +wm1b)*t +wm1a;
00368 coeff[2] = (wm0c*t +wm0b)*t +wm0a;
00369 coeff[3] = (wp1c*t +wp1b)*t +wp1a;
00370
00371 return 4;
00372 }
00373
00374 int vuTorsten_d1_c1_3ef(float a, float t, float *coeff) {
00375
00376 wm3c = -OVER_12; wm3b = 0; wm3a = 0;
00377 wm2c = 11./12; wm2b = -OVER_6; wm2a = -OVER_12;
00378 wm1c = -7./3; wm1b = 5./3; wm1a = OVER_2_3;
00379 wm0c = 7./3; wm0b = -3; wm0a = 0;
00380 wp1c = -11./12; wp1b = 5./3; wp1a = -OVER_2_3;
00381 wp2c = OVER_12; wp2b = -OVER_6; wp2a = OVER_12;
00382
00383 coeff[0] = (wm3c*t +wm3b)*t +wm3a;
00384 coeff[1] = (wm2c*t +wm2b)*t +wm2a;
00385 coeff[2] = (wm1c*t +wm1b)*t +wm1a;
00386 coeff[3] = (wm0c*t +wm0b)*t +wm0a;
00387 coeff[4] = (wp1c*t +wp1b)*t +wp1a;
00388 coeff[5] = (wp2c*t +wp2b)*t +wp2a;
00389
00390 return 6;
00391 }
00392
00393 int vuTorsten_d1_c1_4ef(float a, float t, float *coeff) {
00394
00395 wm3d = OVER_12; wm3c = -OVER_6; wm3b = 0; wm3a = 0;
00396 wm2d = -0.25; wm2c = 13./12; wm2b = -OVER_12; wm2a = -OVER_12;
00397 wm1d = OVER_6; wm1c = -13./6; wm1b = 4./3; wm1a = OVER_2_3 ;
00398 wm0d = OVER_6; wm0c = 5./3; wm0b = -2.5; wm0a = 0;
00399 wp1d = -0.25; wp1c = -OVER_3; wp1b = 4./3; wp1a = -OVER_2_3;
00400 wp2d = OVER_12; wp2c = -OVER_12; wp2b = -OVER_12; wp2a = OVER_12;
00401
00402 coeff[0] = ((wm3d*t +wm3c)*t +wm3b)*t +wm3a;
00403 coeff[1] = ((wm2d*t +wm2c)*t +wm2b)*t +wm2a;
00404 coeff[2] = ((wm1d*t +wm1c)*t +wm1b)*t +wm1a;
00405 coeff[3] = ((wm0d*t +wm0c)*t +wm0b)*t +wm0a;
00406 coeff[4] = ((wp1d*t +wp1c)*t +wp1b)*t +wp1a;
00407 coeff[5] = ((wp2d*t +wp2c)*t +wp2b)*t +wp2a;
00408
00409 return 6;
00410 }
00411
00412 int vuTorsten_d1_c2_1ef(float a, float t, float *coeff) {
00413
00414 wm2e = -0.5; wm2d = 1; wm2c = 0; wm2b = 0; wm2a = 0;
00415 wm1e = 1.5; wm1d = -3; wm1c = 0; wm1b = 1; wm1a = 0.5;
00416 wm0e = -1.5; wm0d = 3; wm0c = 0; wm0b = -2; wm0a = 0;
00417 wp1e = 0.5; wp1d = -1; wp1c = 0; wp1b = 1; wp1a = -0.5;
00418
00419 coeff[0] = ((wm2e*t +wm2d)*t*t +wm2b)*t +wm2a;
00420 coeff[1] = ((wm1e*t +wm1d)*t*t +wm1b)*t +wm1a;
00421 coeff[2] = ((wm0e*t +wm0d)*t*t +wm0b)*t +wm0a;
00422 coeff[3] = ((wp1e*t +wp1d)*t*t +wp1b)*t +wp1a;
00423
00424 return 4;
00425 }
00426
00427 int vuTorsten_d1_c2_2ef(float a, float t, float *coeff) {
00428
00429 wm2e = -0.5; wm2d = 1; wm2c = 0; wm2b = 0; wm2a = 0;
00430 wm1e = 1.5; wm1d = -3; wm1c = 0; wm1b = 1; wm1a = 0.5;
00431 wm0e = -1.5; wm0d = 3; wm0c = 0; wm0b = -2; wm0a = 0;
00432 wp1e = 0.5; wp1d = -1; wp1c = 0; wp1b = 1; wp1a = -0.5;
00433
00434 coeff[0] = (((wm2e*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00435 coeff[1] = (((wm1e*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00436 coeff[2] = (((wm0e*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00437 coeff[3] = (((wp1e*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00438
00439 return 4;
00440 }
00441
00442 int vuTorsten_d1_c2_3ef(float a, float t, float *coeff) {
00443
00444 wm3e = OVER_6; wm3d = -0.25; wm3c = 0; wm3b = 0; wm3a = 0;
00445 wm2e = -5./6; wm2d = 17./12; wm2c = 0.25; wm2b = -OVER_12; wm2a = -OVER_12;
00446 wm1e = 5./3; wm1d = -19./6; wm1c = -0.5; wm1b = 4./3; wm1a = OVER_2_3;
00447 wm0e = -5./3; wm0d = 3.5; wm0c = 0; wm0b = -2.5; wm0a = 0;
00448 wp1e = 5./6; wp1d = -23./12; wp1c = 0.5; wp1b = 4./3; wp1a = -OVER_2_3;
00449 wp2e = -OVER_6; wp2d = 5./12; wp2c = -0.25; wp2b = -OVER_12; wp2a = OVER_12;
00450
00451 coeff[0] = (((wm3e*t +wm3d)*t +wm3c)*t +wm3b)*t +wm3a;
00452 coeff[1] = (((wm2e*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00453 coeff[2] = (((wm1e*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00454 coeff[3] = (((wm0e*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00455 coeff[4] = (((wp1e*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00456 coeff[5] = (((wp2e*t +wp2d)*t +wp2c)*t +wp2b)*t +wp2a;
00457
00458 return 6;
00459 }
00460
00461 int vuTorsten_d1_c2_4ef(float a, float t, float *coeff) {
00462
00463 wm3e = OVER_6; wm3d = -0.25; wm3c = 0; wm3b = 0; wm3a = 0;
00464 wm2e = -5./6; wm2d = 17./12; wm2c = 0.25; wm2b = -OVER_12; wm2a = -OVER_12;
00465 wm1e = 5./3; wm1d = -19./6; wm1c = -0.5; wm1b = 4./3; wm1a = OVER_2_3;
00466 wm0e = -5./3; wm0d = 3.5; wm0c = 0; wm0b = -2.5; wm0a = 0;
00467 wp1e = 5./6; wp1d = -23./12; wp1c = 0.5; wp1b = 4./3; wp1a = -OVER_2_3;
00468 wp2e = -OVER_6; wp2d = 5./12; wp2c = -0.25; wp2b = -OVER_12; wp2a = OVER_12;
00469
00470 coeff[0] = (((wm3e*t +wm3d)*t +wm3c)*t +wm3b)*t +wm3a;
00471 coeff[1] = (((wm2e*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00472 coeff[2] = (((wm1e*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00473 coeff[3] = (((wm0e*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00474 coeff[4] = (((wp1e*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00475 coeff[5] = (((wp2e*t +wp2d)*t +wp2c)*t +wp2b)*t +wp2a;
00476
00477 return 6;
00478 }
00479
00480 int vuTorsten_d1_c3_1ef(float a, float t, float *coeff) {
00481
00482 wm2f = -0.75; wm2e = 1.25; wm2d = 0; wm2c = 0; wm2b = 0; wm2a = 0;
00483 wm1f = 0.75; wm1e = 0; wm1d = -2.5; wm1c = 0; wm1b = 1.25; wm1a = 0.5;
00484 wm0f = 0.75; wm0e = -3.75; wm0d = 5; wm0c = 0; wm0b = -2.5; wm0a = 0;
00485 wp1f = -0.75; wp1e = 2.5 ; wp1d = -2.5; wp1c = 0; wp1b = 1.25; wp1a = -0.5;
00486
00487 coeff[0] = ((((wm2f*t +wm2e)*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00488 coeff[1] = ((((wm1f*t +wm1e)*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00489 coeff[2] = ((((wm0f*t +wm0e)*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00490 coeff[3] = ((((wp1f*t +wp1e)*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00491
00492 return 4;
00493 }
00494
00495 int vuTorsten_d1_c3_2ef(float a, float t, float *coeff) {
00496
00497 wm2g = 1; wm2f = -3; wm2e = 2.5; wm2b = 0; wm2a = 0;
00498 wm1g = -3; wm1f = 9; wm1e = -7.5; wm1b = 1; wm1a = 0.5;
00499 wm0g = 3; wm0f = -9; wm0e = 7.5; wm0b = -2; wm0a = 0;
00500 wp1g = -1; wp1f = 3; wp1e = -2.5; wp1b = 1; wp1a = -0.5;
00501
00502 coeff[0] = (((wm2g*t +wm2f)*t +wm2e)*t*t*t +wm2b)*t +wm2a;
00503 coeff[1] = (((wm1g*t +wm1f)*t +wm1e)*t*t*t +wm1b)*t +wm1a;
00504 coeff[2] = (((wm0g*t +wm0f)*t +wm0e)*t*t*t +wm0b)*t +wm0a;
00505 coeff[3] = (((wp1g*t +wp1f)*t +wp1e)*t*t*t +wp1b)*t +wp1a;
00506
00507 return 4;
00508 }
00509
00510 int vuTorsten_d1_c3_3ef(float a, float t, float *coeff) {
00511
00512 wm3f = 3./16; wm3e = -13./48; wm3d = 0; wm3c = 0; wm3b = 0; wm3a = 0;
00513 wm2f = -9./16; wm2e = 5./12; wm2d = 19./24; wm2c = 0.25; wm2b = - 7./48; wm2a = -OVER_12;
00514 wm1f = 3./8 ; wm1e = 25./24; wm1d = -19./6 ; wm1c = -0.5; wm1b = 19./12; wm1a = OVER_2_3;
00515 wm0f = 3./8 ; wm0e = -35./12; wm0d = 19./4 ; wm0c = 0; wm0b = -23./8 ; wm0a = 0;
00516 wp1f = -9./16; wp1e = 115./48; wp1d = -19./6 ; wp1c = 0.5; wp1b = 19./12; wp1a = -OVER_2_3;
00517 wp2f = 3./16; wp2e = -OVER_2_3; wp2d = 19./24; wp2c = -0.25; wp2b = - 7./48; wp2a = OVER_12;
00518
00519 coeff[0] = ((((wm3f*t +wm3e)*t +wm3d)*t +wm3c)*t +wm3b)*t +wm3a;
00520 coeff[1] = ((((wm2f*t +wm2e)*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00521 coeff[2] = ((((wm1f*t +wm1e)*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00522 coeff[3] = ((((wm0f*t +wm0e)*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00523 coeff[4] = ((((wp1f*t +wp1e)*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00524 coeff[5] = ((((wp2f*t +wp2e)*t +wp2d)*t +wp2c)*t +wp2b)*t +wp2a;
00525
00526 return 6;
00527 }
00528
00529 int vuTorsten_d1_c3_4ef(float a, float t, float *coeff) {
00530
00531 wm3g = -0.25; wm3f = 0.75; wm3e = - 7./12; wm3d = 0; wm3c = 0; wm3b = 0; wm3a = 0;
00532 wm2g = 1.25; wm2f = -3.75; wm2e = 35./12; wm2d = OVER_6; wm2c = 0.25; wm2b = -OVER_12; wm2a = -OVER_12;
00533 wm1g = -2.5; wm1f = 7.5; wm1e = -35./6 ; wm1d = -OVER_2_3; wm1c = -0.5; wm1b = 4./3; wm1a = OVER_2_3;
00534 wm0g = 2.5; wm0f = -7.5; wm0e = 35./6 ; wm0d = 1; wm0c = 0; wm0b = -5./2; wm0a = 0;
00535 wp1g = -1.25; wp1f = 3.75; wp1e = -35./12; wp1d = -OVER_2_3; wp1c = 0.5; wp1b = 4./3; wp1a = -OVER_2_3;
00536 wp2g = 0.25; wp2f = -0.75; wp2e = 7./12; wp2d = OVER_6; wp2c = -0.25; wp2b = -OVER_12; wp2a = OVER_12;
00537
00538 coeff[0] = (((((wm3g*t +wm3f)*t +wm3e)*t +wm3d)*t +wm3c)*t +wm3b)*t +wm3a;
00539 coeff[1] = (((((wm2g*t +wm2f)*t +wm2e)*t +wm2d)*t +wm2c)*t +wm2b)*t +wm2a;
00540 coeff[2] = (((((wm1g*t +wm1f)*t +wm1e)*t +wm1d)*t +wm1c)*t +wm1b)*t +wm1a;
00541 coeff[3] = (((((wm0g*t +wm0f)*t +wm0e)*t +wm0d)*t +wm0c)*t +wm0b)*t +wm0a;
00542 coeff[4] = (((((wp1g*t +wp1f)*t +wp1e)*t +wp1d)*t +wp1c)*t +wp1b)*t +wp1a;
00543 coeff[5] = (((((wp2g*t +wp2f)*t +wp2e)*t +wp2d)*t +wp2c)*t +wp2b)*t +wp2a;
00544
00545 return 6;
00546 }
00547
00548 int vuTorsten_d1_cn_1ef(float a, float t, float *coeff) {
00549
00550 coeff[0] = 0;
00551 coeff[1] = 1;
00552 coeff[2] = -1;
00553 coeff[3] = 0;
00554
00555 return 4;
00556 }
00557
00558 int vuTorsten_d1_cn_2ef(float a, float t, float *coeff) {
00559
00560 wm2b = 0.5; wm2a = ( a );
00561 wm1b = -0.5; wm1a = -(3*a-0.5);
00562 wm0b = -0.5; wm0a = (3*a );
00563 wp1b = 0.5; wp1a = -( a+0.5);
00564
00565 coeff[0] = wm2b*t +wm2a;
00566 coeff[1] = wm1b*t +wm1a;
00567 coeff[2] = wm0b*t +wm0a;
00568 coeff[3] = wp1b*t +wp1a;
00569
00570 return 4;
00571 }
00572
00573 int vuTorsten_d1_cn_3ef(float a, float t, float *coeff) {
00574
00575 wm2c = 0.5; wm2b = 0; wm2a = -OVER_6;
00576 wm1c = -1.5; wm1b = 1; wm1a = 1;
00577 wm0c = 1.5; wm0b = -2; wm0a = -0.5;
00578 wp1c = -0.5; wp1b = 1; wp1a = -OVER_3;
00579
00580 coeff[0] = (wm2c*t +wm2b)*t +wm2a;
00581 coeff[1] = (wm1c*t +wm1b)*t +wm1a;
00582 coeff[2] = (wm0c*t +wm0b)*t +wm0a;
00583 coeff[3] = (wp1c*t +wp1b)*t +wp1a;
00584
00585 return 4;
00586 }
00587
00588 int vuTorsten_d1_cn_4ef(float a, float t, float *coeff) {
00589
00590 wm3d = OVER_12; wm3c = ( a ); wm3b = -( a+ OVER_6); wm3a = 0;
00591 wm2d = -0.25; wm2c = -( 5*a-0.25); wm2b = ( 5*a+ 0.75); wm2a = -OVER_12;
00592 wm1d = OVER_6; wm1c = (10*a- 0.5); wm1b = -(10*a+ OVER_3); wm1a = OVER_2_3;
00593 wm0d = OVER_6; wm0c = -(10*a ); wm0b = (10*a- 5./6); wm0a = 0;
00594 wp1d = -0.25; wp1c = ( 5*a+ 0.5); wp1b = -( 5*a- 0.5); wp1a = -OVER_2_3;
00595 wp2d = OVER_12; wp2c = -( a+0.25); wp2b = ( a+OVER_12); wp2a = OVER_12;
00596
00597 coeff[0] = ((wm3d*t +wm3c)*t +wm3b)*t +wm3a;
00598 coeff[1] = ((wm2d*t +wm2c)*t +wm2b)*t +wm2a;
00599 coeff[2] = ((wm1d*t +wm1c)*t +wm1b)*t +wm1a;
00600 coeff[3] = ((wm0d*t +wm0c)*t +wm0b)*t +wm0a;
00601 coeff[4] = ((wp1d*t +wp1c)*t +wp1b)*t +wp1a;
00602 coeff[5] = ((wp2d*t +wp2c)*t +wp2b)*t +wp2a;
00603
00604 return 6;
00605 }