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

Side by Side Diff: third_party/opus/src/silk/float/inner_product_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 20 matching lines...) Expand all
31 31
32 #include "SigProc_FLP.h" 32 #include "SigProc_FLP.h"
33 33
34 /* inner product of two silk_float arrays, with result as double */ 34 /* inner product of two silk_float arrays, with result as double */
35 double silk_inner_product_FLP( 35 double silk_inner_product_FLP(
36 const silk_float *data1, 36 const silk_float *data1,
37 const silk_float *data2, 37 const silk_float *data2,
38 opus_int dataSize 38 opus_int dataSize
39 ) 39 )
40 { 40 {
41 opus_int i, dataSize4; 41 opus_int i;
42 double result; 42 double result;
43 43
44 /* 4x unrolled loop */ 44 /* 4x unrolled loop */
45 result = 0.0; 45 result = 0.0;
46 dataSize4 = dataSize & 0xFFFC; 46 for( i = 0; i < dataSize - 3; i += 4 ) {
47 for( i = 0; i < dataSize4; i += 4 ) {
48 result += data1[ i + 0 ] * (double)data2[ i + 0 ] + 47 result += data1[ i + 0 ] * (double)data2[ i + 0 ] +
49 data1[ i + 1 ] * (double)data2[ i + 1 ] + 48 data1[ i + 1 ] * (double)data2[ i + 1 ] +
50 data1[ i + 2 ] * (double)data2[ i + 2 ] + 49 data1[ i + 2 ] * (double)data2[ i + 2 ] +
51 data1[ i + 3 ] * (double)data2[ i + 3 ]; 50 data1[ i + 3 ] * (double)data2[ i + 3 ];
52 } 51 }
53 52
54 /* add any remaining products */ 53 /* add any remaining products */
55 for( ; i < dataSize; i++ ) { 54 for( ; i < dataSize; i++ ) {
56 result += data1[ i ] * (double)data2[ i ]; 55 result += data1[ i ] * (double)data2[ i ];
57 } 56 }
58 57
59 return result; 58 return result;
60 } 59 }
OLDNEW
« no previous file with comments | « third_party/opus/src/silk/float/find_pred_coefs_FLP.c ('k') | third_party/opus/src/silk/float/k2a_FLP.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698