comparison flacenc.c @ 9432:c9fda17dc042 libavcodec

Skip loop iterations which are no-ops due to data1[-lag..-1] being zero.
author koorogi
date Mon, 13 Apr 2009 18:07:02 +0000
parents 017b81b285f4
children f2835afa516a
comparison
equal deleted inserted replaced
9431:932543edc1d2 9432:c9fda17dc042
592 data1[j-lag]= 0.0; 592 data1[j-lag]= 0.0;
593 data1[len] = 0.0; 593 data1[len] = 0.0;
594 594
595 for(j=0; j<lag; j+=2){ 595 for(j=0; j<lag; j+=2){
596 double sum0 = 1.0, sum1 = 1.0; 596 double sum0 = 1.0, sum1 = 1.0;
597 for(i=0; i<len; i++){ 597 for(i=j; i<len; i++){
598 sum0 += data1[i] * data1[i-j]; 598 sum0 += data1[i] * data1[i-j];
599 sum1 += data1[i] * data1[i-j-1]; 599 sum1 += data1[i] * data1[i-j-1];
600 } 600 }
601 autoc[j ] = sum0; 601 autoc[j ] = sum0;
602 autoc[j+1] = sum1; 602 autoc[j+1] = sum1;
603 } 603 }
604 604
605 if(j==lag){ 605 if(j==lag){
606 double sum = 1.0; 606 double sum = 1.0;
607 for(i=0; i<len; i+=2){ 607 for(i=j-1; i<len; i+=2){
608 sum += data1[i ] * data1[i-j ] 608 sum += data1[i ] * data1[i-j ]
609 + data1[i+1] * data1[i-j+1]; 609 + data1[i+1] * data1[i-j+1];
610 } 610 }
611 autoc[j] = sum; 611 autoc[j] = sum;
612 } 612 }