mirror of
https://github.com/xdsopl/robot36.git
synced 2026-04-21 06:03:41 +00:00
1406 lines
38 KiB
Text
1406 lines
38 KiB
Text
/* code generated by 'utils/blur.c' */
|
|
static uchar value_blur(int pixel, int begin, int end)
|
|
{
|
|
int p = (pixel * (end - begin) + (end - begin) / 2) / bitmap_width + begin;
|
|
int i = p & buffer_mask;
|
|
int weight_sum = 0;
|
|
int value_sum = 0;
|
|
switch (blur_power) {
|
|
case 0:
|
|
if ((p-1) < begin || end <= (p+1) || (i-1) < 0 || buffer_length <= (i+1)) {
|
|
if (begin <= (p-1)) {
|
|
weight_sum += 217;
|
|
value_sum += 217 * value_buffer[(i-1)&buffer_mask];
|
|
}
|
|
if ((p+0) < end) {
|
|
weight_sum += 19608;
|
|
value_sum += 19608 * value_buffer[(i+0)&buffer_mask];
|
|
}
|
|
if ((p+1) < end) {
|
|
weight_sum += 217;
|
|
value_sum += 217 * value_buffer[(i+1)&buffer_mask];
|
|
}
|
|
return value_sum / weight_sum;
|
|
}
|
|
return (178 * value_buffer[i-1] +
|
|
16027 * value_buffer[i+0] +
|
|
178 * value_buffer[i+1]) >> 14;
|
|
case 1:
|
|
if ((p-3) < begin || end <= (p+3) || (i-3) < 0 || buffer_length <= (i+3)) {
|
|
if (begin <= (p-3)) {
|
|
weight_sum += 72;
|
|
value_sum += 72 * value_buffer[(i-3)&buffer_mask];
|
|
}
|
|
if (begin <= (p-2)) {
|
|
weight_sum += 884;
|
|
value_sum += 884 * value_buffer[(i-2)&buffer_mask];
|
|
}
|
|
if (begin <= (p-1)) {
|
|
weight_sum += 3964;
|
|
value_sum += 3964 * value_buffer[(i-1)&buffer_mask];
|
|
}
|
|
if ((p+0) < end) {
|
|
weight_sum += 6536;
|
|
value_sum += 6536 * value_buffer[(i+0)&buffer_mask];
|
|
}
|
|
if ((p+1) < end) {
|
|
weight_sum += 3964;
|
|
value_sum += 3964 * value_buffer[(i+1)&buffer_mask];
|
|
}
|
|
if ((p+2) < end) {
|
|
weight_sum += 884;
|
|
value_sum += 884 * value_buffer[(i+2)&buffer_mask];
|
|
}
|
|
if ((p+3) < end) {
|
|
weight_sum += 72;
|
|
value_sum += 72 * value_buffer[(i+3)&buffer_mask];
|
|
}
|
|
return value_sum / weight_sum;
|
|
}
|
|
return (72 * value_buffer[i-3] +
|
|
884 * value_buffer[i-2] +
|
|
3966 * value_buffer[i-1] +
|
|
6539 * value_buffer[i+0] +
|
|
3966 * value_buffer[i+1] +
|
|
884 * value_buffer[i+2] +
|
|
72 * value_buffer[i+3]) >> 14;
|
|
case 2:
|
|
if ((p-5) < begin || end <= (p+5) || (i-5) < 0 || buffer_length <= (i+5)) {
|
|
if (begin <= (p-5)) {
|
|
weight_sum += 43;
|
|
value_sum += 43 * value_buffer[(i-5)&buffer_mask];
|
|
}
|
|
if (begin <= (p-4)) {
|
|
weight_sum += 220;
|
|
value_sum += 220 * value_buffer[(i-4)&buffer_mask];
|
|
}
|
|
if (begin <= (p-3)) {
|
|
weight_sum += 776;
|
|
value_sum += 776 * value_buffer[(i-3)&buffer_mask];
|
|
}
|
|
if (begin <= (p-2)) {
|
|
weight_sum += 1908;
|
|
value_sum += 1908 * value_buffer[(i-2)&buffer_mask];
|
|
}
|
|
if (begin <= (p-1)) {
|
|
weight_sum += 3275;
|
|
value_sum += 3275 * value_buffer[(i-1)&buffer_mask];
|
|
}
|
|
if ((p+0) < end) {
|
|
weight_sum += 3921;
|
|
value_sum += 3921 * value_buffer[(i+0)&buffer_mask];
|
|
}
|
|
if ((p+1) < end) {
|
|
weight_sum += 3275;
|
|
value_sum += 3275 * value_buffer[(i+1)&buffer_mask];
|
|
}
|
|
if ((p+2) < end) {
|
|
weight_sum += 1908;
|
|
value_sum += 1908 * value_buffer[(i+2)&buffer_mask];
|
|
}
|
|
if ((p+3) < end) {
|
|
weight_sum += 776;
|
|
value_sum += 776 * value_buffer[(i+3)&buffer_mask];
|
|
}
|
|
if ((p+4) < end) {
|
|
weight_sum += 220;
|
|
value_sum += 220 * value_buffer[(i+4)&buffer_mask];
|
|
}
|
|
if ((p+5) < end) {
|
|
weight_sum += 43;
|
|
value_sum += 43 * value_buffer[(i+5)&buffer_mask];
|
|
}
|
|
return value_sum / weight_sum;
|
|
}
|
|
return (43 * value_buffer[i-5] +
|
|
220 * value_buffer[i-4] +
|
|
776 * value_buffer[i-3] +
|
|
1911 * value_buffer[i-2] +
|
|
3279 * value_buffer[i-1] +
|
|
3926 * value_buffer[i+0] +
|
|
3279 * value_buffer[i+1] +
|
|
1911 * value_buffer[i+2] +
|
|
776 * value_buffer[i+3] +
|
|
220 * value_buffer[i+4] +
|
|
43 * value_buffer[i+5]) >> 14;
|
|
case 3:
|
|
if ((p-9) < begin || end <= (p+9) || (i-9) < 0 || buffer_length <= (i+9)) {
|
|
if (begin <= (p-9)) {
|
|
weight_sum += 24;
|
|
value_sum += 24 * value_buffer[(i-9)&buffer_mask];
|
|
}
|
|
if (begin <= (p-8)) {
|
|
weight_sum += 62;
|
|
value_sum += 62 * value_buffer[(i-8)&buffer_mask];
|
|
}
|
|
if (begin <= (p-7)) {
|
|
weight_sum += 143;
|
|
value_sum += 143 * value_buffer[(i-7)&buffer_mask];
|
|
}
|
|
if (begin <= (p-6)) {
|
|
weight_sum += 294;
|
|
value_sum += 294 * value_buffer[(i-6)&buffer_mask];
|
|
}
|
|
if (begin <= (p-5)) {
|
|
weight_sum += 543;
|
|
value_sum += 543 * value_buffer[(i-5)&buffer_mask];
|
|
}
|
|
if (begin <= (p-4)) {
|
|
weight_sum += 895;
|
|
value_sum += 895 * value_buffer[(i-4)&buffer_mask];
|
|
}
|
|
if (begin <= (p-3)) {
|
|
weight_sum += 1321;
|
|
value_sum += 1321 * value_buffer[(i-3)&buffer_mask];
|
|
}
|
|
if (begin <= (p-2)) {
|
|
weight_sum += 1744;
|
|
value_sum += 1744 * value_buffer[(i-2)&buffer_mask];
|
|
}
|
|
if (begin <= (p-1)) {
|
|
weight_sum += 2061;
|
|
value_sum += 2061 * value_buffer[(i-1)&buffer_mask];
|
|
}
|
|
if ((p+0) < end) {
|
|
weight_sum += 2178;
|
|
value_sum += 2178 * value_buffer[(i+0)&buffer_mask];
|
|
}
|
|
if ((p+1) < end) {
|
|
weight_sum += 2061;
|
|
value_sum += 2061 * value_buffer[(i+1)&buffer_mask];
|
|
}
|
|
if ((p+2) < end) {
|
|
weight_sum += 1744;
|
|
value_sum += 1744 * value_buffer[(i+2)&buffer_mask];
|
|
}
|
|
if ((p+3) < end) {
|
|
weight_sum += 1321;
|
|
value_sum += 1321 * value_buffer[(i+3)&buffer_mask];
|
|
}
|
|
if ((p+4) < end) {
|
|
weight_sum += 895;
|
|
value_sum += 895 * value_buffer[(i+4)&buffer_mask];
|
|
}
|
|
if ((p+5) < end) {
|
|
weight_sum += 543;
|
|
value_sum += 543 * value_buffer[(i+5)&buffer_mask];
|
|
}
|
|
if ((p+6) < end) {
|
|
weight_sum += 294;
|
|
value_sum += 294 * value_buffer[(i+6)&buffer_mask];
|
|
}
|
|
if ((p+7) < end) {
|
|
weight_sum += 143;
|
|
value_sum += 143 * value_buffer[(i+7)&buffer_mask];
|
|
}
|
|
if ((p+8) < end) {
|
|
weight_sum += 62;
|
|
value_sum += 62 * value_buffer[(i+8)&buffer_mask];
|
|
}
|
|
if ((p+9) < end) {
|
|
weight_sum += 24;
|
|
value_sum += 24 * value_buffer[(i+9)&buffer_mask];
|
|
}
|
|
return value_sum / weight_sum;
|
|
}
|
|
return (24 * value_buffer[i-9] +
|
|
62 * value_buffer[i-8] +
|
|
143 * value_buffer[i-7] +
|
|
295 * value_buffer[i-6] +
|
|
544 * value_buffer[i-5] +
|
|
897 * value_buffer[i-4] +
|
|
1323 * value_buffer[i-3] +
|
|
1747 * value_buffer[i-2] +
|
|
2064 * value_buffer[i-1] +
|
|
2182 * value_buffer[i+0] +
|
|
2064 * value_buffer[i+1] +
|
|
1747 * value_buffer[i+2] +
|
|
1323 * value_buffer[i+3] +
|
|
897 * value_buffer[i+4] +
|
|
544 * value_buffer[i+5] +
|
|
295 * value_buffer[i+6] +
|
|
143 * value_buffer[i+7] +
|
|
62 * value_buffer[i+8] +
|
|
24 * value_buffer[i+9]) >> 14;
|
|
case 4:
|
|
if ((p-17) < begin || end <= (p+17) || (i-17) < 0 || buffer_length <= (i+17)) {
|
|
if (begin <= (p-17)) {
|
|
weight_sum += 12;
|
|
value_sum += 12 * value_buffer[(i-17)&buffer_mask];
|
|
}
|
|
if (begin <= (p-16)) {
|
|
weight_sum += 21;
|
|
value_sum += 21 * value_buffer[(i-16)&buffer_mask];
|
|
}
|
|
if (begin <= (p-15)) {
|
|
weight_sum += 34;
|
|
value_sum += 34 * value_buffer[(i-15)&buffer_mask];
|
|
}
|
|
if (begin <= (p-14)) {
|
|
weight_sum += 54;
|
|
value_sum += 54 * value_buffer[(i-14)&buffer_mask];
|
|
}
|
|
if (begin <= (p-13)) {
|
|
weight_sum += 83;
|
|
value_sum += 83 * value_buffer[(i-13)&buffer_mask];
|
|
}
|
|
if (begin <= (p-12)) {
|
|
weight_sum += 122;
|
|
value_sum += 122 * value_buffer[(i-12)&buffer_mask];
|
|
}
|
|
if (begin <= (p-11)) {
|
|
weight_sum += 175;
|
|
value_sum += 175 * value_buffer[(i-11)&buffer_mask];
|
|
}
|
|
if (begin <= (p-10)) {
|
|
weight_sum += 243;
|
|
value_sum += 243 * value_buffer[(i-10)&buffer_mask];
|
|
}
|
|
if (begin <= (p-9)) {
|
|
weight_sum += 326;
|
|
value_sum += 326 * value_buffer[(i-9)&buffer_mask];
|
|
}
|
|
if (begin <= (p-8)) {
|
|
weight_sum += 425;
|
|
value_sum += 425 * value_buffer[(i-8)&buffer_mask];
|
|
}
|
|
if (begin <= (p-7)) {
|
|
weight_sum += 537;
|
|
value_sum += 537 * value_buffer[(i-7)&buffer_mask];
|
|
}
|
|
if (begin <= (p-6)) {
|
|
weight_sum += 658;
|
|
value_sum += 658 * value_buffer[(i-6)&buffer_mask];
|
|
}
|
|
if (begin <= (p-5)) {
|
|
weight_sum += 781;
|
|
value_sum += 781 * value_buffer[(i-5)&buffer_mask];
|
|
}
|
|
if (begin <= (p-4)) {
|
|
weight_sum += 899;
|
|
value_sum += 899 * value_buffer[(i-4)&buffer_mask];
|
|
}
|
|
if (begin <= (p-3)) {
|
|
weight_sum += 1002;
|
|
value_sum += 1002 * value_buffer[(i-3)&buffer_mask];
|
|
}
|
|
if (begin <= (p-2)) {
|
|
weight_sum += 1083;
|
|
value_sum += 1083 * value_buffer[(i-2)&buffer_mask];
|
|
}
|
|
if (begin <= (p-1)) {
|
|
weight_sum += 1135;
|
|
value_sum += 1135 * value_buffer[(i-1)&buffer_mask];
|
|
}
|
|
if ((p+0) < end) {
|
|
weight_sum += 1153;
|
|
value_sum += 1153 * value_buffer[(i+0)&buffer_mask];
|
|
}
|
|
if ((p+1) < end) {
|
|
weight_sum += 1135;
|
|
value_sum += 1135 * value_buffer[(i+1)&buffer_mask];
|
|
}
|
|
if ((p+2) < end) {
|
|
weight_sum += 1083;
|
|
value_sum += 1083 * value_buffer[(i+2)&buffer_mask];
|
|
}
|
|
if ((p+3) < end) {
|
|
weight_sum += 1002;
|
|
value_sum += 1002 * value_buffer[(i+3)&buffer_mask];
|
|
}
|
|
if ((p+4) < end) {
|
|
weight_sum += 899;
|
|
value_sum += 899 * value_buffer[(i+4)&buffer_mask];
|
|
}
|
|
if ((p+5) < end) {
|
|
weight_sum += 781;
|
|
value_sum += 781 * value_buffer[(i+5)&buffer_mask];
|
|
}
|
|
if ((p+6) < end) {
|
|
weight_sum += 658;
|
|
value_sum += 658 * value_buffer[(i+6)&buffer_mask];
|
|
}
|
|
if ((p+7) < end) {
|
|
weight_sum += 537;
|
|
value_sum += 537 * value_buffer[(i+7)&buffer_mask];
|
|
}
|
|
if ((p+8) < end) {
|
|
weight_sum += 425;
|
|
value_sum += 425 * value_buffer[(i+8)&buffer_mask];
|
|
}
|
|
if ((p+9) < end) {
|
|
weight_sum += 326;
|
|
value_sum += 326 * value_buffer[(i+9)&buffer_mask];
|
|
}
|
|
if ((p+10) < end) {
|
|
weight_sum += 243;
|
|
value_sum += 243 * value_buffer[(i+10)&buffer_mask];
|
|
}
|
|
if ((p+11) < end) {
|
|
weight_sum += 175;
|
|
value_sum += 175 * value_buffer[(i+11)&buffer_mask];
|
|
}
|
|
if ((p+12) < end) {
|
|
weight_sum += 122;
|
|
value_sum += 122 * value_buffer[(i+12)&buffer_mask];
|
|
}
|
|
if ((p+13) < end) {
|
|
weight_sum += 83;
|
|
value_sum += 83 * value_buffer[(i+13)&buffer_mask];
|
|
}
|
|
if ((p+14) < end) {
|
|
weight_sum += 54;
|
|
value_sum += 54 * value_buffer[(i+14)&buffer_mask];
|
|
}
|
|
if ((p+15) < end) {
|
|
weight_sum += 34;
|
|
value_sum += 34 * value_buffer[(i+15)&buffer_mask];
|
|
}
|
|
if ((p+16) < end) {
|
|
weight_sum += 21;
|
|
value_sum += 21 * value_buffer[(i+16)&buffer_mask];
|
|
}
|
|
if ((p+17) < end) {
|
|
weight_sum += 12;
|
|
value_sum += 12 * value_buffer[(i+17)&buffer_mask];
|
|
}
|
|
return value_sum / weight_sum;
|
|
}
|
|
return (12 * value_buffer[i-17] +
|
|
21 * value_buffer[i-16] +
|
|
34 * value_buffer[i-15] +
|
|
54 * value_buffer[i-14] +
|
|
83 * value_buffer[i-13] +
|
|
122 * value_buffer[i-12] +
|
|
175 * value_buffer[i-11] +
|
|
243 * value_buffer[i-10] +
|
|
327 * value_buffer[i-9] +
|
|
427 * value_buffer[i-8] +
|
|
539 * value_buffer[i-7] +
|
|
660 * value_buffer[i-6] +
|
|
783 * value_buffer[i-5] +
|
|
901 * value_buffer[i-4] +
|
|
1005 * value_buffer[i-3] +
|
|
1087 * value_buffer[i-2] +
|
|
1139 * value_buffer[i-1] +
|
|
1156 * value_buffer[i+0] +
|
|
1139 * value_buffer[i+1] +
|
|
1087 * value_buffer[i+2] +
|
|
1005 * value_buffer[i+3] +
|
|
901 * value_buffer[i+4] +
|
|
783 * value_buffer[i+5] +
|
|
660 * value_buffer[i+6] +
|
|
539 * value_buffer[i+7] +
|
|
427 * value_buffer[i+8] +
|
|
327 * value_buffer[i+9] +
|
|
243 * value_buffer[i+10] +
|
|
175 * value_buffer[i+11] +
|
|
122 * value_buffer[i+12] +
|
|
83 * value_buffer[i+13] +
|
|
54 * value_buffer[i+14] +
|
|
34 * value_buffer[i+15] +
|
|
21 * value_buffer[i+16] +
|
|
12 * value_buffer[i+17]) >> 14;
|
|
case 5:
|
|
if ((p-33) < begin || end <= (p+33) || (i-33) < 0 || buffer_length <= (i+33)) {
|
|
if (begin <= (p-33)) {
|
|
weight_sum += 6;
|
|
value_sum += 6 * value_buffer[(i-33)&buffer_mask];
|
|
}
|
|
if (begin <= (p-32)) {
|
|
weight_sum += 8;
|
|
value_sum += 8 * value_buffer[(i-32)&buffer_mask];
|
|
}
|
|
if (begin <= (p-31)) {
|
|
weight_sum += 11;
|
|
value_sum += 11 * value_buffer[(i-31)&buffer_mask];
|
|
}
|
|
if (begin <= (p-30)) {
|
|
weight_sum += 14;
|
|
value_sum += 14 * value_buffer[(i-30)&buffer_mask];
|
|
}
|
|
if (begin <= (p-29)) {
|
|
weight_sum += 18;
|
|
value_sum += 18 * value_buffer[(i-29)&buffer_mask];
|
|
}
|
|
if (begin <= (p-28)) {
|
|
weight_sum += 23;
|
|
value_sum += 23 * value_buffer[(i-28)&buffer_mask];
|
|
}
|
|
if (begin <= (p-27)) {
|
|
weight_sum += 29;
|
|
value_sum += 29 * value_buffer[(i-27)&buffer_mask];
|
|
}
|
|
if (begin <= (p-26)) {
|
|
weight_sum += 36;
|
|
value_sum += 36 * value_buffer[(i-26)&buffer_mask];
|
|
}
|
|
if (begin <= (p-25)) {
|
|
weight_sum += 44;
|
|
value_sum += 44 * value_buffer[(i-25)&buffer_mask];
|
|
}
|
|
if (begin <= (p-24)) {
|
|
weight_sum += 54;
|
|
value_sum += 54 * value_buffer[(i-24)&buffer_mask];
|
|
}
|
|
if (begin <= (p-23)) {
|
|
weight_sum += 66;
|
|
value_sum += 66 * value_buffer[(i-23)&buffer_mask];
|
|
}
|
|
if (begin <= (p-22)) {
|
|
weight_sum += 80;
|
|
value_sum += 80 * value_buffer[(i-22)&buffer_mask];
|
|
}
|
|
if (begin <= (p-21)) {
|
|
weight_sum += 96;
|
|
value_sum += 96 * value_buffer[(i-21)&buffer_mask];
|
|
}
|
|
if (begin <= (p-20)) {
|
|
weight_sum += 113;
|
|
value_sum += 113 * value_buffer[(i-20)&buffer_mask];
|
|
}
|
|
if (begin <= (p-19)) {
|
|
weight_sum += 133;
|
|
value_sum += 133 * value_buffer[(i-19)&buffer_mask];
|
|
}
|
|
if (begin <= (p-18)) {
|
|
weight_sum += 155;
|
|
value_sum += 155 * value_buffer[(i-18)&buffer_mask];
|
|
}
|
|
if (begin <= (p-17)) {
|
|
weight_sum += 180;
|
|
value_sum += 180 * value_buffer[(i-17)&buffer_mask];
|
|
}
|
|
if (begin <= (p-16)) {
|
|
weight_sum += 206;
|
|
value_sum += 206 * value_buffer[(i-16)&buffer_mask];
|
|
}
|
|
if (begin <= (p-15)) {
|
|
weight_sum += 234;
|
|
value_sum += 234 * value_buffer[(i-15)&buffer_mask];
|
|
}
|
|
if (begin <= (p-14)) {
|
|
weight_sum += 264;
|
|
value_sum += 264 * value_buffer[(i-14)&buffer_mask];
|
|
}
|
|
if (begin <= (p-13)) {
|
|
weight_sum += 295;
|
|
value_sum += 295 * value_buffer[(i-13)&buffer_mask];
|
|
}
|
|
if (begin <= (p-12)) {
|
|
weight_sum += 327;
|
|
value_sum += 327 * value_buffer[(i-12)&buffer_mask];
|
|
}
|
|
if (begin <= (p-11)) {
|
|
weight_sum += 360;
|
|
value_sum += 360 * value_buffer[(i-11)&buffer_mask];
|
|
}
|
|
if (begin <= (p-10)) {
|
|
weight_sum += 393;
|
|
value_sum += 393 * value_buffer[(i-10)&buffer_mask];
|
|
}
|
|
if (begin <= (p-9)) {
|
|
weight_sum += 425;
|
|
value_sum += 425 * value_buffer[(i-9)&buffer_mask];
|
|
}
|
|
if (begin <= (p-8)) {
|
|
weight_sum += 456;
|
|
value_sum += 456 * value_buffer[(i-8)&buffer_mask];
|
|
}
|
|
if (begin <= (p-7)) {
|
|
weight_sum += 485;
|
|
value_sum += 485 * value_buffer[(i-7)&buffer_mask];
|
|
}
|
|
if (begin <= (p-6)) {
|
|
weight_sum += 512;
|
|
value_sum += 512 * value_buffer[(i-6)&buffer_mask];
|
|
}
|
|
if (begin <= (p-5)) {
|
|
weight_sum += 535;
|
|
value_sum += 535 * value_buffer[(i-5)&buffer_mask];
|
|
}
|
|
if (begin <= (p-4)) {
|
|
weight_sum += 556;
|
|
value_sum += 556 * value_buffer[(i-4)&buffer_mask];
|
|
}
|
|
if (begin <= (p-3)) {
|
|
weight_sum += 572;
|
|
value_sum += 572 * value_buffer[(i-3)&buffer_mask];
|
|
}
|
|
if (begin <= (p-2)) {
|
|
weight_sum += 584;
|
|
value_sum += 584 * value_buffer[(i-2)&buffer_mask];
|
|
}
|
|
if (begin <= (p-1)) {
|
|
weight_sum += 591;
|
|
value_sum += 591 * value_buffer[(i-1)&buffer_mask];
|
|
}
|
|
if ((p+0) < end) {
|
|
weight_sum += 594;
|
|
value_sum += 594 * value_buffer[(i+0)&buffer_mask];
|
|
}
|
|
if ((p+1) < end) {
|
|
weight_sum += 591;
|
|
value_sum += 591 * value_buffer[(i+1)&buffer_mask];
|
|
}
|
|
if ((p+2) < end) {
|
|
weight_sum += 584;
|
|
value_sum += 584 * value_buffer[(i+2)&buffer_mask];
|
|
}
|
|
if ((p+3) < end) {
|
|
weight_sum += 572;
|
|
value_sum += 572 * value_buffer[(i+3)&buffer_mask];
|
|
}
|
|
if ((p+4) < end) {
|
|
weight_sum += 556;
|
|
value_sum += 556 * value_buffer[(i+4)&buffer_mask];
|
|
}
|
|
if ((p+5) < end) {
|
|
weight_sum += 535;
|
|
value_sum += 535 * value_buffer[(i+5)&buffer_mask];
|
|
}
|
|
if ((p+6) < end) {
|
|
weight_sum += 512;
|
|
value_sum += 512 * value_buffer[(i+6)&buffer_mask];
|
|
}
|
|
if ((p+7) < end) {
|
|
weight_sum += 485;
|
|
value_sum += 485 * value_buffer[(i+7)&buffer_mask];
|
|
}
|
|
if ((p+8) < end) {
|
|
weight_sum += 456;
|
|
value_sum += 456 * value_buffer[(i+8)&buffer_mask];
|
|
}
|
|
if ((p+9) < end) {
|
|
weight_sum += 425;
|
|
value_sum += 425 * value_buffer[(i+9)&buffer_mask];
|
|
}
|
|
if ((p+10) < end) {
|
|
weight_sum += 393;
|
|
value_sum += 393 * value_buffer[(i+10)&buffer_mask];
|
|
}
|
|
if ((p+11) < end) {
|
|
weight_sum += 360;
|
|
value_sum += 360 * value_buffer[(i+11)&buffer_mask];
|
|
}
|
|
if ((p+12) < end) {
|
|
weight_sum += 327;
|
|
value_sum += 327 * value_buffer[(i+12)&buffer_mask];
|
|
}
|
|
if ((p+13) < end) {
|
|
weight_sum += 295;
|
|
value_sum += 295 * value_buffer[(i+13)&buffer_mask];
|
|
}
|
|
if ((p+14) < end) {
|
|
weight_sum += 264;
|
|
value_sum += 264 * value_buffer[(i+14)&buffer_mask];
|
|
}
|
|
if ((p+15) < end) {
|
|
weight_sum += 234;
|
|
value_sum += 234 * value_buffer[(i+15)&buffer_mask];
|
|
}
|
|
if ((p+16) < end) {
|
|
weight_sum += 206;
|
|
value_sum += 206 * value_buffer[(i+16)&buffer_mask];
|
|
}
|
|
if ((p+17) < end) {
|
|
weight_sum += 180;
|
|
value_sum += 180 * value_buffer[(i+17)&buffer_mask];
|
|
}
|
|
if ((p+18) < end) {
|
|
weight_sum += 155;
|
|
value_sum += 155 * value_buffer[(i+18)&buffer_mask];
|
|
}
|
|
if ((p+19) < end) {
|
|
weight_sum += 133;
|
|
value_sum += 133 * value_buffer[(i+19)&buffer_mask];
|
|
}
|
|
if ((p+20) < end) {
|
|
weight_sum += 113;
|
|
value_sum += 113 * value_buffer[(i+20)&buffer_mask];
|
|
}
|
|
if ((p+21) < end) {
|
|
weight_sum += 96;
|
|
value_sum += 96 * value_buffer[(i+21)&buffer_mask];
|
|
}
|
|
if ((p+22) < end) {
|
|
weight_sum += 80;
|
|
value_sum += 80 * value_buffer[(i+22)&buffer_mask];
|
|
}
|
|
if ((p+23) < end) {
|
|
weight_sum += 66;
|
|
value_sum += 66 * value_buffer[(i+23)&buffer_mask];
|
|
}
|
|
if ((p+24) < end) {
|
|
weight_sum += 54;
|
|
value_sum += 54 * value_buffer[(i+24)&buffer_mask];
|
|
}
|
|
if ((p+25) < end) {
|
|
weight_sum += 44;
|
|
value_sum += 44 * value_buffer[(i+25)&buffer_mask];
|
|
}
|
|
if ((p+26) < end) {
|
|
weight_sum += 36;
|
|
value_sum += 36 * value_buffer[(i+26)&buffer_mask];
|
|
}
|
|
if ((p+27) < end) {
|
|
weight_sum += 29;
|
|
value_sum += 29 * value_buffer[(i+27)&buffer_mask];
|
|
}
|
|
if ((p+28) < end) {
|
|
weight_sum += 23;
|
|
value_sum += 23 * value_buffer[(i+28)&buffer_mask];
|
|
}
|
|
if ((p+29) < end) {
|
|
weight_sum += 18;
|
|
value_sum += 18 * value_buffer[(i+29)&buffer_mask];
|
|
}
|
|
if ((p+30) < end) {
|
|
weight_sum += 14;
|
|
value_sum += 14 * value_buffer[(i+30)&buffer_mask];
|
|
}
|
|
if ((p+31) < end) {
|
|
weight_sum += 11;
|
|
value_sum += 11 * value_buffer[(i+31)&buffer_mask];
|
|
}
|
|
if ((p+32) < end) {
|
|
weight_sum += 8;
|
|
value_sum += 8 * value_buffer[(i+32)&buffer_mask];
|
|
}
|
|
if ((p+33) < end) {
|
|
weight_sum += 6;
|
|
value_sum += 6 * value_buffer[(i+33)&buffer_mask];
|
|
}
|
|
return value_sum / weight_sum;
|
|
}
|
|
return (6 * value_buffer[i-33] +
|
|
8 * value_buffer[i-32] +
|
|
11 * value_buffer[i-31] +
|
|
14 * value_buffer[i-30] +
|
|
18 * value_buffer[i-29] +
|
|
23 * value_buffer[i-28] +
|
|
29 * value_buffer[i-27] +
|
|
36 * value_buffer[i-26] +
|
|
45 * value_buffer[i-25] +
|
|
55 * value_buffer[i-24] +
|
|
67 * value_buffer[i-23] +
|
|
80 * value_buffer[i-22] +
|
|
96 * value_buffer[i-21] +
|
|
114 * value_buffer[i-20] +
|
|
134 * value_buffer[i-19] +
|
|
156 * value_buffer[i-18] +
|
|
180 * value_buffer[i-17] +
|
|
207 * value_buffer[i-16] +
|
|
235 * value_buffer[i-15] +
|
|
265 * value_buffer[i-14] +
|
|
296 * value_buffer[i-13] +
|
|
329 * value_buffer[i-12] +
|
|
361 * value_buffer[i-11] +
|
|
394 * value_buffer[i-10] +
|
|
426 * value_buffer[i-9] +
|
|
457 * value_buffer[i-8] +
|
|
487 * value_buffer[i-7] +
|
|
514 * value_buffer[i-6] +
|
|
538 * value_buffer[i-5] +
|
|
558 * value_buffer[i-4] +
|
|
574 * value_buffer[i-3] +
|
|
586 * value_buffer[i-2] +
|
|
594 * value_buffer[i-1] +
|
|
596 * value_buffer[i+0] +
|
|
594 * value_buffer[i+1] +
|
|
586 * value_buffer[i+2] +
|
|
574 * value_buffer[i+3] +
|
|
558 * value_buffer[i+4] +
|
|
538 * value_buffer[i+5] +
|
|
514 * value_buffer[i+6] +
|
|
487 * value_buffer[i+7] +
|
|
457 * value_buffer[i+8] +
|
|
426 * value_buffer[i+9] +
|
|
394 * value_buffer[i+10] +
|
|
361 * value_buffer[i+11] +
|
|
329 * value_buffer[i+12] +
|
|
296 * value_buffer[i+13] +
|
|
265 * value_buffer[i+14] +
|
|
235 * value_buffer[i+15] +
|
|
207 * value_buffer[i+16] +
|
|
180 * value_buffer[i+17] +
|
|
156 * value_buffer[i+18] +
|
|
134 * value_buffer[i+19] +
|
|
114 * value_buffer[i+20] +
|
|
96 * value_buffer[i+21] +
|
|
80 * value_buffer[i+22] +
|
|
67 * value_buffer[i+23] +
|
|
55 * value_buffer[i+24] +
|
|
45 * value_buffer[i+25] +
|
|
36 * value_buffer[i+26] +
|
|
29 * value_buffer[i+27] +
|
|
23 * value_buffer[i+28] +
|
|
18 * value_buffer[i+29] +
|
|
14 * value_buffer[i+30] +
|
|
11 * value_buffer[i+31] +
|
|
8 * value_buffer[i+32] +
|
|
6 * value_buffer[i+33]) >> 14;
|
|
case 6:
|
|
if ((p-65) < begin || end <= (p+65) || (i-65) < 0 || buffer_length <= (i+65)) {
|
|
if (begin <= (p-65)) {
|
|
weight_sum += 3;
|
|
value_sum += 3 * value_buffer[(i-65)&buffer_mask];
|
|
}
|
|
if (begin <= (p-64)) {
|
|
weight_sum += 3;
|
|
value_sum += 3 * value_buffer[(i-64)&buffer_mask];
|
|
}
|
|
if (begin <= (p-63)) {
|
|
weight_sum += 4;
|
|
value_sum += 4 * value_buffer[(i-63)&buffer_mask];
|
|
}
|
|
if (begin <= (p-62)) {
|
|
weight_sum += 5;
|
|
value_sum += 5 * value_buffer[(i-62)&buffer_mask];
|
|
}
|
|
if (begin <= (p-61)) {
|
|
weight_sum += 5;
|
|
value_sum += 5 * value_buffer[(i-61)&buffer_mask];
|
|
}
|
|
if (begin <= (p-60)) {
|
|
weight_sum += 6;
|
|
value_sum += 6 * value_buffer[(i-60)&buffer_mask];
|
|
}
|
|
if (begin <= (p-59)) {
|
|
weight_sum += 7;
|
|
value_sum += 7 * value_buffer[(i-59)&buffer_mask];
|
|
}
|
|
if (begin <= (p-58)) {
|
|
weight_sum += 8;
|
|
value_sum += 8 * value_buffer[(i-58)&buffer_mask];
|
|
}
|
|
if (begin <= (p-57)) {
|
|
weight_sum += 9;
|
|
value_sum += 9 * value_buffer[(i-57)&buffer_mask];
|
|
}
|
|
if (begin <= (p-56)) {
|
|
weight_sum += 10;
|
|
value_sum += 10 * value_buffer[(i-56)&buffer_mask];
|
|
}
|
|
if (begin <= (p-55)) {
|
|
weight_sum += 12;
|
|
value_sum += 12 * value_buffer[(i-55)&buffer_mask];
|
|
}
|
|
if (begin <= (p-54)) {
|
|
weight_sum += 13;
|
|
value_sum += 13 * value_buffer[(i-54)&buffer_mask];
|
|
}
|
|
if (begin <= (p-53)) {
|
|
weight_sum += 15;
|
|
value_sum += 15 * value_buffer[(i-53)&buffer_mask];
|
|
}
|
|
if (begin <= (p-52)) {
|
|
weight_sum += 16;
|
|
value_sum += 16 * value_buffer[(i-52)&buffer_mask];
|
|
}
|
|
if (begin <= (p-51)) {
|
|
weight_sum += 18;
|
|
value_sum += 18 * value_buffer[(i-51)&buffer_mask];
|
|
}
|
|
if (begin <= (p-50)) {
|
|
weight_sum += 21;
|
|
value_sum += 21 * value_buffer[(i-50)&buffer_mask];
|
|
}
|
|
if (begin <= (p-49)) {
|
|
weight_sum += 23;
|
|
value_sum += 23 * value_buffer[(i-49)&buffer_mask];
|
|
}
|
|
if (begin <= (p-48)) {
|
|
weight_sum += 25;
|
|
value_sum += 25 * value_buffer[(i-48)&buffer_mask];
|
|
}
|
|
if (begin <= (p-47)) {
|
|
weight_sum += 28;
|
|
value_sum += 28 * value_buffer[(i-47)&buffer_mask];
|
|
}
|
|
if (begin <= (p-46)) {
|
|
weight_sum += 31;
|
|
value_sum += 31 * value_buffer[(i-46)&buffer_mask];
|
|
}
|
|
if (begin <= (p-45)) {
|
|
weight_sum += 34;
|
|
value_sum += 34 * value_buffer[(i-45)&buffer_mask];
|
|
}
|
|
if (begin <= (p-44)) {
|
|
weight_sum += 38;
|
|
value_sum += 38 * value_buffer[(i-44)&buffer_mask];
|
|
}
|
|
if (begin <= (p-43)) {
|
|
weight_sum += 42;
|
|
value_sum += 42 * value_buffer[(i-43)&buffer_mask];
|
|
}
|
|
if (begin <= (p-42)) {
|
|
weight_sum += 46;
|
|
value_sum += 46 * value_buffer[(i-42)&buffer_mask];
|
|
}
|
|
if (begin <= (p-41)) {
|
|
weight_sum += 50;
|
|
value_sum += 50 * value_buffer[(i-41)&buffer_mask];
|
|
}
|
|
if (begin <= (p-40)) {
|
|
weight_sum += 54;
|
|
value_sum += 54 * value_buffer[(i-40)&buffer_mask];
|
|
}
|
|
if (begin <= (p-39)) {
|
|
weight_sum += 59;
|
|
value_sum += 59 * value_buffer[(i-39)&buffer_mask];
|
|
}
|
|
if (begin <= (p-38)) {
|
|
weight_sum += 64;
|
|
value_sum += 64 * value_buffer[(i-38)&buffer_mask];
|
|
}
|
|
if (begin <= (p-37)) {
|
|
weight_sum += 70;
|
|
value_sum += 70 * value_buffer[(i-37)&buffer_mask];
|
|
}
|
|
if (begin <= (p-36)) {
|
|
weight_sum += 75;
|
|
value_sum += 75 * value_buffer[(i-36)&buffer_mask];
|
|
}
|
|
if (begin <= (p-35)) {
|
|
weight_sum += 81;
|
|
value_sum += 81 * value_buffer[(i-35)&buffer_mask];
|
|
}
|
|
if (begin <= (p-34)) {
|
|
weight_sum += 88;
|
|
value_sum += 88 * value_buffer[(i-34)&buffer_mask];
|
|
}
|
|
if (begin <= (p-33)) {
|
|
weight_sum += 94;
|
|
value_sum += 94 * value_buffer[(i-33)&buffer_mask];
|
|
}
|
|
if (begin <= (p-32)) {
|
|
weight_sum += 101;
|
|
value_sum += 101 * value_buffer[(i-32)&buffer_mask];
|
|
}
|
|
if (begin <= (p-31)) {
|
|
weight_sum += 108;
|
|
value_sum += 108 * value_buffer[(i-31)&buffer_mask];
|
|
}
|
|
if (begin <= (p-30)) {
|
|
weight_sum += 115;
|
|
value_sum += 115 * value_buffer[(i-30)&buffer_mask];
|
|
}
|
|
if (begin <= (p-29)) {
|
|
weight_sum += 123;
|
|
value_sum += 123 * value_buffer[(i-29)&buffer_mask];
|
|
}
|
|
if (begin <= (p-28)) {
|
|
weight_sum += 130;
|
|
value_sum += 130 * value_buffer[(i-28)&buffer_mask];
|
|
}
|
|
if (begin <= (p-27)) {
|
|
weight_sum += 138;
|
|
value_sum += 138 * value_buffer[(i-27)&buffer_mask];
|
|
}
|
|
if (begin <= (p-26)) {
|
|
weight_sum += 146;
|
|
value_sum += 146 * value_buffer[(i-26)&buffer_mask];
|
|
}
|
|
if (begin <= (p-25)) {
|
|
weight_sum += 155;
|
|
value_sum += 155 * value_buffer[(i-25)&buffer_mask];
|
|
}
|
|
if (begin <= (p-24)) {
|
|
weight_sum += 163;
|
|
value_sum += 163 * value_buffer[(i-24)&buffer_mask];
|
|
}
|
|
if (begin <= (p-23)) {
|
|
weight_sum += 171;
|
|
value_sum += 171 * value_buffer[(i-23)&buffer_mask];
|
|
}
|
|
if (begin <= (p-22)) {
|
|
weight_sum += 180;
|
|
value_sum += 180 * value_buffer[(i-22)&buffer_mask];
|
|
}
|
|
if (begin <= (p-21)) {
|
|
weight_sum += 188;
|
|
value_sum += 188 * value_buffer[(i-21)&buffer_mask];
|
|
}
|
|
if (begin <= (p-20)) {
|
|
weight_sum += 197;
|
|
value_sum += 197 * value_buffer[(i-20)&buffer_mask];
|
|
}
|
|
if (begin <= (p-19)) {
|
|
weight_sum += 205;
|
|
value_sum += 205 * value_buffer[(i-19)&buffer_mask];
|
|
}
|
|
if (begin <= (p-18)) {
|
|
weight_sum += 213;
|
|
value_sum += 213 * value_buffer[(i-18)&buffer_mask];
|
|
}
|
|
if (begin <= (p-17)) {
|
|
weight_sum += 221;
|
|
value_sum += 221 * value_buffer[(i-17)&buffer_mask];
|
|
}
|
|
if (begin <= (p-16)) {
|
|
weight_sum += 229;
|
|
value_sum += 229 * value_buffer[(i-16)&buffer_mask];
|
|
}
|
|
if (begin <= (p-15)) {
|
|
weight_sum += 237;
|
|
value_sum += 237 * value_buffer[(i-15)&buffer_mask];
|
|
}
|
|
if (begin <= (p-14)) {
|
|
weight_sum += 244;
|
|
value_sum += 244 * value_buffer[(i-14)&buffer_mask];
|
|
}
|
|
if (begin <= (p-13)) {
|
|
weight_sum += 251;
|
|
value_sum += 251 * value_buffer[(i-13)&buffer_mask];
|
|
}
|
|
if (begin <= (p-12)) {
|
|
weight_sum += 258;
|
|
value_sum += 258 * value_buffer[(i-12)&buffer_mask];
|
|
}
|
|
if (begin <= (p-11)) {
|
|
weight_sum += 265;
|
|
value_sum += 265 * value_buffer[(i-11)&buffer_mask];
|
|
}
|
|
if (begin <= (p-10)) {
|
|
weight_sum += 271;
|
|
value_sum += 271 * value_buffer[(i-10)&buffer_mask];
|
|
}
|
|
if (begin <= (p-9)) {
|
|
weight_sum += 276;
|
|
value_sum += 276 * value_buffer[(i-9)&buffer_mask];
|
|
}
|
|
if (begin <= (p-8)) {
|
|
weight_sum += 281;
|
|
value_sum += 281 * value_buffer[(i-8)&buffer_mask];
|
|
}
|
|
if (begin <= (p-7)) {
|
|
weight_sum += 286;
|
|
value_sum += 286 * value_buffer[(i-7)&buffer_mask];
|
|
}
|
|
if (begin <= (p-6)) {
|
|
weight_sum += 290;
|
|
value_sum += 290 * value_buffer[(i-6)&buffer_mask];
|
|
}
|
|
if (begin <= (p-5)) {
|
|
weight_sum += 293;
|
|
value_sum += 293 * value_buffer[(i-5)&buffer_mask];
|
|
}
|
|
if (begin <= (p-4)) {
|
|
weight_sum += 296;
|
|
value_sum += 296 * value_buffer[(i-4)&buffer_mask];
|
|
}
|
|
if (begin <= (p-3)) {
|
|
weight_sum += 298;
|
|
value_sum += 298 * value_buffer[(i-3)&buffer_mask];
|
|
}
|
|
if (begin <= (p-2)) {
|
|
weight_sum += 300;
|
|
value_sum += 300 * value_buffer[(i-2)&buffer_mask];
|
|
}
|
|
if (begin <= (p-1)) {
|
|
weight_sum += 301;
|
|
value_sum += 301 * value_buffer[(i-1)&buffer_mask];
|
|
}
|
|
if ((p+0) < end) {
|
|
weight_sum += 301;
|
|
value_sum += 301 * value_buffer[(i+0)&buffer_mask];
|
|
}
|
|
if ((p+1) < end) {
|
|
weight_sum += 301;
|
|
value_sum += 301 * value_buffer[(i+1)&buffer_mask];
|
|
}
|
|
if ((p+2) < end) {
|
|
weight_sum += 300;
|
|
value_sum += 300 * value_buffer[(i+2)&buffer_mask];
|
|
}
|
|
if ((p+3) < end) {
|
|
weight_sum += 298;
|
|
value_sum += 298 * value_buffer[(i+3)&buffer_mask];
|
|
}
|
|
if ((p+4) < end) {
|
|
weight_sum += 296;
|
|
value_sum += 296 * value_buffer[(i+4)&buffer_mask];
|
|
}
|
|
if ((p+5) < end) {
|
|
weight_sum += 293;
|
|
value_sum += 293 * value_buffer[(i+5)&buffer_mask];
|
|
}
|
|
if ((p+6) < end) {
|
|
weight_sum += 290;
|
|
value_sum += 290 * value_buffer[(i+6)&buffer_mask];
|
|
}
|
|
if ((p+7) < end) {
|
|
weight_sum += 286;
|
|
value_sum += 286 * value_buffer[(i+7)&buffer_mask];
|
|
}
|
|
if ((p+8) < end) {
|
|
weight_sum += 281;
|
|
value_sum += 281 * value_buffer[(i+8)&buffer_mask];
|
|
}
|
|
if ((p+9) < end) {
|
|
weight_sum += 276;
|
|
value_sum += 276 * value_buffer[(i+9)&buffer_mask];
|
|
}
|
|
if ((p+10) < end) {
|
|
weight_sum += 271;
|
|
value_sum += 271 * value_buffer[(i+10)&buffer_mask];
|
|
}
|
|
if ((p+11) < end) {
|
|
weight_sum += 265;
|
|
value_sum += 265 * value_buffer[(i+11)&buffer_mask];
|
|
}
|
|
if ((p+12) < end) {
|
|
weight_sum += 258;
|
|
value_sum += 258 * value_buffer[(i+12)&buffer_mask];
|
|
}
|
|
if ((p+13) < end) {
|
|
weight_sum += 251;
|
|
value_sum += 251 * value_buffer[(i+13)&buffer_mask];
|
|
}
|
|
if ((p+14) < end) {
|
|
weight_sum += 244;
|
|
value_sum += 244 * value_buffer[(i+14)&buffer_mask];
|
|
}
|
|
if ((p+15) < end) {
|
|
weight_sum += 237;
|
|
value_sum += 237 * value_buffer[(i+15)&buffer_mask];
|
|
}
|
|
if ((p+16) < end) {
|
|
weight_sum += 229;
|
|
value_sum += 229 * value_buffer[(i+16)&buffer_mask];
|
|
}
|
|
if ((p+17) < end) {
|
|
weight_sum += 221;
|
|
value_sum += 221 * value_buffer[(i+17)&buffer_mask];
|
|
}
|
|
if ((p+18) < end) {
|
|
weight_sum += 213;
|
|
value_sum += 213 * value_buffer[(i+18)&buffer_mask];
|
|
}
|
|
if ((p+19) < end) {
|
|
weight_sum += 205;
|
|
value_sum += 205 * value_buffer[(i+19)&buffer_mask];
|
|
}
|
|
if ((p+20) < end) {
|
|
weight_sum += 197;
|
|
value_sum += 197 * value_buffer[(i+20)&buffer_mask];
|
|
}
|
|
if ((p+21) < end) {
|
|
weight_sum += 188;
|
|
value_sum += 188 * value_buffer[(i+21)&buffer_mask];
|
|
}
|
|
if ((p+22) < end) {
|
|
weight_sum += 180;
|
|
value_sum += 180 * value_buffer[(i+22)&buffer_mask];
|
|
}
|
|
if ((p+23) < end) {
|
|
weight_sum += 171;
|
|
value_sum += 171 * value_buffer[(i+23)&buffer_mask];
|
|
}
|
|
if ((p+24) < end) {
|
|
weight_sum += 163;
|
|
value_sum += 163 * value_buffer[(i+24)&buffer_mask];
|
|
}
|
|
if ((p+25) < end) {
|
|
weight_sum += 155;
|
|
value_sum += 155 * value_buffer[(i+25)&buffer_mask];
|
|
}
|
|
if ((p+26) < end) {
|
|
weight_sum += 146;
|
|
value_sum += 146 * value_buffer[(i+26)&buffer_mask];
|
|
}
|
|
if ((p+27) < end) {
|
|
weight_sum += 138;
|
|
value_sum += 138 * value_buffer[(i+27)&buffer_mask];
|
|
}
|
|
if ((p+28) < end) {
|
|
weight_sum += 130;
|
|
value_sum += 130 * value_buffer[(i+28)&buffer_mask];
|
|
}
|
|
if ((p+29) < end) {
|
|
weight_sum += 123;
|
|
value_sum += 123 * value_buffer[(i+29)&buffer_mask];
|
|
}
|
|
if ((p+30) < end) {
|
|
weight_sum += 115;
|
|
value_sum += 115 * value_buffer[(i+30)&buffer_mask];
|
|
}
|
|
if ((p+31) < end) {
|
|
weight_sum += 108;
|
|
value_sum += 108 * value_buffer[(i+31)&buffer_mask];
|
|
}
|
|
if ((p+32) < end) {
|
|
weight_sum += 101;
|
|
value_sum += 101 * value_buffer[(i+32)&buffer_mask];
|
|
}
|
|
if ((p+33) < end) {
|
|
weight_sum += 94;
|
|
value_sum += 94 * value_buffer[(i+33)&buffer_mask];
|
|
}
|
|
if ((p+34) < end) {
|
|
weight_sum += 88;
|
|
value_sum += 88 * value_buffer[(i+34)&buffer_mask];
|
|
}
|
|
if ((p+35) < end) {
|
|
weight_sum += 81;
|
|
value_sum += 81 * value_buffer[(i+35)&buffer_mask];
|
|
}
|
|
if ((p+36) < end) {
|
|
weight_sum += 75;
|
|
value_sum += 75 * value_buffer[(i+36)&buffer_mask];
|
|
}
|
|
if ((p+37) < end) {
|
|
weight_sum += 70;
|
|
value_sum += 70 * value_buffer[(i+37)&buffer_mask];
|
|
}
|
|
if ((p+38) < end) {
|
|
weight_sum += 64;
|
|
value_sum += 64 * value_buffer[(i+38)&buffer_mask];
|
|
}
|
|
if ((p+39) < end) {
|
|
weight_sum += 59;
|
|
value_sum += 59 * value_buffer[(i+39)&buffer_mask];
|
|
}
|
|
if ((p+40) < end) {
|
|
weight_sum += 54;
|
|
value_sum += 54 * value_buffer[(i+40)&buffer_mask];
|
|
}
|
|
if ((p+41) < end) {
|
|
weight_sum += 50;
|
|
value_sum += 50 * value_buffer[(i+41)&buffer_mask];
|
|
}
|
|
if ((p+42) < end) {
|
|
weight_sum += 46;
|
|
value_sum += 46 * value_buffer[(i+42)&buffer_mask];
|
|
}
|
|
if ((p+43) < end) {
|
|
weight_sum += 42;
|
|
value_sum += 42 * value_buffer[(i+43)&buffer_mask];
|
|
}
|
|
if ((p+44) < end) {
|
|
weight_sum += 38;
|
|
value_sum += 38 * value_buffer[(i+44)&buffer_mask];
|
|
}
|
|
if ((p+45) < end) {
|
|
weight_sum += 34;
|
|
value_sum += 34 * value_buffer[(i+45)&buffer_mask];
|
|
}
|
|
if ((p+46) < end) {
|
|
weight_sum += 31;
|
|
value_sum += 31 * value_buffer[(i+46)&buffer_mask];
|
|
}
|
|
if ((p+47) < end) {
|
|
weight_sum += 28;
|
|
value_sum += 28 * value_buffer[(i+47)&buffer_mask];
|
|
}
|
|
if ((p+48) < end) {
|
|
weight_sum += 25;
|
|
value_sum += 25 * value_buffer[(i+48)&buffer_mask];
|
|
}
|
|
if ((p+49) < end) {
|
|
weight_sum += 23;
|
|
value_sum += 23 * value_buffer[(i+49)&buffer_mask];
|
|
}
|
|
if ((p+50) < end) {
|
|
weight_sum += 21;
|
|
value_sum += 21 * value_buffer[(i+50)&buffer_mask];
|
|
}
|
|
if ((p+51) < end) {
|
|
weight_sum += 18;
|
|
value_sum += 18 * value_buffer[(i+51)&buffer_mask];
|
|
}
|
|
if ((p+52) < end) {
|
|
weight_sum += 16;
|
|
value_sum += 16 * value_buffer[(i+52)&buffer_mask];
|
|
}
|
|
if ((p+53) < end) {
|
|
weight_sum += 15;
|
|
value_sum += 15 * value_buffer[(i+53)&buffer_mask];
|
|
}
|
|
if ((p+54) < end) {
|
|
weight_sum += 13;
|
|
value_sum += 13 * value_buffer[(i+54)&buffer_mask];
|
|
}
|
|
if ((p+55) < end) {
|
|
weight_sum += 12;
|
|
value_sum += 12 * value_buffer[(i+55)&buffer_mask];
|
|
}
|
|
if ((p+56) < end) {
|
|
weight_sum += 10;
|
|
value_sum += 10 * value_buffer[(i+56)&buffer_mask];
|
|
}
|
|
if ((p+57) < end) {
|
|
weight_sum += 9;
|
|
value_sum += 9 * value_buffer[(i+57)&buffer_mask];
|
|
}
|
|
if ((p+58) < end) {
|
|
weight_sum += 8;
|
|
value_sum += 8 * value_buffer[(i+58)&buffer_mask];
|
|
}
|
|
if ((p+59) < end) {
|
|
weight_sum += 7;
|
|
value_sum += 7 * value_buffer[(i+59)&buffer_mask];
|
|
}
|
|
if ((p+60) < end) {
|
|
weight_sum += 6;
|
|
value_sum += 6 * value_buffer[(i+60)&buffer_mask];
|
|
}
|
|
if ((p+61) < end) {
|
|
weight_sum += 5;
|
|
value_sum += 5 * value_buffer[(i+61)&buffer_mask];
|
|
}
|
|
if ((p+62) < end) {
|
|
weight_sum += 5;
|
|
value_sum += 5 * value_buffer[(i+62)&buffer_mask];
|
|
}
|
|
if ((p+63) < end) {
|
|
weight_sum += 4;
|
|
value_sum += 4 * value_buffer[(i+63)&buffer_mask];
|
|
}
|
|
if ((p+64) < end) {
|
|
weight_sum += 3;
|
|
value_sum += 3 * value_buffer[(i+64)&buffer_mask];
|
|
}
|
|
if ((p+65) < end) {
|
|
weight_sum += 3;
|
|
value_sum += 3 * value_buffer[(i+65)&buffer_mask];
|
|
}
|
|
return value_sum / weight_sum;
|
|
}
|
|
return (3 * value_buffer[i-65] +
|
|
3 * value_buffer[i-64] +
|
|
4 * value_buffer[i-63] +
|
|
5 * value_buffer[i-62] +
|
|
5 * value_buffer[i-61] +
|
|
6 * value_buffer[i-60] +
|
|
7 * value_buffer[i-59] +
|
|
8 * value_buffer[i-58] +
|
|
9 * value_buffer[i-57] +
|
|
10 * value_buffer[i-56] +
|
|
12 * value_buffer[i-55] +
|
|
13 * value_buffer[i-54] +
|
|
15 * value_buffer[i-53] +
|
|
17 * value_buffer[i-52] +
|
|
19 * value_buffer[i-51] +
|
|
21 * value_buffer[i-50] +
|
|
23 * value_buffer[i-49] +
|
|
26 * value_buffer[i-48] +
|
|
28 * value_buffer[i-47] +
|
|
31 * value_buffer[i-46] +
|
|
35 * value_buffer[i-45] +
|
|
38 * value_buffer[i-44] +
|
|
42 * value_buffer[i-43] +
|
|
46 * value_buffer[i-42] +
|
|
50 * value_buffer[i-41] +
|
|
55 * value_buffer[i-40] +
|
|
60 * value_buffer[i-39] +
|
|
65 * value_buffer[i-38] +
|
|
70 * value_buffer[i-37] +
|
|
76 * value_buffer[i-36] +
|
|
82 * value_buffer[i-35] +
|
|
88 * value_buffer[i-34] +
|
|
95 * value_buffer[i-33] +
|
|
102 * value_buffer[i-32] +
|
|
109 * value_buffer[i-31] +
|
|
116 * value_buffer[i-30] +
|
|
123 * value_buffer[i-29] +
|
|
131 * value_buffer[i-28] +
|
|
139 * value_buffer[i-27] +
|
|
147 * value_buffer[i-26] +
|
|
156 * value_buffer[i-25] +
|
|
164 * value_buffer[i-24] +
|
|
172 * value_buffer[i-23] +
|
|
181 * value_buffer[i-22] +
|
|
189 * value_buffer[i-21] +
|
|
198 * value_buffer[i-20] +
|
|
206 * value_buffer[i-19] +
|
|
215 * value_buffer[i-18] +
|
|
223 * value_buffer[i-17] +
|
|
231 * value_buffer[i-16] +
|
|
238 * value_buffer[i-15] +
|
|
246 * value_buffer[i-14] +
|
|
253 * value_buffer[i-13] +
|
|
260 * value_buffer[i-12] +
|
|
266 * value_buffer[i-11] +
|
|
272 * value_buffer[i-10] +
|
|
278 * value_buffer[i-9] +
|
|
283 * value_buffer[i-8] +
|
|
288 * value_buffer[i-7] +
|
|
292 * value_buffer[i-6] +
|
|
295 * value_buffer[i-5] +
|
|
298 * value_buffer[i-4] +
|
|
300 * value_buffer[i-3] +
|
|
302 * value_buffer[i-2] +
|
|
303 * value_buffer[i-1] +
|
|
303 * value_buffer[i+0] +
|
|
303 * value_buffer[i+1] +
|
|
302 * value_buffer[i+2] +
|
|
300 * value_buffer[i+3] +
|
|
298 * value_buffer[i+4] +
|
|
295 * value_buffer[i+5] +
|
|
292 * value_buffer[i+6] +
|
|
288 * value_buffer[i+7] +
|
|
283 * value_buffer[i+8] +
|
|
278 * value_buffer[i+9] +
|
|
272 * value_buffer[i+10] +
|
|
266 * value_buffer[i+11] +
|
|
260 * value_buffer[i+12] +
|
|
253 * value_buffer[i+13] +
|
|
246 * value_buffer[i+14] +
|
|
238 * value_buffer[i+15] +
|
|
231 * value_buffer[i+16] +
|
|
223 * value_buffer[i+17] +
|
|
215 * value_buffer[i+18] +
|
|
206 * value_buffer[i+19] +
|
|
198 * value_buffer[i+20] +
|
|
189 * value_buffer[i+21] +
|
|
181 * value_buffer[i+22] +
|
|
172 * value_buffer[i+23] +
|
|
164 * value_buffer[i+24] +
|
|
156 * value_buffer[i+25] +
|
|
147 * value_buffer[i+26] +
|
|
139 * value_buffer[i+27] +
|
|
131 * value_buffer[i+28] +
|
|
123 * value_buffer[i+29] +
|
|
116 * value_buffer[i+30] +
|
|
109 * value_buffer[i+31] +
|
|
102 * value_buffer[i+32] +
|
|
95 * value_buffer[i+33] +
|
|
88 * value_buffer[i+34] +
|
|
82 * value_buffer[i+35] +
|
|
76 * value_buffer[i+36] +
|
|
70 * value_buffer[i+37] +
|
|
65 * value_buffer[i+38] +
|
|
60 * value_buffer[i+39] +
|
|
55 * value_buffer[i+40] +
|
|
50 * value_buffer[i+41] +
|
|
46 * value_buffer[i+42] +
|
|
42 * value_buffer[i+43] +
|
|
38 * value_buffer[i+44] +
|
|
35 * value_buffer[i+45] +
|
|
31 * value_buffer[i+46] +
|
|
28 * value_buffer[i+47] +
|
|
26 * value_buffer[i+48] +
|
|
23 * value_buffer[i+49] +
|
|
21 * value_buffer[i+50] +
|
|
19 * value_buffer[i+51] +
|
|
17 * value_buffer[i+52] +
|
|
15 * value_buffer[i+53] +
|
|
13 * value_buffer[i+54] +
|
|
12 * value_buffer[i+55] +
|
|
10 * value_buffer[i+56] +
|
|
9 * value_buffer[i+57] +
|
|
8 * value_buffer[i+58] +
|
|
7 * value_buffer[i+59] +
|
|
6 * value_buffer[i+60] +
|
|
5 * value_buffer[i+61] +
|
|
5 * value_buffer[i+62] +
|
|
4 * value_buffer[i+63] +
|
|
3 * value_buffer[i+64] +
|
|
3 * value_buffer[i+65]) >> 14;
|
|
default:
|
|
return value_buffer[i];
|
|
}
|
|
return 0;
|
|
}
|