| 59 | } |
| 60 | |
| 61 | AVInteger av_mul_i(AVInteger a, AVInteger b){ |
| 62 | AVInteger out; |
| 63 | int i, j; |
| 64 | int na= (av_log2_i(a)+16) >> 4; |
| 65 | int nb= (av_log2_i(b)+16) >> 4; |
| 66 | |
| 67 | memset(&out, 0, sizeof(out)); |
| 68 | |
| 69 | for(i=0; i<na; i++){ |
| 70 | unsigned int carry=0; |
| 71 | |
| 72 | if(a.v[i]) |
| 73 | for(j=i; j<AV_INTEGER_SIZE && j-i<=nb; j++){ |
| 74 | carry= (carry>>16) + out.v[j] + a.v[i]*b.v[j-i]; |
| 75 | out.v[j]= carry; |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | return out; |
| 80 | } |
| 81 | |
| 82 | int av_cmp_i(AVInteger a, AVInteger b){ |
| 83 | int i; |
no test coverage detected