Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Side by Side Diff: third_party/opus/src/silk/float/energy_FLP.c

Issue 2962373002: [Opus] Update to v1.2.1 (Closed)
Patch Set: Pre-increment instead of post-increment Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 19 matching lines...) Expand all
30 #endif 30 #endif
31 31
32 #include "SigProc_FLP.h" 32 #include "SigProc_FLP.h"
33 33
34 /* sum of squares of a silk_float array, with result as double */ 34 /* sum of squares of a silk_float array, with result as double */
35 double silk_energy_FLP( 35 double silk_energy_FLP(
36 const silk_float *data, 36 const silk_float *data,
37 opus_int dataSize 37 opus_int dataSize
38 ) 38 )
39 { 39 {
40 opus_int i, dataSize4; 40 opus_int i;
41 double result; 41 double result;
42 42
43 /* 4x unrolled loop */ 43 /* 4x unrolled loop */
44 result = 0.0; 44 result = 0.0;
45 dataSize4 = dataSize & 0xFFFC; 45 for( i = 0; i < dataSize - 3; i += 4 ) {
46 for( i = 0; i < dataSize4; i += 4 ) {
47 result += data[ i + 0 ] * (double)data[ i + 0 ] + 46 result += data[ i + 0 ] * (double)data[ i + 0 ] +
48 data[ i + 1 ] * (double)data[ i + 1 ] + 47 data[ i + 1 ] * (double)data[ i + 1 ] +
49 data[ i + 2 ] * (double)data[ i + 2 ] + 48 data[ i + 2 ] * (double)data[ i + 2 ] +
50 data[ i + 3 ] * (double)data[ i + 3 ]; 49 data[ i + 3 ] * (double)data[ i + 3 ];
51 } 50 }
52 51
53 /* add any remaining products */ 52 /* add any remaining products */
54 for( ; i < dataSize; i++ ) { 53 for( ; i < dataSize; i++ ) {
55 result += data[ i ] * (double)data[ i ]; 54 result += data[ i ] * (double)data[ i ];
56 } 55 }
57 56
58 silk_assert( result >= 0.0 ); 57 silk_assert( result >= 0.0 );
59 return result; 58 return result;
60 } 59 }
OLDNEW
« no previous file with comments | « third_party/opus/src/silk/float/encode_frame_FLP.c ('k') | third_party/opus/src/silk/float/find_LPC_FLP.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698