Speed up silk_warped_autocorrelation_FLP()
Reducing the dependency chain between tmp1 and tmp2 at the cost of an extra multiply.
This commit is contained in:
parent
b2cfd87783
commit
d4b04d3275
1 changed files with 4 additions and 2 deletions
|
@ -54,11 +54,13 @@ void silk_warped_autocorrelation_FLP(
|
||||||
/* Loop over allpass sections */
|
/* Loop over allpass sections */
|
||||||
for( i = 0; i < order; i += 2 ) {
|
for( i = 0; i < order; i += 2 ) {
|
||||||
/* Output of allpass section */
|
/* Output of allpass section */
|
||||||
tmp2 = state[ i ] + warping * ( state[ i + 1 ] - tmp1 );
|
/* We voluntarily use two multiples instead of factoring the expression to
|
||||||
|
reduce the length of the dependency chain (tmp1->tmp2->tmp1... ). */
|
||||||
|
tmp2 = state[ i ] + warping * state[ i + 1 ] - warping * tmp1;
|
||||||
state[ i ] = tmp1;
|
state[ i ] = tmp1;
|
||||||
C[ i ] += state[ 0 ] * tmp1;
|
C[ i ] += state[ 0 ] * tmp1;
|
||||||
/* Output of allpass section */
|
/* Output of allpass section */
|
||||||
tmp1 = state[ i + 1 ] + warping * ( state[ i + 2 ] - tmp2 );
|
tmp1 = state[ i + 1 ] + warping * state[ i + 2 ] - warping * tmp2;
|
||||||
state[ i + 1 ] = tmp2;
|
state[ i + 1 ] = tmp2;
|
||||||
C[ i + 1 ] += state[ 0 ] * tmp2;
|
C[ i + 1 ] += state[ 0 ] * tmp2;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue