| OLD | NEW |
| 1 /*********************************************************************** | 1 /*********************************************************************** |
| 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. | 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. |
| 3 Redistribution and use in source and binary forms, with or without | 3 Redistribution and use in source and binary forms, with or without |
| 4 modification, are permitted provided that the following conditions | 4 modification, are permitted provided that the following conditions |
| 5 are met: | 5 are met: |
| 6 - Redistributions of source code must retain the above copyright notice, | 6 - Redistributions of source code must retain the above copyright notice, |
| 7 this list of conditions and the following disclaimer. | 7 this list of conditions and the following disclaimer. |
| 8 - Redistributions in binary form must reproduce the above copyright | 8 - Redistributions in binary form must reproduce the above copyright |
| 9 notice, this list of conditions and the following disclaimer in the | 9 notice, this list of conditions and the following disclaimer in the |
| 10 documentation and/or other materials provided with the distribution. | 10 documentation and/or other materials provided with the distribution. |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 opus_int32 *p, /* I Polynomial, Q16
*/ | 64 opus_int32 *p, /* I Polynomial, Q16
*/ |
| 65 const opus_int32 x, /* I Evaluation point, Q12
*/ | 65 const opus_int32 x, /* I Evaluation point, Q12
*/ |
| 66 const opus_int dd /* I Order
*/ | 66 const opus_int dd /* I Order
*/ |
| 67 ) | 67 ) |
| 68 { | 68 { |
| 69 opus_int n; | 69 opus_int n; |
| 70 opus_int32 x_Q16, y32; | 70 opus_int32 x_Q16, y32; |
| 71 | 71 |
| 72 y32 = p[ dd ]; /* Q16 */ | 72 y32 = p[ dd ]; /* Q16 */ |
| 73 x_Q16 = silk_LSHIFT( x, 4 ); | 73 x_Q16 = silk_LSHIFT( x, 4 ); |
| 74 for( n = dd - 1; n >= 0; n-- ) { | 74 |
| 75 y32 = silk_SMLAWW( p[ n ], y32, x_Q16 ); /* Q16 */ | 75 if ( opus_likely( 8 == dd ) ) |
| 76 { |
| 77 y32 = silk_SMLAWW( p[ 7 ], y32, x_Q16 ); |
| 78 y32 = silk_SMLAWW( p[ 6 ], y32, x_Q16 ); |
| 79 y32 = silk_SMLAWW( p[ 5 ], y32, x_Q16 ); |
| 80 y32 = silk_SMLAWW( p[ 4 ], y32, x_Q16 ); |
| 81 y32 = silk_SMLAWW( p[ 3 ], y32, x_Q16 ); |
| 82 y32 = silk_SMLAWW( p[ 2 ], y32, x_Q16 ); |
| 83 y32 = silk_SMLAWW( p[ 1 ], y32, x_Q16 ); |
| 84 y32 = silk_SMLAWW( p[ 0 ], y32, x_Q16 ); |
| 85 } |
| 86 else |
| 87 { |
| 88 for( n = dd - 1; n >= 0; n-- ) { |
| 89 y32 = silk_SMLAWW( p[ n ], y32, x_Q16 ); /* Q16 */ |
| 90 } |
| 76 } | 91 } |
| 77 return y32; | 92 return y32; |
| 78 } | 93 } |
| 79 | 94 |
| 80 static OPUS_INLINE void silk_A2NLSF_init( | 95 static OPUS_INLINE void silk_A2NLSF_init( |
| 81 const opus_int32 *a_Q16, | 96 const opus_int32 *a_Q16, |
| 82 opus_int32 *P, | 97 opus_int32 *P, |
| 83 opus_int32 *Q, | 98 opus_int32 *Q, |
| 84 const opus_int dd | 99 const opus_int dd |
| 85 ) | 100 ) |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 ylo = silk_A2NLSF_eval_poly( p, xlo, dd ); | 258 ylo = silk_A2NLSF_eval_poly( p, xlo, dd ); |
| 244 root_ix = 1; /* Index of current root */ | 259 root_ix = 1; /* Index of current root */ |
| 245 } else { | 260 } else { |
| 246 root_ix = 0; /* Index of current root */ | 261 root_ix = 0; /* Index of current root */ |
| 247 } | 262 } |
| 248 k = 1; /* Reset loop counter */ | 263 k = 1; /* Reset loop counter */ |
| 249 } | 264 } |
| 250 } | 265 } |
| 251 } | 266 } |
| 252 } | 267 } |
| OLD | NEW |