Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

torstensFilters.cpp

Go to the documentation of this file.
00001 /*
00002 ### Written by Torsten Moeller
00003 ### sometime in March 1998
00004 ### let me know, if you find any errors (moeller@cis.ohio-state.edu)
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 }

Generated on Wed Dec 15 21:20:32 2004 for vuVolume by  doxygen 1.3.9.1