| 22 | |
| 23 | inline double va_drop_interp(double i){ |
| 24 | //double va_char[16]={0,10,50,100,200,300,500,1000, 0,1,1.8,2.4,3.2,3.8,4.8,6.8}; |
| 25 | //* |
| 26 | double si = sign(i); |
| 27 | i = abs(i); |
| 28 | double du; |
| 29 | |
| 30 | if(i < 0.1) du = 5.0*i; |
| 31 | else if(i < 0.5) du = 1.0*(i-0.1) + 0.5; |
| 32 | else if(i < 1.0) du = 0.6*(i-0.5) + 0.9; |
| 33 | else if(i < 2.0) du = 0.4*(i-1.0) + 1.2; |
| 34 | else if(i < 3.0) du = 0.3*(i-2.0) + 1.6; |
| 35 | else if(i < 5.0) du = 0.25*(i-3.0) + 1.9; |
| 36 | else du = 0.2*(i - 5.0) + 2.4; |
| 37 | |
| 38 | return si*du*1.0; |
| 39 | |
| 40 | /*/ |
| 41 | double msi = sign(i); |
| 42 | |
| 43 | i = abs(i) - 0.3; |
| 44 | |
| 45 | double si = sign(i); |
| 46 | i = abs(i); |
| 47 | double du; |
| 48 | |
| 49 | if(i < 0.0654) du = 5.0*i; |
| 50 | else if(i < 0.3225) du = 1.0*(i-0.0654) + 0.3225; |
| 51 | else if(i < 0.654) du = 0.6*(i-0.3225) + 0.5805; |
| 52 | else if(i < 1.29) du = 0.4*(i-0.654) + 0.774; |
| 53 | else if(i < 1.935) du = 0.3*(i-1.29) + 1.032; |
| 54 | else if(i < 3.225) du = 0.25*(i-1.935) + 1.2255; |
| 55 | else du = 0.2*(i - 3.225) + 1.548; |
| 56 | |
| 57 | return msi*(si*du+0.558); |
| 58 | /*/ |
| 59 | } |